DB2 管理中常遇到表空間不足或欄位長度不夠的情況。本文整理三大常見擴充操作:交易記錄檔調整、表空間擴充、欄位長度修改,附完整指令範例。
匯入大量資料或長時間交易常導致「交易記錄檔已滿」。在 Windows 環境下:
db2 get db cfg for <資料庫名>-- 記錄檔大小(4~262144 頁)
db2 "update db cfg for <dbname> using logfilsiz XXX"
-- 主記錄檔數量(2~256)
db2 "update db cfg for <dbname> using logprimary X"
-- 次要記錄檔數量(0~254)
db2 "update db cfg for <dbname> using logsecond XX"先查看表空間狀態:
db2 list tablespaces show detail
表空間分兩類,擴充方式不同:
空間不足 = 磁碟空間不足。解決方式:增加磁碟容量或清理磁碟。
可手動擴充:
db2 "alter tablespace <表空間名> extend (all <頁數>)"
-- 範例:擴充 1GB(假設 4K 頁面,1024M = 262,144 頁)
db2 "alter tablespace yourtablespace extend (all 1024M)"
當 VARCHAR(2000) 不夠用時:
db2 "alter table <表名> alter column <欄位名> set data type varchar(4000)"
注意:data type 後的類型必須與原欄位類型相容(如 VARCHAR 改 VARCHAR、CHAR 改 CHAR),不可跨類型變更。
db2 force application all 斷開連線