首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

AIX 平台 DB2 創建大表空間報「文件系統已滿」的根因與解決

     編輯:DB2 教學

AIX 平台 DB2 創建大表空間報「文件系統已滿」的根因與解決

在 AIX 上創建 20GB 表空間時,雖然文件系統剩餘空間充足,仍報錯 SQLCODE -968C: File System is full。根因是 **DB2 實例擁有者(如 db2admin)的用戶級文件大小限制(fsize)過小**,而非文件系統物理空間不足。

報錯場景重現

CREATE REGULAR TABLESPACE HTDC_DATA PAGESIZE 8 K
MANAGED BY DATABASE
USING (FILE '/db2_tag/TABLE_SPACES/HTDC_DATA/HTDC_DATA.dat' 20G)
EXTENTSIZE 16 OVERHEAD 10.67 PREFETCHSIZE 16 TRANSFERRATE 0.04
BUFFERPOOL BPHTDC
DROPPED TABLE RECOVERY OFF;
-- SQL0968C: File System is full

根因定位

AIX 默認用戶 fsize(單位:512-byte 塊)可能遠小於 20GB 所需塊數。DB2 進程受進程資源限制,創建大文件時觸發 EFBIG,映射為「文件系統已滿」。

解決步驟

  1. 以 root 登錄 AIX:telnet <IP> → root / password
  2. 切換至實例用戶:su - db2admin
  3. 修改 fsize 為 100GB(209715100 × 512B ≈ 100GB):
    chuser fsize=209715100 db2admin
  4. 重啟主機生效:shutdown -Fr
  5. 重新登錄,啟動實例並再次創建表空間:
    su - db2admin → db2start → db2 → CONNECT TO HTDC USER db2admin USING ****** → 執行上述 CREATE TABLESPACE 语句 → 成功。

驗證與預防

  • lsuser -a fsize db2admin 確認新限制生效。
  • 規劃大表空間前,預估最大文件大小,按 1.5~2 倍裕量設置 fsize。
  • 生產環境建議將實例用戶 fsize 設為 -1(無限制)或極大值,避免反復調整。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved