首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

DB2新增表空间缓和冲池

2012-07-19 
DB2新增表空间和缓冲池DB2新增表空间和缓冲池?在DB2中新建一个记录长度超过4K表时,如果系统报如下的错误,?

DB2新增表空间和缓冲池

DB2新增表空间和缓冲池

?

在DB2中新建一个记录长度超过4K表时,如果系统报如下的错误,

?

则说明当前数据库的数据表空间的页面大小定义小于16k,需要修改表空间的页面大小,或者为数据库增加新的数据表空间,新的表空间页面大小必须大于16K。

?

关于DB2的表空间和缓冲池的基础知识,可以参考文章:http://www.ibm.com/developerworks/cn/data/library/techarticles/0212wieser/0212wieser.html?

?

从上文中,我们知道了DB2有两种类型的表空间, SMS 和 DMS, 即系统管理和数据库管理的表空间,我们现在要增加的是DMS表空间。

?

一般来说,在创建DB2数据库的时候,每个数据库包括4个缺省的表空间,用命令可以查看,

?

DB2 LIST TABLESPACES SHOW DETAIL

?

当前数据库的表空间

?表空间标识??????????????????????? = 0
?名称?????????????????????? = SYSCATSPACE
?类型?????????????????????????????????????? = 数据库管理空间
?内容??????????????????????????????? = 所有持久数据。常规表空间。
?状态?????????????????? = 0x0000
?? 详细解释:
???? 正常
?总计页数??????????????????????????? = 24576
?可用页数??????????????????????????? = 24572
?已用页数??????????????????????????? = 19780
?可用页数??????????????????????????? = 4792
?高水位标记(页)??????????????????? = 19780
?页大小(以字节计)????????????????? = 4096
?扩展数据块大小(页)??????????????? = 4
?预取大小(页)????????????????????? = 4
?容器数????????????????????????????????? = 1

?

?表空间标识??????????????????????? = 1
?名称?????????????????????? = TEMPSPACE1
?类型?????????????????????????????????????? = 系统管理空间
?内容??????????????????????????????? = 系统临时数据
?状态?????????????????? = 0x0000
?? 详细解释:
???? 正常
?总计页数??????????????????????????? = 1
?可用页数??????????????????????????? = 1
?已用页数??????????????????????????? = 1
?可用页数??????????????????????????? = 不适用
?高水位标记(页)??????????????????? = 不适用
?页大小(以字节计)????????????????? = 4096
?扩展数据块大小(页)??????????????? = 32
?预取大小(页)????????????????????? = 32
?容器数????????????????????????????????? = 1

?

?表空间标识??????????????????????? = 2
?名称?????????????????????? = USERSPACE1
?类型?????????????????????????????????????? = 数据库管理空间
?内容??????????????????????????????? = 所有持久数据。大型表空间。
?状态?????????????????? = 0x0000
?? 详细解释:
???? 正常
?总计页数??????????????????????????? = 16384
?可用页数??????????????????????????? = 16352
?已用页数??????????????????????????? = 8512
?可用页数??????????????????????????? = 7840
?高水位标记(页)??????????????????? = 8512
?页大小(以字节计)????????????????? = 4096
?扩展数据块大小(页)??????????????? = 32
?预取大小(页)????????????????????? = 32
?容器数????????????????????????????????? = 1

?

?表空间标识??????????????????????? = 3
?名称?????????????????????? = SYSTOOLSPACE
?类型?????????????????????????????????????? = 数据库管理空间
?内容??????????????????????????????? = 所有持久数据。大型表空间。
?状态?????????????????? = 0x0000
?? 详细解释:
???? 正常
?总计页数??????????????????????????? = 8192
?可用页数??????????????????????????? = 8188
?已用页数??????????????????????????? = 152
?可用页数??????????????????????????? = 8036
?高水位标记(页)??????????????????? = 152
?页大小(以字节计)????????????????? = 4096
?扩展数据块大小(页)??????????????? = 4
?预取大小(页)????????????????????? = 4
?容器数????????????????????????????????? = 1

?

可以看出,现有的表空间页面的小确实为4K,

???????? 页大小(以字节计)????????????????? = 4096


这是因为DB2系统在创建表空间的时候,必须有一个相应的缓冲池,而DB2在创建数据库的时候,会自动创建一个缺省的缓冲池? IBMDEFAULTBP, 这个BUFFERPOOL的大小为 4K.? 显示缓冲池的命令如下:

???????? SELECT * FROM SYSCAT.BUFFERPOOLS

?

为了新建记录长达大于4K的表,有两个方法可以选择,

????????1.? 更新表空间的 BUFFERPOOL类型为页面更大的BUFFERPOOL类型

?ALTER TABLESPACE USERSPACE1 BUFFERPOOL???NEWBP1?

?

2.? 新建一个表空间,直接用大的BUFFERPOOL类型

?

在这里我们要创建一个新的表空间,首先必须要新建一个BUFFERPOOL类型,大小为16K,

??

CREATE BUFFERPOOL NEWBP1
SIZE 2000
PAGESIZE 16K

?

?创建成功之后,我们可以用新的BUFFERPOOL定义新的表空间了,

?

CREATE LARGE TABLESPACE USERSPACE2
PAGESIZE 16 K
MANAGED BY DATABASE
USING (FILE '/home/db2data/NODE0000/WB/T0000004/C0000000.LRG' 500M)
EXTENTSIZE 16
PREFETCHSIZE 16
BUFFERPOOL NEWBP1
OVERHEAD 12.67
TRANSFERRATE 0.18

?

上面的SQL命令中,FILE 必须是一个新的文件,表空间创建成功后,数据库会多一个容器指向该文件,BUFFERPOOL 类型为新建的 NEWBP1,创建成功后,用命令查看结果,

?

??????? DB2 LIST DATASPACES SHOW DETAIL

?

新建的表空间如下:

表空间标识??????????????????????? = 4
?名称?????????????????????? = USERSPACE2
?类型?????????????????????????????????????? = 数据库管理空间
?内容??????????????????????????????? = 所有持久数据。大型表空间。
?状态?????????????????? = 0x0000
?? 详细解释:
???? 正常
?总计页数??????????????????????????? = 32000
?可用页数??????????????????????????? = 31984
?已用页数??????????????????????????? = 368
?可用页数??????????????????????????? = 31616
?高水位标记(页)??????????????????? = 368
?页大小(以字节计)????????????????? = 16384
?扩展数据块大小(页)??????????????? = 16
?预取大小(页)????????????????????? = 16
?容器数????????????????????????????????? = 1

?

上面的表空间页面大小为16K。

?

OK, 我们现在可以创建一个记录长度大于4K的新表了。

?

?

?

热点排行