DB2HA雙機集群_第1頁
DB2HA雙機集群_第2頁
DB2HA雙機集群_第3頁
DB2HA雙機集群_第4頁
DB2HA雙機集群_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、數(shù)據(jù)是現(xiàn)代隨需應(yīng)變業(yè)務(wù)的血液;存儲和移動數(shù)據(jù)的系統(tǒng)(服務(wù)器、網(wǎng)絡(luò)、數(shù)據(jù)庫)是這個系統(tǒng)的心臟。但是如果沒有heartbeat對這些數(shù)據(jù)具有可靠而快速的訪問,且宕機時間最少那么這兩者都是惰性組件。簡介本系列的第一篇文章Linux上的高可用中間件,第1部分:Heartbeat和ApacheWeb服務(wù)器簡要介紹了高可用(HA)的概念,以及如何安裝并配置heartbeat。本篇文章是本系列的最后一篇文章,它將介紹如何在一個冷備份(coldstandby)配置中使用heartbeat為DB2UDB8.1實現(xiàn)一個HA方案。關(guān)于heartbeatHeartbeat是Linux-HA項目中提供的一個公用包Hea

2、rtbeat提供了HA系統(tǒng)所需要的基本功能,例如啟動/停止資源,監(jiān)視集群中系統(tǒng)的可用性,在集群節(jié)點之間切換共享的IP地址信息。Heartbeat還可以通過一個串口線或以太網(wǎng)接口來監(jiān)視特定服務(wù)(或多個服務(wù))的健康信息。當(dāng)前的版本支持一個兩節(jié)點的配置,其中使用特殊的heartbeatpings來檢查服務(wù)的狀態(tài)和可用性。在這種實現(xiàn)中,heartbeat會檢測主節(jié)點的失效情況,并發(fā)起故障遷移的過程:在主節(jié)點上停止DB2進程在主節(jié)點上釋放共享磁盤在主節(jié)點上釋放該服務(wù)的IP地址將這個服務(wù)的IP地址添加到備用節(jié)點上在備用節(jié)點上加載這個共享磁盤在備用機器上重新啟動DB2進程為了最好地理解本文的內(nèi)容,您需要對D

3、B2UDB和高可用集群有一個基本的理解。本系列的第一篇文章介紹了對于軟件的高可用性來說這意味著什么,以及如何在一個兩節(jié)點的系統(tǒng)上使用High-AvailabilityLinux項目安裝并設(shè)置heartbeat軟件。DB2UDB和HA基礎(chǔ)在heartbeat集群中使用的任何DB2UDB都必須將數(shù)據(jù)全部存放在共享磁盤上,這樣在發(fā)生節(jié)點失效的情況時,就可以在依然存活的機器上訪問這些數(shù)據(jù)。運行數(shù)據(jù)庫實例的節(jié)點還必須在內(nèi)部磁盤上維護很多文件。這些文件包括與節(jié)點上的所有數(shù)據(jù)庫有關(guān)的文件。與數(shù)據(jù)庫實例有關(guān)的文件會被分別存放在內(nèi)部磁盤和外部磁盤上。圖1詳細介紹了DB2文件系統(tǒng)的組織,它介紹了在我們的測試中針對

4、實例db2inst1和數(shù)據(jù)庫hadb的設(shè)置。在該設(shè)置中:機器ha1用作主DB2UDB數(shù)據(jù)庫機器。機器ha2用作節(jié)點ha1的備用機器。每個節(jié)點都有所安裝的DB2UDB8.1的一個本地副本。數(shù)據(jù)庫hadb特定的目錄(db2instl/NODEOOOO/SQLOOOOl和db2instl/NODEOOOO/sqldbdir)將保留在共享文件系統(tǒng)(/ha)上。安裝數(shù)據(jù)庫按照本節(jié)中介紹的步驟在主節(jié)點和備用節(jié)點上安裝DB2UDB&1。更多信息,請參考DB2InformationCenter:以root用戶身份登錄。使用下面的命令解壓DB2UDB8.1的安裝映像文件:rm-rf/tmp/db28.1-ins

5、tallmkdir/tmp/db28.1-installtarxfC48THML.tar-C/tmp/db28.1-install這里的C48THML.tar是安裝的tar文件。設(shè)置內(nèi)核級別:exportLD_ASSUME_KERNEL=2.4.19。不要使用IBMDeveloperKitforLinux,即DB2安裝光盤中提供的Java2TechnologyEdition。使用IBM1.4.2JDK來替換DB2中提供的JDK。cd/tmp/db28.1-install/009_ESE_LNX_32_NLVmv./db2/linux/java./db2/linux/java.db2ln-s/o

6、pt/IBMJava2-142./db2/linux/java使用下面的命令啟動DB2安裝向?qū)В?/db2setup。在這個向?qū)е?,使用下面的信息:對于Producttoinstall,請使用DB2UDBEnterpriseServerEdition。對于GroupandUserIDs,組ID(gid)和用戶ID(uid)域的值在兩臺機器上必須匹配。我們使用表1中給出的ID值。對于Partition,請選擇single-partitioninstance。對于DB2InstanceName,請選擇db2instl。表1.安裝DB2使用的組名/ID、用戶名/ID組名GID用戶名UIDdasadm

7、12001dasusr12001db2grp12002db2inst12002db2fgrp12003db2fenc12003創(chuàng)建一個高可用的數(shù)據(jù)庫按照下面的步驟創(chuàng)建高可用的數(shù)據(jù)庫hadb:以db2inst1用戶的身份在主節(jié)點(ha1)和備用節(jié)點(ha2)上登錄:su-db2inst1。確保DB2(R)實例在ha1和ha2兩個節(jié)點上都不會在啟動時(以db2inst1的身份)使用db2iauto工具啟動:cdsqllib/bin./db2iauto-offdb2inst1修改/etc/inittab文件,以正確運行DB2HA。在節(jié)點hal和ha2上注釋掉在系統(tǒng)啟動時啟動DB2的那一行,如下所示:

8、#fmc:2345:respawn:/opt/IBM/db2/V8.l/bin/db2fmcd#DB2FaultMonitorCoordinator。在主節(jié)點hal上啟動DB2:db2start。在備用節(jié)點(ha2)上以root用戶的身份使用下面的命令掛載文件系統(tǒng)/ha:mount/ha。在節(jié)點hal上使用下面的命令創(chuàng)建數(shù)據(jù)庫hadb:db2createdatabasehadbon/ha。在節(jié)點ha1上使用下面的命令確保可以連接到數(shù)據(jù)庫hadb上:db2connecttohadb。如果成功,就使用這個命令斷開連接:db2connectreset。在節(jié)點hal上使用db2stop命令停止DB2。

9、在備用節(jié)點(ha2)上以root用戶的身份使用下面的命令掛載文件系統(tǒng)/ha:mount/ha。在備用節(jié)點上使用下面的命令啟動DB2:db2start。以db2instl用戶的身份在節(jié)點ha2上執(zhí)行下面的命令,對數(shù)據(jù)庫hadb進行catalog操作:db2catalogdatabasehadbon/ha。在節(jié)點ha2上使用db2connecttohadb命令,確??梢赃B接到數(shù)據(jù)庫hadb上。如果成功,就使用db2connectreset命令斷開連接。在節(jié)點ha2上使用db2stop命令停止DB2。配置heartbeat來管理DB2現(xiàn)在配置/etc/ha.d/haresources文件(在主節(jié)點和

10、備用節(jié)點上都要進行),使其包括管理DB2進程的腳本。這個腳本是由heartbeat提供的。修改文件的一部分如下所示:6Filesystem:/ha:/ha:nfs:rw,harddb2:db2instl這一行說明在啟動heartbeat時,hal使用集群的IP地址,掛載共享文件系統(tǒng),并啟動數(shù)據(jù)庫服務(wù)器。在停止服務(wù)器時,heartbeat首先要停止數(shù)據(jù)庫服務(wù)器,然后卸載共享文件系統(tǒng),最后放棄IP地址。測試DB2UDB的故障遷移本節(jié)將介紹如何對高可用的DB2數(shù)據(jù)庫hadb進行測試。這可能是本文中所介紹的最為棘手的一項工作,因此要仔細閱讀以下的內(nèi)容。在主節(jié)點上啟動heartbeat服務(wù),然后在備用節(jié)

11、點上也啟動hartbeat服務(wù)。您可以以root用戶的身份執(zhí)行/etc/rc.d/init.d/heartbeatstart命令。在成功啟動heartbeat之后,您應(yīng)該會看到一個新的接口,它使用了您在ha.cf文件中配置的IP地址。在啟動heartbeat之后,可以看一下主節(jié)點上的日志文件(默認是/var/log/ha-log),并確保它正在進行IP接管,然后又啟動了DB2。使用ps命令確保DB2進程正在主節(jié)點上運行。heartbeat將不能在備用節(jié)點上啟動任何上述進程,這只能在主節(jié)點失效之后才會發(fā)生。在hal節(jié)點上以db2instl的身份檢查數(shù)據(jù)庫的狀態(tài):db2-tf/ha/hahbcod

12、e/db2/listdb.sql。這個命令的輸出如下所示:ActiveDatabasesDatabasename=HADBApplicationsconnectedcurrently=0Databasepath=/ha/db2instl/NODE0000/SQL0000l/在節(jié)點ha1上以db2instl的身份創(chuàng)建一個測試表(hadb.TestHATable),方法如下:db2-tf/ha/hahbcode/db2/createdb.sql?,F(xiàn)在,在節(jié)點ha1上以db2instl的身份向測試表中插入一行數(shù)據(jù):db2-tf/ha/hahbcode/db2/insertdb.sql。在節(jié)點ha1上

13、以db2instl的身份查看測試表的內(nèi)容:db2-tf/ha/hahbcode/db2/selectdb.sql。您應(yīng)該可以看到在上一個步驟中插入的數(shù)據(jù)行。運行的結(jié)果如下:db2instlhaldb2instl$db2-tf/ha/hahbcode/db2/selectdb.sqlDatabaseConnectionInformationDatabaseserver=DB2/LINUX8.l.0SQLauthorizationID=DB2INSTlLocaldatabasealias=HADBCOLlCOL2l0Hellolrecord(s)selected.DB20000ITheSQLcom

14、mandcompletedsuccessfully.為了模擬故障遷移的情況,我們只需要在主節(jié)點上以root用戶的身份來停止heartbeat即可:/etc/rc.d/init.d/heartbeatstop。您應(yīng)該會看到在備用節(jié)點上,所有的服務(wù)都在一分鐘之內(nèi)啟動起來了。您可以通過檢查/var/log/ha-log文件的內(nèi)容并在備用節(jié)點上使用ps命令來確認DB2正在備用節(jié)點上運行。在節(jié)點ha2上以db2instl的身份檢查數(shù)據(jù)庫的狀態(tài):db2-tf/ha/hahbcode/db2/listdb.sql。這個命令的輸出如下所示:ActiveDatabasesDatabasename=HADBApp

15、licationsconnectedcurrently=0Databasepath=/ha/db2inst1/NODE0000/SQL00001/在節(jié)點ha2上以db2instl的身份查看測試表(hadb.TestHATable)的內(nèi)容:db2-tf/ha/hahbcode/db2/selectdb.sql。您應(yīng)該可以看到當(dāng)DB2在節(jié)點hal上運行時所插入的數(shù)據(jù)。我們運行的結(jié)果如下:/ha/hahbcode/db2/selectdb.sqlDatabaseConnectionInformationDatabaseserver=DB2/LINUX8.l.0SQLauthorizationID=D

16、B2INSTldb2instlha2db2instl$db2-tfLocaldatabasealias=HADBCOLlCOL2l0Hellolrecord(s)selected.DB20000ITheSQLcommandcompletedsuccessfully.這說明在從主節(jié)點到備用節(jié)點進行故障遷移時,數(shù)據(jù)得以維護下來了。在節(jié)點ha2上以db2instl的身份向測試表中插入一行數(shù)據(jù):db2-tf/ha/hahbcode/db2/insertdb.sql。您可以在主節(jié)點上以root用戶的身份啟動heartbeat來啟動主節(jié)點:/etc/rc.d/init.d/heartbeatstart。您

17、應(yīng)該會看到所有的服務(wù)器在一分鐘之內(nèi)都在主節(jié)點上啟動起來了。您可以通過檢查/var/log/ha-log文件的內(nèi)容并在主節(jié)點上使用ps命令來確認DB2正在主節(jié)點上運行。在節(jié)點ha1上以db2instl的身份檢查測試表的內(nèi)容:db2-tf/ha/hahbcode/db2/selectdb.sql。您會看到這個表中包含兩行數(shù)據(jù)了。我們運行的結(jié)果如下:db2instlhaldb2instl$db2-tf/ha/hahbcode/db2/selectdb.sqlDatabaseConnectionInformationDatabaseserver=DB2/LINUX8.l.0SQLauthorizationID=DB2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論