本文詳細記錄 Siebel 7 資料庫環境從 DB2 UDB V8 升級至 DB2 9 的全流程,涵蓋新特性介紹、預遷移準備、遷移執行步驟(Windows/UNIX)、遷移後優化配置,提供實用腳本與命令供參考。
DB2 9 關鍵新特性對 Siebel 的價值
- pureXML: 原生支援 XML 存儲與 XQuery/SQL 混合查詢,Siebel 可直接將格式良好的 XML 文件存入資料行。
- 自動化管理(STMM): 自調適記憶體管理持續優化配置參數、緩衝池大小與總記憶體用量,大幅減輕 DBA 調校負擔。
- 標籤存取控制(LBAC): 行/列級安全控制,新增 SECADM 權限角色,依組織結構/位置/從屬關係強化 Siebel 記錄級存取。
- 可用性增強: 支援中斷恢復重啟、從備份自動生成重導向恢復腳本、從表空間備份重建資料庫。
- 效能與管理性: 資料列壓縮、複製資料庫結構、ALTER TABLE 增強等。
預遷移關鍵步驟(成敗關鍵)
1. 環境資訊蒐集與備份
離線備份資料庫(`db2 backup`),保存 `db cfg`、`dbm cfg`、資料列計數、表空間/套件詳細資訊、`db2look` 輸出、`db2dart` 檢查報告。提供 UNIX Shell 腳本 `get_table_count.sh` 統計 SIEBEL 綱要下所有表資料列數,及 `get_db_info.sh` 一鍵蒐集所有關鍵資訊。
2. 磁碟空間與日誌預留
遷移期間 `SQLSPCS.1/2` 檔案會膨脹至 4 倍,需預留足夠空間。系統目錄表空間(SYSCATSPACE)與臨時表空間(TEMPSPACE1)總大小建議加倍。將 `logfilsiz`、`logprimary`、`logsecondary` 加倍,避免單一交易修改系統目錄導致日誌不足回滾。Linux 平台需將裸裝置轉為區塊裝置。
3. 停止 DB2 服務
依序執行 `db2licd -end`、`db2 force application all`、`db2stop`(每實例)、`db2admin stop`(DAS 用戶)、`db2_kill`,確認無殘留進程。
4. 相容性驗證
確認硬體/軟體符合 DB2 9 系統需求,套用所有修補程式。
遷移執行:Windows 與 UNIX 雙平台指引
Windows 平台(兩種模式)
模式一(推薦): 安裝 DB2 9 時自動偵測舊版並遷移實例,安裝完成後僅需 `db2start` 與 `db2 migrate db ` 完成資料庫遷移。
模式二: 安裝至新目錄,手動執行 `db2imigr v8InstanceName /u:userid,password` 遷移實例,重開 CLP 後 `db2start` 與 `db2 migrate db `。
UNIX 平台
- 安裝 DB2 9(無需解除安裝 V8 或刪除 SQLLIB)。
- 以 root 執行 `db2licm -a ` 添加授權。
- 清理 root 環境變數 `LIBPATH`/`PATH` 中的舊 DB2 路徑,檢查 `.profile`、`.kshrc`。
- 以 root 執行 `db2imigr -u db2fenc1 db2inst1` 遷移實例(舊 SQLLIB 重命名為 SQLLIB_V81)。
- 以實例擁有者身分 `db2start`,再 `db2 migrate db ` 遷移資料庫。
遷移後必要配置與優化
- 還原日誌空間參數(若預遷移曾調大)。
- 安裝 Siebel 預存程序(`siebproc`/`siebproc.dll` 至 `SQLLIB/FUNCTION`),設權限並授權 `PUBLIC` 執行。
- `db2 activate db ` 啟用資料庫。
- 檢查登錄變數、`db cfg`、`dbm cfg`,用 `db2set -g` 設定全域登錄變數(遷移不帶過)。
- 重新綁定所有套件:`db2rbind dbname -l output all`,並綁定 CLI 套件。
- 如需遷移 `db2 explain` 表:`db2exmig -d dbname -e explain_schema`。
- 蒐集遷移後資料庫資訊(同預遷移步驟 2)對比驗證。
- 啟用資料壓縮:`alter table ... compress yes` + `reorg table ... resetdictionary`。
- 全表 `runstats` 更新統計資訊(可修改 `get_table_count.sh` 迴圈執行)。
- 遷移完成後執行完整備份。
- 遷移用戶端連線(參考《DB2 Clients Migration Overview》)。
- 啟用 STMM 自動調適記憶體: 提供 `enable_stmm.sh` 腳本,一鍵設定資料庫/實例/緩衝池參數為 `AUTOMATIC`,並將 `SHEAPTHRES` 設 0,重啟實例生效。
完成上述步驟,Siebel 7 即可在 DB2 9 上穩定高效運行,享受 pureXML、STMM、LBAC 等新特性紅利。