以下的文章主要向大家講述的是如何正確利用MSCS來對DB2集群服務進行高效創建,周末加班,事先以說好幫人建一個關於Windows操作系統的故障轉移集群。雖說現在主要精力是在中間件上,但Windows畢竟還是深入學習過一年的。
更何況在WebSphere和WebLogic上都做過MSCS的集群,所以以為不過是小菜一碟,最後想不到從6點搞到了凌晨1點。
周末加班,事先得知是幫人建一個Windows的故障轉移集群。雖說現在主要精力是在中間件上,但Windows畢竟還是深入學習過一年的嘛,更何況在WebSphere和WebLogic上都做過MSCS的集群,所以以為不過是小菜一碟,最後想不到從6點搞到了凌晨1點。
我們首先是采用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.192.31 //指定 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集群服務中自動添加了一個資源組:DB2 Group A,添加了一個名為DB2的DB2類型服務,而這個服務類型之前是沒有的。