1. 程式人生 > >DB2 DMS表空間大小限制

DB2 DMS表空間大小限制

環境是aix6.1 + db2 v8.2
load資料時報錯,通過db2 list tablespaces show detail 命令檢視發現是表空間滿了,所以準備擴充套件表空間。
開始使用ALTER TABLESPACE space_name resize (FILE '/DB2/NODE0000/DMS_DATA8K.DMS' 10G)命令,提示檔案系統不足,
df -g發現該目錄空間還很充足,ulimit -f發現對檔案大小限制了2G.通過root使用者更改/etc/security/limits檔案後將檔案大小限制擴充套件為10G後再次執行resize命令,
再次報錯:SQL20325N  Adding, extending, or setting containers for table space "DMS_DATA8K" would exceed the maximum size "5368709120".  SQLSTATE=54047
    調整容器大小不行,就給再加個容器:db2 "ALTER TABLESPACE space_name add (FILE '/DB2/NODE0000/DMS_DATA8K_1.DMS' 5G)"
    依然報錯:
![](https://img-blog.csdn.net/20160616134331238)

網上搜索會限制表空間大小的因素,有檔案系統、頁地址長度、v8版本的regular引數等,首先通過lsvg -l rootvg檢視檔案系統是jfs2,

理論上支援1PB最大單個檔案,本來不可能使檔案系統的原因;再次DB2資料庫中,表和表空間的大小主要受到pagesize和其對應定址能力限制,
v8中頁地址為3個位元組,就是2的24次方可用,就是16,777,216頁可以被定址,若表空間也大小為8k的話則表空間最大支援128G,不是這個原因;
最後v8版本的db2建表空間時預設型別是regular(常規表空間)的,其對錶空間頁數限制為16777216,好像跟上個重複了,v9以後則是large(大
型表空間)型別的,參考http://blog.csdn.net/idber/article/details/8092919 。原因貌似跟這個都沒關係。
通過命令db2 get snapshot for tabespaces show detail | more 查看錶空間配置及狀態,其中有
Maximum tablespace size (bytes) = 5368709120
以及Auto-resize enabled = Yes,這時想起來之前修改過表空間為自動擴充套件並限制了最大大小為5G,至此原因找到,
通過命令db2 “alter tablespace DMS_DATA8K autoresize no”關閉表空間自動擴充套件就去掉了最大大小的限制。