| 問題現象 | 根因 | 解決方案 |
| Linux 重裝 DB2 無法建立 db2inst1,提示已存在 | 未先 db2idrop 刪除舊實例 | 刪除 /var/db2/v81 目錄,或執行 /opt/IBM/db2/V8.1/instance/db2idrop db2inst1 後重建 |
| Solaris 5.8 安裝後建實例失敗,提示 shmmax 需調整 | 核心共享記憶體/訊息佇列參數不足 | 編輯 /etc/system 依 db2diag.log 記錄值調整,重啟 OS |
| Runtime Client 是否含開發包? | 不含 | Runtime Client 僅提供連線組件,適合模擬生產客戶端環境 |
| 單一裸裝置能否同時給兩資料庫? | 容器不可雙活掛載 | 建立兩實例,輪流停啟實例並掛載裸裝置,實現冷備共享 |
| Linux 安裝後綁定 License 報 DBI1430N | 系統時間錯誤 | date 校時後 ./db2licm -a db2ese.lic |
| Linux 建實例報 DBI1281E | 主機名解析失敗 | 檢查 hostname、/etc/hosts、ping 確認正確 |
| Oracle 語法/功能 | DB2 對應方案 |
INSERT BULK | LOAD 命令 |
VARGRAPHIC 欄位預設值 | 建立 UTF-8 資料庫 |
SELECT DISTINCT VARCHAR(long_col) 編譯失敗 | 移除 DISTINCT;建議改 VARCHAR + 擴大 pagesize 至 16K/32K |
TRUNCATE TABLE (不記日誌、極快) | DROP TABLE + 重建 (同樣不記日誌);ALTER 僅改結構 |
| 大量匯入避免日誌影響 | ALTER TABLE ACTIVATE NOT LOGGED INITIALLY 同一事務內載入,事務結束自動恢復日誌 |
| 定時維護任務 | 任務中心排程 (需 Tool Catalog DB) |
| DMS 表空間自動擴容腳本 | 快照查可用頁數 < 閾值 → ALTER TABLESPACE ADD (...) |
| UDF 轉換型別用於 GROUP BY 失敗 | WITH t1(col1) AS (SELECT func1(ts_col) FROM t2) SELECT col1 FROM t1 GROUP BY col1 |
VARGRAPHIC 用於 LOCATE | 先 CAST(... AS VARCHAR),需 Unicode codepage 資料庫 |
| JDBC Type 4 連線 | Driver: com.ibm.db2.jcc.DB2Driver; URL: jdbc:db2://host:port/alias; 需 db2jcc.jar |
Timestamp 轉 yyyymmdd | 自寫 UDF (文中提供完整 ts_fmt 函數碼) |
| SQL PL 中中文串連編譯失敗 | 客戶端 codepage 設 1386 (GBK) |
字串分隔符拆分成陣列 (Oracle DBMS_SQL.VARCHAR2_TABLE) | 使用 DGTT: DECLARE GLOBAL TEMPORARY TABLE SESSION.temp_emp_list (num INT, EmpName VARCHAR(30)) ... |
| 可空欄位建唯一索引失敗 | 設為 NOT NULL (NULL 不具唯一性) |
| 同表索引放不同表空間 | CREATE TABLE ... INDEX IN tbsp_name |
| UDF 呼叫 SP 編譯衝突 | UDF 僅支援靜態 SQL 子集,不可動態呼叫 SP → 改寫為 SP |
六、工具使用篇
- CLP 查表結構:
db2 describe table tabname
- 開發中心遠端除錯 SP 失敗: 遠端資料庫必須安裝 DB2 Application Development Client。
- 導出 SP 為腳本部署他機: 開發中心導出,前提建立時未指定
HIDE BODY。
- 自動 RUNSTATS:
db2 update db cfg using auto_runstats on
遷移黃金法則
- 先建立參數對照表 (型別、函數、系統包、鎖行為、隔離級別)。
- 以「最小可驗證單元」迭代遷移:Schema → 資料 → PL/SQL → 應用連線。
- 善用
db2look、db2move、db2cfexp/imp 原生工具鏈。
- 效能基線對比:同等硬體跑標準負載,關注 Bufferpool 命中率、Sort 溢寫、Lock 等待。
- 上一篇文章: 資料庫叢集技術深度解析:Shared-Disk vs Shared-Nothing vs Middleware 三大架構實戰比較
- 下一篇文章: DB2 啟用 HACMP Smart Assist 完整實施指南:AIX 上打造企業級高可用叢集
Copyright ©
程式碼之家 All Rights Reserved