周末協助建立 Windows 故障轉移叢集。初按 Oracle 套路:雙主機啟用實例、資料庫置共享存儲、叢集資源加入 DB2 通用服務實現轉移。但有用戶連線時停止 DB2 服務會失敗,需二次停止才成功,手動轉移存隱患。嘗試在服務停止前執行中斷連線命令,苦思不得。
查 IBM developerWorks 文件才知:實例只需一份,DB2 叢集服務早已內建 db2mscs 工具,只要寫一份 db2mscs.cfg 設定檔:
DB2_INSTANCE=DB2
DB2_LOGON_USERNAME=dbdomain/db2admin
DB2_LOGON_PASSWORD=0000
CLUSTER_NAME=MYCLUSTER
GROUP_NAME=DB2 Group A
DB2NODE=0
IP_NAME=MscsA
IP_ADDRESS=192.168.192.31
IP_SUBNET=255.255.255.0
IP_NETWORK=Public Network
NETNAME_NAME=MscsAName
NETNAME_VALUE=DataCenter
NETNAME_DEPENDENCY=MscsA
DISK_NAME=DISK E:
INSTPROF_DISK=E:
說明: NAME 選項可隨意填寫,以簡單明瞭為主。IP_ADDRESS 為 DB2 服務浮動 IP;IP_NETWORK 應填提供叢集外網服務的網卡名稱;NETNAME 三選項可不填 (皆用 IP 連線)。
將 db2mscs.cfg 放於 db2mscs 同目錄下,執行:
db2mscs -f:db2mscs.cfg
即可看到叢集資源組 DB2 Group A 自動建立,新增名為 DB2 的 DB2 型別服務 (此服務型別原不存在)。