设为首页 收藏本站
查看: 1234|回复: 0

[经验分享] DB2新增表空间和缓冲池

[复制链接]

尚未签到

发表于 2016-11-15 08:49:00 | 显示全部楼层 |阅读模式
  DB2新增表空间和缓冲池
   
  在DB2中新建一个记录长度超过4K表时,如果系统报如下的错误,
         “找不到页大小至少为 "16384" 且许可其使用授权标识 "DCARD" 的缺省表空间。”
 
则说明当前数据库的数据表空间的页面大小定义小于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的新表了。
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-300531-1-1.html 上篇帖子: 自己开发DB2工具 (10) 下篇帖子: DB2删除重复记录的五种情况
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表