DB2 Fix Pack 升級看似簡單,實際操作稍有疏漏即導致實例啟動失敗、DAS 掛點、套件失效。本文提煉出經實戰驗證的標準化作業流程(SOP),涵蓋升級前準備、核心步驟、實例/DAS 升級、套件重綁、常見錯誤急救,可直接列印貼在機房牆上執行。
db2nodes.cfg、db2system 等關鍵檔案/tmp/fixpack)# 切換至各實例擁有者
su - db2inst1
db2stop force
su - db2inst2
db2stop force
# 停止 DAS
dasstop
關鍵:若 `db2stop` 掛住,先執行 `db2_kill` 或 `ipclean` 清除共享記憶體/信號量,再確認進程全無(`ps -ef | grep db2`)。
cd /tmp/fixpack
./installFixPack # 圖形介面或無人值守模式均可
安裝過程會更新 $DB2DIR 下的產品程式碼,不動實例目錄。
$DB2DIR/instance/db2iupdt db2inst1
$DB2DIR/instance/db2iupdt db2inst2
此步驟將實例目錄下的二進位檔、腳本、配置樣板同步至新版本。
$DB2DIR/instance/dasupdt dasusr1
# 實例擁有者啟動
db2start
# DAS
dasstart
對每一個實例執行:
db2 connect to <資料庫別名>
db2 bind $DB2DIR/bnd/@db2ubind.lst blocking all grant public
db2 bind $DB2DIR/bnd/@db2cli.lst blocking all grant public
# 若有其他系統套件清單(如 db2schema.lst),同樣處理
db2 connect reset
原則:Fix Pack 更新了系統套件本體,必須重綁至各資料庫,否則應用程式執行計劃可能失效或報錯 SQL0805N。
| 現象 | 根因 | 標準處置 |
|---|---|---|
db2start 失敗 / 掛住 | 舊版進程殘留、共享記憶體未釋放 | ipclean → db2iupdt <實例> 再試啟動 |
dasstart / db2admin start 失敗 | DAS 進程殘留 | ipclean → dasupdt 再試啟動 |
應用報 SQL0805N 套件不存在 | 未執行套件重綁 | 依步驟 6 逐庫重綁 @db2ubind.lst @db2cli.lst |
實例升級報錯 DBI1281E | 實例仍在運行或鎖定檔殘留 | 確認 `db2stop force`、`db2_kill`、刪除 sqllib/ctrl/.<實例>.lock 後重試 |
setup.exe /u 或圖形安裝 Fix Pack。db2iupdt.exe <實例名>dasupdt.exe %DB2PATH%\bnd\。核心心法:Fix Pack 升級 = 停實例 → 裝程式碼 → 升實例/DAS → 綁套件 → 驗收。少任何一環,皆為埋雷。把 SOP 印成檢核表,逐項打勾,才是專業運維的態度。