DB2 HADR概述 DB2 高可用 DB2 雙機(jī)熱備_第1頁(yè)
DB2 HADR概述 DB2 高可用 DB2 雙機(jī)熱備_第2頁(yè)
DB2 HADR概述 DB2 高可用 DB2 雙機(jī)熱備_第3頁(yè)
DB2 HADR概述 DB2 高可用 DB2 雙機(jī)熱備_第4頁(yè)
DB2 HADR概述 DB2 高可用 DB2 雙機(jī)熱備_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——DB2HADR概述DB2高可用DB2雙機(jī)熱備

DB2高可用

DB2HADR概述HighAvailabilityDisasterRecovery(HADR)是數(shù)據(jù)庫(kù)級(jí)別的高可用性數(shù)據(jù)復(fù)制機(jī)制,最初被應(yīng)用于Informix數(shù)據(jù)庫(kù)系統(tǒng)中,稱(chēng)為HighAvailabilityDataReplication(HDR)。IBM收購(gòu)Informix之后,這項(xiàng)技術(shù)就應(yīng)用到了新的DB2發(fā)行版中。一個(gè)HADR環(huán)境需要兩臺(tái)數(shù)據(jù)庫(kù)服務(wù)器:主數(shù)據(jù)庫(kù)服務(wù)器(primary)和備用數(shù)據(jù)庫(kù)服務(wù)器(standby)。當(dāng)主數(shù)據(jù)庫(kù)中發(fā)生事務(wù)操作時(shí),會(huì)同時(shí)將日志文件通過(guò)TCP/IP協(xié)議傳送到備用數(shù)據(jù)庫(kù)服務(wù)器,然后備用數(shù)據(jù)庫(kù)對(duì)接受到的日志文件進(jìn)行重放(Replay),從而保持與主數(shù)據(jù)庫(kù)的一致性。當(dāng)主數(shù)據(jù)庫(kù)發(fā)生故障時(shí),備用數(shù)據(jù)庫(kù)服務(wù)器可以接納主數(shù)據(jù)庫(kù)服務(wù)器的事務(wù)處理。此時(shí),備用數(shù)據(jù)庫(kù)服務(wù)器作為新的主數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行數(shù)據(jù)庫(kù)的讀寫(xiě)操作,而客戶端應(yīng)用程序的數(shù)據(jù)庫(kù)連接可以通過(guò)自動(dòng)客戶端重新路由(AutomaticClientReroute)機(jī)制轉(zhuǎn)移到新的主服務(wù)器。當(dāng)原來(lái)的主數(shù)據(jù)庫(kù)服務(wù)器被修復(fù)后,又可以作為新的備用數(shù)據(jù)庫(kù)服務(wù)器參與HADR。通過(guò)這種機(jī)制,DB2UDB實(shí)現(xiàn)了數(shù)據(jù)庫(kù)的災(zāi)難恢復(fù)和高可用性,最大限度的避免了數(shù)據(jù)丟失。下圖為DB2HADR的工作原理圖:

注:處于備用角色的數(shù)據(jù)庫(kù)不能被訪問(wèn)。

下面我們首先從一個(gè)配置實(shí)例入手來(lái)了解DB2HADR環(huán)境的基本配置過(guò)程,然后再對(duì)HADR環(huán)境涉及到的一些技術(shù)要點(diǎn)展開(kāi)探討。

回頁(yè)首

快速實(shí)例上手

要進(jìn)行這個(gè)實(shí)例配置過(guò)程,你必需擁有DB2UDBEnterpriseServerEdition(ESE),筆者使用的是DB2ESEv8.2.2forLinux32bit(在v8.2的基礎(chǔ)上打了Fixpack9a)。假使您沒(méi)有這個(gè)版本,可以到IBM官方網(wǎng)站下載試用版(可能需要花點(diǎn)時(shí)間填寫(xiě)一些信息),下載鏈接:https://http://.77/webapp/iwm/web/preLogin.do?source=db2udbdl。另外,筆者使用的是兩臺(tái)DELLPowerEdge2850作為數(shù)據(jù)庫(kù)服務(wù)器,安裝RedhatLinuxEnterpriseServerv4.0。這兩臺(tái)機(jī)器的主機(jī)名和IP地址分別為:DBSERV1(62)和DBSERV2(63)。在下面的配置過(guò)程中我們將DBSERV1作為主數(shù)據(jù)庫(kù)服

DB2高可用

9.配置HADR服務(wù)和偵聽(tīng)端口

用vi編輯/etc/services

文件(需要切換到root用戶),參與下面兩行:

對(duì)于Windows,編輯%SystemRoot%\system32\drivers\etc\services。

注:這一步不是必需的,由于在下面配置HADR_LOCAL_SVC和HADR_REMOTE_SVC數(shù)據(jù)庫(kù)參數(shù)的時(shí)候您可以直接使用端口號(hào)來(lái)替代服務(wù)名。

10.修改主數(shù)據(jù)庫(kù)(DBSER1-SAMPLE)的配置參數(shù):

11.

修改備用數(shù)據(jù)庫(kù)(DBSERV2-SAMPLE)的配置參數(shù):

12.

啟動(dòng)HADR:

首先啟動(dòng)備用數(shù)據(jù)庫(kù)服務(wù)器的HADR:

DB2高可用

然后啟動(dòng)主數(shù)據(jù)庫(kù)服務(wù)器的HADR:

注:假使你先啟動(dòng)主數(shù)據(jù)庫(kù)服務(wù)器HADR,那么你必需保證在HADR_TIMEOUT參數(shù)指定的時(shí)間內(nèi)(單位為秒)啟動(dòng)備用數(shù)據(jù)庫(kù)服務(wù)器HADR。否則將啟動(dòng)失敗。

OK,到目前為止,我們已經(jīng)成功配置并啟動(dòng)了DB2HADR。在下一節(jié)中我們將對(duì)這個(gè)配置好的HADR環(huán)境進(jìn)行一些測(cè)試來(lái)驗(yàn)證它是否能依照我們預(yù)期的方式工作。

回頁(yè)首

HADR測(cè)試

1.連接到主數(shù)據(jù)庫(kù),創(chuàng)立測(cè)試表HADRTEST,并插入幾條測(cè)試數(shù)據(jù):

2.使用備份數(shù)據(jù)庫(kù)接納主數(shù)據(jù)庫(kù)

觀測(cè)數(shù)據(jù)庫(kù)主數(shù)據(jù)庫(kù)和備用數(shù)據(jù)庫(kù)的狀態(tài):

新的主數(shù)據(jù)庫(kù)(原備用數(shù)據(jù)庫(kù)):

DB2高可用

備用數(shù)據(jù)庫(kù)(原主數(shù)據(jù)庫(kù)):

3.連接到新的主數(shù)據(jù)庫(kù),并查詢HADRTEST表:

顯然,我們的HADR環(huán)境已經(jīng)可以正常工作了。讀者可以自己再針對(duì)數(shù)據(jù)的修改、刪除等進(jìn)行一些測(cè)試。自動(dòng)客戶端重新路由(AutomaticClientReroute)功能也留給讀者自己測(cè)試。

回頁(yè)首

HADR管理操作匯總

1.啟動(dòng)和中止HADR

使用STARTHADR命令啟動(dòng)主數(shù)據(jù)庫(kù)和備用數(shù)據(jù)庫(kù)的HADR。啟動(dòng)主數(shù)據(jù)庫(kù)使用AS

PRIMARY子句,啟動(dòng)備用數(shù)據(jù)庫(kù)使用ASSTANDBY子句。假使想以其他用戶啟動(dòng)HADR,可以通過(guò)USERuser-nameUSINGpassword子句指定用戶名和密碼:

例子:

在啟動(dòng)主數(shù)據(jù)庫(kù)的HADR時(shí),假使在數(shù)據(jù)庫(kù)HADR_TIMEOUT所指定的時(shí)間內(nèi)未能建立與備用數(shù)據(jù)庫(kù)HADR的連接,啟動(dòng)將失敗。這時(shí)候,你可以等排除故障并成功啟動(dòng)備用數(shù)據(jù)庫(kù)HADR后再啟動(dòng)主數(shù)據(jù)庫(kù)HADR,也可以通過(guò)指定BYFORCE子句強(qiáng)行啟動(dòng)主數(shù)據(jù)庫(kù)。例如:

使用STOPHADR中止主數(shù)據(jù)庫(kù)和備用數(shù)據(jù)庫(kù)的HADR。

DB2高可用

假使在活動(dòng)的主數(shù)據(jù)庫(kù)上發(fā)出此命令,所有的數(shù)據(jù)庫(kù)連接都被斷開(kāi),數(shù)據(jù)庫(kù)恢復(fù)為標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)(我們稱(chēng)沒(méi)有啟用HADR的數(shù)據(jù)庫(kù)為標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)),并保持聯(lián)機(jī)狀態(tài)。

假使在活動(dòng)的備用數(shù)據(jù)庫(kù)上發(fā)出此命令,將中止失敗。你必需先使用DEACTIVATEDATABASE命令取消激活,然后再中止HADR。

2.查看HARD的配置及運(yùn)行狀態(tài)

HADR連接狀態(tài):

當(dāng)備用數(shù)據(jù)庫(kù)的HADR啟動(dòng)時(shí),它首先進(jìn)入本地同步更新?tīng)顟B(tài)。并根據(jù)本地日志路徑配置參數(shù)及日志歸檔方法的設(shè)置檢索本地系統(tǒng)中的日志文件并重放。當(dāng)本地日志文件重放完畢,備用數(shù)據(jù)庫(kù)進(jìn)入遠(yuǎn)程同步暫掛狀態(tài)。當(dāng)與主數(shù)據(jù)庫(kù)建立連接之后,備用數(shù)據(jù)庫(kù)進(jìn)入遠(yuǎn)程同步更新?tīng)顟B(tài)。即主數(shù)據(jù)庫(kù)將自己的日志文件通過(guò)TCPIP協(xié)議發(fā)送給備用數(shù)據(jù)庫(kù),備用數(shù)據(jù)庫(kù)接收到日志文件并重放,直到所有日志文件都重放完畢,備用數(shù)據(jù)庫(kù)和主數(shù)據(jù)庫(kù)進(jìn)入對(duì)等狀態(tài)。見(jiàn)下圖:

通過(guò)GETSNAPSHOT命令觀測(cè)主數(shù)據(jù)庫(kù)和備用數(shù)據(jù)庫(kù)的連接狀態(tài)。

通過(guò)GETDBCFG命令可以查看HADR的配置狀況,即HADR相關(guān)的幾個(gè)數(shù)據(jù)庫(kù)參數(shù)值。

3.接納/故障轉(zhuǎn)移

當(dāng)主數(shù)據(jù)庫(kù)發(fā)生故障時(shí),備用數(shù)據(jù)庫(kù)可以接納主數(shù)據(jù)庫(kù)的服務(wù),成為新的主數(shù)據(jù)庫(kù)(稱(chēng)為故障轉(zhuǎn)移)。當(dāng)原主數(shù)據(jù)庫(kù)修復(fù)后,又可以作為備用數(shù)據(jù)庫(kù)參與HADR對(duì)。即使主數(shù)據(jù)庫(kù)服務(wù)器沒(méi)有故障,我們通過(guò)接納命令(TAKEOVER)切換主數(shù)據(jù)庫(kù)和備用數(shù)據(jù)庫(kù)的角色。接納命令只能用在備用數(shù)據(jù)庫(kù)上。

HADR提供兩種接納方式:

緊急接納:

當(dāng)主數(shù)據(jù)庫(kù)發(fā)生故障時(shí),可以在備用數(shù)據(jù)庫(kù)上使用緊急接納,使備用數(shù)據(jù)庫(kù)成為新的主數(shù)據(jù)庫(kù)。緊急接納必需指定TAKEOVER命令的BYFORCE子句,例如:

DB2高可用

普通接納:

普通接納就是沒(méi)有使用BYFORCE子句的接納,例如:

這種接納必需在主數(shù)據(jù)庫(kù)和備用數(shù)據(jù)庫(kù)都正常運(yùn)行的狀況下使用。假使主數(shù)據(jù)庫(kù)發(fā)生故障,普通接納將失敗,這時(shí)候必需使用上面的緊急接納。

4.同步方式

在上面的配置實(shí)例中我們將主數(shù)據(jù)庫(kù)和備用數(shù)據(jù)庫(kù)的HADR_SYNCMODE參數(shù)值設(shè)置為NEARSYNC,當(dāng)主數(shù)據(jù)庫(kù)和備用數(shù)據(jù)庫(kù)處于對(duì)等狀態(tài)時(shí),HADR采用NEARSYNC(接近同步)同步方式管理日志寫(xiě)入。DB2提供了三種日志同步方式:

SYNC(同步):

采用SYNC方式時(shí),僅當(dāng)主數(shù)據(jù)庫(kù)日志寫(xiě)入成功,并收到備用數(shù)據(jù)庫(kù)的應(yīng)答,確保備用數(shù)據(jù)庫(kù)的日志也成功寫(xiě)入的狀況下,才認(rèn)為日志寫(xiě)入成功。

這種方式下的事務(wù)響應(yīng)時(shí)間最長(zhǎng),但最大限度的確保不發(fā)生事務(wù)丟失。

NEARSYNC(接近同步):

采用NEARSYNC方式時(shí),當(dāng)主數(shù)據(jù)庫(kù)日志寫(xiě)入成功,并收到備用數(shù)據(jù)庫(kù)的應(yīng)答,確定備用數(shù)據(jù)庫(kù)已經(jīng)接收到日志時(shí),即認(rèn)為日志寫(xiě)入成功。也就是說(shuō),備用數(shù)據(jù)庫(kù)接收到的日志并不一定能成功寫(xiě)入持久存儲(chǔ)設(shè)備上的日志文件。

這種方式下的事務(wù)響應(yīng)時(shí)間比SYNC方式短,且僅當(dāng)兩臺(tái)服務(wù)器同時(shí)發(fā)生故障時(shí),才會(huì)發(fā)生事務(wù)丟失。

ASYNC(異步):

采用ASYNC方式時(shí),當(dāng)主數(shù)據(jù)庫(kù)日志寫(xiě)入成功,并將日志發(fā)送出去之后,即認(rèn)為日志寫(xiě)入成功。此方式并不保證備用數(shù)據(jù)庫(kù)能收到日志,這要依靠于TCP/IP網(wǎng)絡(luò)狀況。

這種方式下的事務(wù)響應(yīng)時(shí)間最短,但產(chǎn)生事務(wù)丟失的可能性也最大

5.自動(dòng)客戶端重新路由(AutomaticClientReroute)

要配置自動(dòng)客戶端重新路由,使用UPDATEALTERNATESERVER命令設(shè)置備用數(shù)據(jù)庫(kù)信息(使用方法參考上面的配置實(shí)例),這些信息將被存放在數(shù)據(jù)庫(kù)的系統(tǒng)目錄中。請(qǐng)注意:必需使用此命令來(lái)設(shè)置備用數(shù)據(jù)庫(kù),而不是HADR_REMOTE_HOST和

HADR_REMOTE_SVC數(shù)據(jù)庫(kù)配置參數(shù),自動(dòng)客戶端重新路由不使用這兩個(gè)參數(shù)。

當(dāng)客戶端與數(shù)據(jù)庫(kù)建立連接時(shí),備用數(shù)據(jù)庫(kù)的配置信息(主機(jī)/IP及端口號(hào))也同時(shí)被發(fā)送給DB2客戶端。當(dāng)客戶端與主數(shù)據(jù)庫(kù)的連接被中斷時(shí),客戶端就使用這些信息連接到備用數(shù)據(jù)庫(kù),從而最小限度的降低了數(shù)據(jù)庫(kù)故障所造成的影響。需要強(qiáng)調(diào)的是,這個(gè)過(guò)程由DB2客戶端自動(dòng)完成,不需要用戶用程序干擾。見(jiàn)下圖:

DB2高可用

通過(guò)LISTDBDIRECOTRY命令可以查看系統(tǒng)數(shù)據(jù)庫(kù)目錄中自動(dòng)客戶端重新路由的配置。

6.使用控制中心管理HADR

在上面的探討中我們主要通過(guò)DB2CLP命令來(lái)創(chuàng)立和管理DB2HADR。實(shí)際上DB2的控制中心也提供了創(chuàng)立和管理HADR的圖形界面,例如:工具-〉向?qū)?〉設(shè)置高可用性災(zāi)難恢復(fù)(HADR)數(shù)據(jù)庫(kù)。這些功能使用起來(lái)都十分簡(jiǎn)單,在這里我們就不詳細(xì)探討了。但是,筆者猛烈建議盡量多使用DB2CLP命令來(lái)管理DB2(不僅僅是針對(duì)HADR),不要過(guò)于依靠DB2控制中心,由于好多服務(wù)器環(huán)境都擔(dān)憂裝控制中心,這時(shí)候你假使沒(méi)有把握DB2CLP命令,那可就麻煩大了。

7.關(guān)于索引日志記錄

索引的創(chuàng)立、重建、重組也是HADR環(huán)境中需要考慮的一個(gè)方面,DB2通過(guò)數(shù)據(jù)庫(kù)配置參數(shù)LOGINDEXBUILD和CREATETABLE或ALTERTABLE語(yǔ)句中的LOGINDEXBUILD選項(xiàng)來(lái)控制是否對(duì)索引的相關(guān)操作進(jìn)行詳細(xì)的日志記錄。我們?cè)谏厦娴腍ADR配置實(shí)例中將LOGINDEXBUILD數(shù)據(jù)庫(kù)參數(shù)配置為ON,意為讓DB2記錄索引創(chuàng)立、重建、重組的完整日志。這顯然會(huì)降低主數(shù)據(jù)庫(kù)的運(yùn)行效率并占用更多的日志空間。但由于備用數(shù)據(jù)庫(kù)可以通過(guò)重放日志來(lái)重新構(gòu)建索引,所以當(dāng)主數(shù)據(jù)庫(kù)發(fā)生故障,備用數(shù)據(jù)庫(kù)的索引依舊可用。用戶可以通過(guò)CREATETABLE或ALTERTABLE語(yǔ)句的LOGINDEXBUILD選項(xiàng)來(lái)對(duì)單個(gè)表設(shè)定索引日志記錄級(jí)別。LOGINDEXBUILD選項(xiàng)有三個(gè)可選參數(shù):

NULL:這是缺省值,當(dāng)使用此參數(shù)時(shí),表的索引日志記錄級(jí)別由數(shù)據(jù)庫(kù)配置參數(shù)LOGINDEXBUILD的值決定。

ON:使用此參數(shù),數(shù)據(jù)庫(kù)配置參數(shù)LOGINDEXBUILD的值將被忽略,DB2將記錄這個(gè)表上所有索引維護(hù)的詳細(xì)日志。

OFF:使用此參數(shù)時(shí),數(shù)據(jù)庫(kù)配置參數(shù)LOGINDEXBUILD的值將被忽略,DB2將不記錄這個(gè)表上索引維護(hù)的日志。

假使表選項(xiàng)LOGINDEXBUILD設(shè)置為OFF,或者LOGINDEXBUILD設(shè)置為NULL但數(shù)據(jù)庫(kù)配置參數(shù)LOGINDEXBUILD設(shè)置為OFF,DB2將不記錄這些表的索引維護(hù)日志,備用數(shù)據(jù)庫(kù)也就無(wú)法重放索引維護(hù)操作,致使這些索引在備用數(shù)據(jù)庫(kù)上變?yōu)闊o(wú)效狀態(tài)。當(dāng)主數(shù)據(jù)庫(kù)發(fā)生故障,備用數(shù)據(jù)庫(kù)切換為新主數(shù)據(jù)庫(kù)后,這些無(wú)效的索引必需重建才能被使用。DB2通過(guò)數(shù)據(jù)庫(kù)配置參數(shù)INDEXREC來(lái)指定在什么時(shí)候檢查并重建無(wú)效索引。INDEXREC參數(shù)有三個(gè)可選值:

RESTART:DB2將在顯式或隱式重啟數(shù)據(jù)庫(kù)(RESTARTDATABASE)的時(shí)候檢查并重新構(gòu)建無(wú)效索引。

ACCESS:DB2將在無(wú)效索引第一次被訪問(wèn)的時(shí)候才會(huì)重新構(gòu)建它。

DB2高可用

SYSTEM:使用數(shù)據(jù)庫(kù)管理器配置參數(shù)(DatabaseManagerConfiguration)

INDEXREC的值。

在上面的配置實(shí)例中,我們將INDEXREC

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論