目前需要建一個Windows的故障轉移集群,雖說現在主要精力是在中間件上,但Windows究竟仍是深入學習過一年的嘛,更何況在 WebSphere和WebLogic上都做過MSCS的集群。
首先是采用Oracle在Windows下的套路:兩台主機上都啟用數據庫實例,數據庫則存放在共享存儲上,通過在集群資源中添加DB2的通用服務,從而達到數據庫服務的故障轉移。
應該說思路沒什麼題目,但是實行起來有個題目,就是在有用戶連接的情況下,休止db2服務會失敗,第二次再去休止才能夠停下來,這樣手動轉移集群就會有點題目。於是我們就想著法子怎麼再數據庫服務休止前執行一下間斷所有數據庫鏈接的命令……苦思冥想、多次嘗試,弄的焦頭爛額。
最後上IBM developerworks找文檔,才知道原來根本不用這麼麻煩,實例只需一份,而且DB2早就給你預備好了db2msce工具,只要寫一份 db2mscs.cfg的配置文件:
DB2_INSTANCE=DB2 //指定需要轉換的實例名稱
DB2_LOGON_USERNAME=dbdomain/db2admin //指定登錄實例的域用戶賬號
DB2_LOGON_PASSWord=0000 //指定登錄實例域用戶賬號的密碼
CLUSTER_NAME=MYCLUSTER //指定群集的名稱
GROUP_NAME=DB2 Group A //指定用於該實例的組名稱
DB2NODE=0 //指定該組資源對應的 DB2 節點號
IP_NAME= MscsA //指定用於該實例的 IP 地址資源的名稱
IP_ADDRESS=192.168.10.1 //指定 IP 地址資源的IP地址屬性
IP_SUBNET=255.255.255.0 //指定 IP 地址資源的子網掩碼
IP_NETWORK=Public Network //指定 IP 地址資源綁定的網絡連接
NETNAME_NAME = MscsAName //指定網絡名資源的名稱
NETNAME_VALUE = DataCenter //指定網絡名資源的機器名屬性
NETNAME_DEPENDENCY = MscsA //指定該網絡資源名對應的 IP 地址資源的名稱
DISK_NAME=DISK E: //指定該節點需要使用的磁盤資源
INSTPROF_DISK=E: //指定該節點目錄所在的磁盤資源上述配置文件中的NAME選項都可以隨便填寫,以簡樸明了為主,IP_ADDRESS是DB2服務的浮動 IP,IP_NETWORK應該寫提供集群外網服務的那塊網卡名稱,NETNAME的那三個選項可以不填,不影響使用(由於都是用IP連接的)。
最後運行db2mscs -f:db2mscs.cfg命令(留意F不是指盤符,將db2mscs.cfg放於db2mscs統一個目錄下),你就會看到集群服務中自動添加了一個資源組:DB2 Group A,添加了一個名為DB2的DB2類型服務,而這個服務類型之前是沒有的