创建示例数据库DB2TEST1
首先我们在WINDOWS XP环境下安装DB2 ESE V9.1,安装完成后,打开DB2CMD环境,创建示例数据库DB2TEST1。在 DB2 命令窗口中,发出CREATE DATABASE语句,创建示例数据库,具体如清单1所示:
- - 清单1. 创建示例数据库DB2TEST1
C:\> DB2 CREATE DATABASE DB2TEST1 DB20000I CREATE DATABASE命令成功完成。
这样我们创建了一个示例数据库DB2TEST1。查看其数据库配置参数,数据库代码页是1386,数据库地域是CN,数据库代码集是GBK,具体如清单2所示:
- - 清单2. 查看示例数据库DB2TEST1配置参数
C:\> db2 get db cfg for db2test1
数据库 db2test1 的数据库配置
数据库配置发行版级别 = 0x0b00
数据库发行版级别 = 0x0b00
数据库地域 = CN
数据库代码页 = 1386
数据库代码集 = GBK
数据库国家/地区代码 = 86
数据库整理顺序 = UNIQUE
备用整理顺序 ( ALT_COLLATE ) =
数据库页大小 = 4096
. . . . . . . . . . . . . . . . . .
接下来来我们来查看一下示例数据库DB2TEST1上的表空间情况,在DB2CLP窗口中,连上示例数据库DB2TEST1,使用LIST TABLESPACES命令能够看到创建示例数据库时已经默认创建了3个表空间:SYSCATSPACE、TEMPSPACE1、USERSPACE1,其都是使用自动存储管理。具体如清单3所示:
- - 清单3. 查看示例数据库DB2TEST1表空间情况
C:\> DB2 CONNECT TO DB2TEST1
数据库连接信息
数据库服务器 = DB2 / NT 9.1.0
SQL 授权标识 = RHETTE
本地数据库别名 = DB2TEST1
C:\> db2 list tablespaces show detail
当前数据库的表空间
表空间标识 = 0
名称 = SYSCATSPACE
类型 = 数据库管理空间
内容 = 所有持久数据。常规表空间。
状态 = 0x0000
详细解释:
正常
总计页数 = 8192
可用页数 = 8188
已用页数 = 7924
可用页数 = 264
高水位标记(页) = 7924
页大小(以字节计) = 4096
扩展数据块大小(页) = 4
预取大小(页) = 4
容器数 = 1
表空间标识 = 1
名称 = TEMPSPACE1
类型 = 系统管理空间
内容 = 系统临时数据
状态 = 0x0000
详细解释:
正常
总计页数 = 1
可用页数 = 1
已用页数 = 1
可用页数 = 不适用
高水位标记(页) = 不适用
页大小(以字节计) = 4096
扩展数据块大小(页) = 32
预取大小(页) = 32
容器数 = 1
表空间标识 = 2
名称 = USERSPACE1
类型 = 数据库管理空间
内容 = 所有持久数据。大型表空间。
状态 = 0x0000
详细解释:
正常
总计页数 = 8192
可用页数 = 8160
已用页数 = 96
可用页数 = 8064
高水位标记(页) = 96
页大小(以字节计) = 4096
扩展数据块大小(页) = 32
预取大小(页) = 32
容器数 = 1
接下来我们再查看一下示例数据库的缓冲池情况,在DB2CLP窗口中通过查看系统表sysibm.sysbufferpools可以看到,在创建示例数据库时默认创建的的4K页大小缓冲池IBMDEFAULTBP,具体如清单4所示:
--清单 4. 查看默认创建缓冲池情况
C:\> DB2 CONNECT TO DB2TEST1
数据库连接信息
数据库服务器 = DB2/NT 9.1.0
SQL 授权标识 = RHETTE
本地数据库别名 = DB2TEST1
C:\> db2 " select BPNAME , NPAGES from sysibm.sysbufferpools "
BPNAME NPAGES
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IBMDEFAULTBP -2
1 条记录已选择。
当缓冲池启用了自调整功能时,该特定缓冲池的sysibm.sysbufferpools表中的NPAGES字段将设置为 -2。当自调整功能处于禁用状态时,NPAGES字段将设置为缓冲池的当前大小。我们可以在清单4中看到,IBMDEFAULTBP的NPAGES 字段将设置为 -2,由此我们可以确定,IBMDEFAULTBP启用了自调整功能。
下面我们创建32K页大小的示例缓冲池MYBP1,其使用自调整功能(注意其CREATE BUFFERPOOL语句使用了AUTOMATIC),初始大小3.2M,具体如清单5所示:
--清单 5 . 创建使用自动自调整功能的示例缓冲池MYBP1
C:\> db2 create bufferpool mybp1 immediate size 100 automatic pagesize 32k
DB20000I SQL命令成功完成。
接下来我们在示例数据库DB2TEST1中创建3个4K页大小的DMS表空间,用来存放示例分区表的数据,名称分别为TABLESPACE1,TABLESPACE2和TABLESPACE3,在DB2CLP窗口中,发出CREATE TABLESPACE命令,其缓冲池使用数据库默认创建的4K页大小的缓冲池IBMDEFAULTBP,具体如清单6所示:
- - 清单6 . 创建DMS示例表空间
C:\> DB2 CREATE REGULAR TABLESPACE TABLESPACE1 PAGESIZE 4 K MANAGED BY AUTOMATIC STORAGE BUFFERPOOL IBMDEFAULTBP
DB20000I SQL命令成功完成。
C:\> DB2 CREATE REGULAR TABLESPACE TABLESPACE2 PAGESIZE 4 K MANAGED BY AUTOMATIC STORAGE BUFFERPOOL IBMDEFAULTBP
DB20000I SQL命令成功完成.
C:\> DB2 CREATE REGULAR TABLESPACE TABLESPACE3 PAGESIZE 4 K MANAGED BY AUTOMATIC STORAGE BUFFERPOOL IBMDEFAULTBP
DB20000I SQL命令成功完成
注意,我们在MANAGED BY后面跟的是AUTOMATIC STORAGE,表示新创建的表空间将使用自动存储。如果新建的表空间使用DB2管理存储器(自动存储器),根据要创建的表空间类型不同,其空间管理会有所区别,当其表空间类型是常规或者大型时,将自动创建成数据库管理空间(DMS), 当其表空间类型是系统临时或者用户临时时,将自动创建成系统管理空间(SMS)。使用自动存储,就不再需要担心如何添加容器以及监控容器的增长等,自动存储会自动增加表空间在磁盘和文件系统上的大小。在DB2CLP窗口中输入LIST TABLESPACE命令,你可以看到3个示例表空间TABLESPACE1,TABLESPACE2和TABLESPACE3已经创建成功,其空间管理类型是数据库管理空间,具体如清单7所示:
- - 清单7. 查看示例表空间
C:\> db2 list tablespaces show detail
当前数据库的表空间
. . . . . . . . . . . . . . . . . . . .
表空间标识 = 4
名称 = TABLESPACE1
类型 = 数据库管理空间
内容 = 所有持久数据。常规表空间。
状态 = 0x0000
详细解释:
正常
总计页数 = 8192
可用页数 = 8160
已用页数 = 96
可用页数 = 8064
高水位标记(页) = 96
页大小(以字节计) = 4096
扩展数据块大小(页) = 32
预取大小(页) = 32
容器数 = 1
表空间标识 = 5
名称 = TABLESPACE2
类型 = 数据库管理空间
内容 = 所有持久数据。常规表空间。
状态 = 0x0000
详细解释:
正常
总计页数 = 8192
可用页数 = 8160
已用页数 = 96
可用页数 = 8064
高水位标记(页) = 96
页大小(以字节计) = 4096
扩展数据块大小(页) = 32
预取大小(页) = 32
容器数 = 1
表空间标识 = 6
名称 = TABLESPACE3
类型 = 数据库管理空间
内容 = 所有持久数据。常规表空间。
状态 = 0x0000
详细解释:
正常
总计页数 = 8192
可用页数 = 8160
已用页数 = 96
可用页数 = 8064
高水位标记(页) = 96
页大小(以字节计) = 4096
扩展数据块大小(页) = 32
预取大小(页) = 32
容器数 = 1
接下来我们创建3个32K页大小的大型表空间,其缓冲池使用我们新创建的示例缓冲池MYBP1,大型表空间的名称分别为:LARGETBS1,LARGETBS2和LARGETBS3。在DB2CLP窗口中,发出CREATE LARGE TABLESPACE命令,具体如清单8所示:
- - 清单8. 创建大型示例表空间LARGETBS1,LARGETBS2和LARGETBS3
C:\> DB2 CREATE LARGE TABLESPACE LARGETBS1 PAGESIZE 32 K MANAGED BY AUTOMATIC STORAGE BUFFERPOOL MYBP1
DB20000I SQL命令成功完成。
C:\> DB2 CREATE LARGE TABLESPACE LARGETBS2 PAGESIZE 32 K MANAGED BY AUTOMATIC STORAGE BUFFERPOOL MYBP1
DB20000I SQL命令成功完成。
C:\> DB2 CREATE LARGE TABLESPACE LARGETBS3 PAGESIZE 32 K MANAGED BY AUTOMATIC STORAGE BUFFERPOOL MYBP1
DB20000I SQL命令成功完成。
在DB2CLP窗口中输入LIST TABLESPACE命令,你可以看到3个大型示例表空间LARGETBS1,LARGETBS2和LARGETBS3已经创建成功,其空间管理类型是数据库管理空间,具体如清单9所示:
- - 清单9. 查看示例表空间
C:\> db2 list tablespaces show detail
当前数据库的表空间
. . . . . . . . . . . . . . . . . . . .
表空间标识 = 7
名称 = LARGETBS1
类型 = 数据库管理空间
内容 = 所有持久数据。大型表空间。
状态 = 0x0000
详细解释:
正常
总计页数 = 1024
可用页数 = 992
已用页数 = 96
可用页数 = 896
高水位标记(页) = 96
页大小(以字节计) = 32768
扩展数据块大小(页) = 32
预取大小(页) = 32
容器数 = 1
表空间标识 = 8
名称 = LARGETBS2
类型 = 数据库管理空间
内容 = 所有持久数据。大型表空间。
状态 = 0x0000
详细解释:
正常
总计页数 = 1024
可用页数 = 992
已用页数 = 96
可用页数 = 896
高水位标记(页) = 96
页大小(以字节计) = 32768
扩展数据块大小(页) = 32
预取大小(页) = 32
容器数 = 1
表空间标识 = 9
名称 = LARGETBS3
类型 = 数据库管理空间
内容 = 所有持久数据。大型表空间。
状态 = 0x0000
详细解释:
正常
总计页数 = 1024
可用页数 = 992
已用页数 = 96
可用页数 = 896
高水位标记(页) = 96
页大小(以字节计) = 32768
扩展数据块大小(页) = 32
预取大小(页) = 32
容器数 = 1
1