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

下載本文檔

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

文檔簡介

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

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

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

4、實(shí)例db2inst1和數(shù)據(jù)庫hadb的設(shè)置。在該設(shè)置中:機(jī)器ha1用作主DB2UDB數(shù)據(jù)庫機(jī)器。機(jī)器ha2用作節(jié)點(diǎn)ha1的備用機(jī)器。每個(gè)節(jié)點(diǎn)都有所安裝的DB2UDB8.1的一個(gè)本地副本。數(shù)據(jù)庫hadb特定的目錄(db2instl/NODEOOOO/SQLOOOOl和db2instl/NODEOOOO/sqldbdir)將保留在共享文件系統(tǒng)(/ha)上。安裝數(shù)據(jù)庫按照本節(jié)中介紹的步驟在主節(jié)點(diǎn)和備用節(jié)點(diǎn)上安裝DB2UDB&1。更多信息,請(qǐng)參考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)核級(jí)別: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使用下面的命令啟動(dòng)DB2安裝向?qū)В?/db2setup。在這個(gè)向?qū)е?,使用下面的信息:?duì)于Producttoinstall,請(qǐng)使用DB2UDBEnterpriseServerEdition。對(duì)于GroupandUserIDs,組ID(gid)和用戶ID(uid)域的值在兩臺(tái)機(jī)器上必須匹配。我們使用表1中給出的ID值。對(duì)于Partition,請(qǐng)選擇single-partitioninstance。對(duì)于DB2InstanceName,請(qǐng)選擇db2instl。表1.安裝DB2使用的組名/ID、用戶名/ID組名GID用戶名UIDdasadm

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論