| 
       咨詢電話:010-51727811/12/13
      當(dāng)前位置: 首頁 > 新聞中心 > 業(yè)內(nèi)新聞 >
      Veritas Cluster Server for DB2雙機-入門(一)
      時間:2013-09-22 09:32  來源:飛客數(shù)據(jù)恢復(fù)   作者:飛客數(shù)據(jù)恢復(fù)工程師
          雙機熱備這一概念有兩種不太相同的意義:從廣義上來說也稱為雙機互備,指的是對于重要的服務(wù),使用兩臺服務(wù)器協(xié)同工作,共同執(zhí)行同一個服務(wù)。當(dāng)一臺服務(wù)器出現(xiàn)故障時,可以由另一臺服務(wù)器暫時相應(yīng)原有的兩個機器的所有服務(wù),等待故障機的恢復(fù)和重新加入集群,從而在不需要人工干預(yù)的情況下,自動保證系統(tǒng)能持續(xù)提供服務(wù)。這種集群一般被稱為高性能集群(High performance cluster. HPC)。
       
          從狹義上講,雙機熱備特指基于active/standby方式的服務(wù)器熱備,這也是雙機熱備最常用的含義,服務(wù)器數(shù)據(jù)包括數(shù)據(jù)庫數(shù)據(jù)同時往兩臺或多臺服務(wù)器寫,或者使用一個共享的存儲設(shè)備,但在同一時間內(nèi)只有一臺服務(wù)器運行。當(dāng)其中運行著的一臺服務(wù)器出現(xiàn)故障無法啟動時,另一臺備份服務(wù)器會被集群軟件激活,保證應(yīng)用在短時間內(nèi)完全恢復(fù)正常使用。這種集群一般被稱為高可用集群(High Availability cluster. HAC)。
       
          雙機熱備由備用的服務(wù)器解決了在主服務(wù)器故障時服務(wù)不中斷的問題。但在實際應(yīng)用中,可能會出現(xiàn)多臺服務(wù)器的情況,即服務(wù)器集群。在廣義的雙機互備中,N臺服務(wù)器同時工作,硬件資源的利用率最高;在狹義的雙機熱備中,需要m臺機器(m不小于1)作為后備服務(wù)器,那么至多只能用(N-m)臺機器工作,資源的利用率低于雙機互備。(一般軟件公司都會將多機同時工作作為一個特殊的功能來賣,價格比兩臺機器的總和可能還要高,所有一般中小企業(yè)用戶都會選擇后一種熱備方式,犧牲一些可用性)。
       
          在IBM的DB2數(shù)據(jù)庫產(chǎn)品中,包括了上述的兩種熱備方式:均衡多處理模式(Symmetric Multiprocessing, SMP)和大數(shù)據(jù)并行處理模式(Massively Parallel Processing, MPP)。 SMP是指一臺數(shù)據(jù)庫工作,另一臺數(shù)據(jù)庫作為后備,當(dāng)工作的數(shù)據(jù)庫發(fā)生故障的時候,集群會將數(shù)據(jù)庫服務(wù)所需的所有服務(wù)轉(zhuǎn)移到后備的服務(wù)器上面。MPP是指多臺數(shù)據(jù)庫同時工作,一旦某一臺數(shù)據(jù)庫服務(wù)器發(fā)生故障,其他的服務(wù)器就會接管其服務(wù),直到故障機重新加入到集群中。
       
          作為一款專業(yè)的集群管理軟件,Veritas Cluster Server(VCS)能夠針對不同的情況進行不同的管理。由于DB2的雙機熱備(狹義)模式配置比較簡單,也相對容易理解。所以本文講述如何利用VCS去管理DB2雙機熱備的高可用集群。而在下一講中會講述如何利用VCS去配置和管理雙機互備的高性能集群。
          在本文中,做了如下假設(shè):用戶希望將system1和system2配置成雙機環(huán)境,IP地址分別是(192.168.0.1, 192.168.0.2)操作系統(tǒng)是Solaris,利用Symantec的Storage foundation作為文件系統(tǒng)管理工具,DB2的程序在兩個系統(tǒng)中分別安裝,而數(shù)據(jù)庫文件存放在共享磁盤上面,共享磁盤組是DB2DG,卷名DB2Vol,文件系統(tǒng)掛載在/home/db2下面,訪問DB2的虛擬主機名為db2server,IP是192.168.0.3。
       
      1. 配置
          a) 創(chuàng)建數(shù)據(jù)文件使用的共享存儲(在system1上面執(zhí)行下列5個命令):
          i. # vxdg init DB2DG c0t0d0; 創(chuàng)建磁盤組DB2DG,使用c0t0d0這個硬盤;
          ii. # vxassist -g DB2DG make DB2Vol 5g; 在磁盤組上創(chuàng)建5G大小的卷DB2Vol;
          iii. # mkfs -F vxfs -o largefiles /dev/vx/rdsk/DB2DG/DB2Vol; 創(chuàng)建文件系統(tǒng);
          iv. # mkdir /home/db2 ; 創(chuàng)建mount點,共享磁盤將mount到這里;
          v. # mount -F vxfs /dev/vx/dsk/DB2DG/DB2Vol /home/db2; 將共享盤mount到本機;
       
          b) 使兩個系統(tǒng)可以通過RSH方式互相訪問,在system1上面做如下操作:
          i. echo “system2  192.168.0.2” >> /etc/hosts; 將對方加入的自己的主機列表;
          ii. echo “system2 db2inst1” >> $HOME/.rhosts; 使得對方主機可以通過RSH以db2inst1的身份登陸本機;
          iii. echo “db2server 192.168.0.3” >> /etc/hosts; 將虛擬主機加入的自己的主機列表;
       
          c) 在system2上面做類型的操作,將system2改為system1,IP也作相應(yīng)的改變,虛擬主機不變。
       
          d) 在兩臺機器上面分別執(zhí)行下列命令,創(chuàng)建相同的用戶組。
          i. # groupadd -g 999 db2iadm1; 創(chuàng)建DB2實例管理組;
          ii. # groupadd -g 998 db2fadm1; 創(chuàng)建DB2 fencing管理組;
          iii. # groupadd -g 997 db2asgrp; 創(chuàng)建DB2數(shù)據(jù)庫管理組;
          iv. # useradd -g db2iadm1 -u 1004 -d /home/db2 -m db2inst1; 創(chuàng)建DB2實例管理用戶;
          v. # useradd -g db2fadm1 -u 1003 -d /home/ db2fenc1 -m db2fenc1; 創(chuàng)建DB2 fencing 管理用戶;
          vi. # useradd -g db2asgrp -u 1002 -d /home/ db2as -m db2as; 創(chuàng)建DB2數(shù)據(jù)庫管理員帳戶;
          注意:上述組或者用戶的ID可以是任意的尚未被使用的數(shù)字,但是一定要保證兩臺機器上面的用戶ID是一致的,否則數(shù)據(jù)庫切換的操作會失敗;數(shù)據(jù)庫實例管理員的帳戶存放在共享盤上面。
       
          e) 在兩臺機器上面分別安裝DB2數(shù)據(jù)庫程序:
       
          注意:在oracle中,可以將oracle數(shù)據(jù)庫程序裝在共享盤上,則只需要安裝一份即可;
       
          另外DB2的安裝有兩個命令:db2setup和install。db2setup是圖形化工具,會將數(shù)據(jù)庫程序和一個實例文件同時創(chuàng)建,而我們在雙機上只需分別安裝數(shù)據(jù)庫程序而維護同一份實例文件,所有推薦使用install安裝DB2,這樣只會安裝程序在系統(tǒng)上,實例文件稍后自己安裝即可。
       
          f) 在兩臺機器安裝DB2的序列號:
          i. # /opt/IBM/db2/V8.1/adm/db2licm -a db2ese.lic
       
          g) 檢查兩臺機器下面的/etc/service文件,確保都有如下的條目并且兩邊的端口是相同的:
          DB2_db2inst1 60000/tcp #
          DB2_db2inst1_1 60001/tcp #
          DB2_db2inst1_2 60002/tcp #
          DB2_db2inst1_END 60003/tcp #
          db2c_db2inst1 50000/tcp #
       
          h) 在system1上面創(chuàng)建實例(存放在共享盤)
          i. cd /usr/opt/db2_08_01/instance
          ii. ./db2icrt -u db2fenc1 db2inst1
       
          i) 修改DB2節(jié)點文件/home/db2/sqllib/db2nodes.cfg
          i. 將其內(nèi)容改為:
          0 db2server 0
          1 db2server 1      或者
          0 system1 0
          1 system2 1
          注意:第一種方式配置的是以虛擬主機的方式進行熱備,第二種使用真是主機的方式進行切換的。如果是多機環(huán)境,第一種方式方便管理,第二種方式更顯得直觀。