温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何分析DB2数据库中pagesize和其对应寻址能力限制

发布时间:2021-12-30 11:05:49 来源:亿速云 阅读:107 作者:柒染 栏目:云计算

如何分析DB2数据库中pagesize和其对应寻址能力限制,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

DB2数据库中,表和表空间的大小主要受到pagesize和其对应寻址能力限制。下面将为您详细分析DB2数据库中表和表空间的大小的限制。

  在DB2 v8中,页地址为3个字节,也就是2的24次方可用,就是16,777,216页可以被寻址,基于这个限制得到如下表空间和表大小的限制:

  # of pages Page size Limit of table / tablespace

  16,777,216 4 K 64 GB

  16,777,216 8 K 128 GB

  16,777,216 16 K 256 GB

  16,777,216 32 K 512 GB

  在DB2 v9中,页地址扩展为4个字节,也就是寻址能力提升4倍,具体的限制如下所示:

  # of pages Page size Limit of table / tablespace

  536,870,912 4 K 2 TB

  536,870,912 8 K 4 TB

  536,870,912 16 K 8 TB

  536,870,912 32 K 16 TB

  注意:在DB2 v8中,large类型的表空间只是为LOB和LONG数据类型所使用,而在DB2 v9中没有类似的限制,默认的表空间类型就是large,如果从DB2 v8升级到v9就需要手动的把表空间从regular转换为large

  ALTER TABLESPACE tablespace_name CONVERT TO LARGE

  DB2 v8中的典型报错

多所有容器扩容

db2 " ALTER TABLESPACE tablespace-name EXTEND (ALL 1000000)"

DB21034E The command was processed as an SQL statement because it was not avalid Command Line Processor command. During SQL processing it returned:

SQL1139N The total size of the table space is too big. SQLSTATE=54047  
 
对其中一个容器扩容

db2 " ALTER TABLESPACE tablespace-name  EXTEND (FILE '/dir/filename' 3000000)"

DB21034E The command was processed as an SQL statement because it was not avalid Command Line Processor command. During SQL processing it returned:

SQL1139N The total size of the table space is too big. SQLSTATE=54047  
 
加容器

db2 " ALTER TABLESPACE tablespace-name  ADD (FILE '/dir/filename' 500000)"

DB21034E The command was processed as an SQL statement because it was not avalid Command Line Processor command. During SQL processing it returned:

SQL1139N The total size of the table space is too big. SQLSTATE=54047  
 
通过检查可以看到

LIST TABLESPACES SHOW DETAIL

...

Tablespace ID                       = 8

Name                                       = tablespace-name

Type                                       = Database managed space

Contents                                = Any data

State                                        = 0x0000

Detailed explanation:

Normal

Total pages                            = 16388000

Useable pages                       = 16387840

Used pages                            = 16387840

Free pages                               = 0

High water mark (pages)       = 16387840

Page size (bytes)                   = 4096

Extent size (pages)                 = 32

Prefetch size (pages)              = 128

Number of containers             = 4

Minimum recovery time          =2009-06-26-04.47.15.000000

...

可以明显看到页数量已经接近了最大限制

pagesize大小的解决

连接数据库
db2 create bufferpool 缓冲池名 pagesize 16384(字节)
db2 alter bufferpool 缓冲池名 size 5000
db2stop force
db2start
db2 create large tablespace 表空间名 pagesize 16k managed by automatic storage bufferpool 缓冲池名

查询语句也有可能出现pagesize太小的情况,可以根据创建表空间一样的方法为数据库创建临时表空间。

看完上述内容,你们掌握如何分析DB2数据库中pagesize和其对应寻址能力限制的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI