版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年規(guī)范化加工場(chǎng)所租賃協(xié)議例本版B版
- 成都師范學(xué)院《二外(日語(yǔ))I》2023-2024學(xué)年第一學(xué)期期末試卷
- 監(jiān)控桿基礎(chǔ)施工方案
- 輕描淡寫(xiě)的瞬間作文6篇
- 2024年離婚協(xié)議書(shū)模板:適用于無(wú)共同財(cái)產(chǎn)情況
- 2024年行政合同優(yōu)益權(quán)研究:合同標(biāo)的、屬性與改革探討
- 林區(qū)施工專(zhuān)項(xiàng)施工方案
- 2024排水溝勞務(wù)分包合同范本
- 2024年生物制藥專(zhuān)利技術(shù)許可使用合同
- 2025年度杭州中介房屋出租合同5篇
- 臨時(shí)安全用電要求安全培訓(xùn)
- 水稻田稻鴨共棲技術(shù)要點(diǎn)
- 肺功能科室工作報(bào)告
- 如何訓(xùn)練寶寶獨(dú)立就寢
- 血常規(guī)報(bào)告單
- 寶寶大便觀察及護(hù)理課件
- 學(xué)校最小應(yīng)急單元應(yīng)急預(yù)案
- 一年級(jí)第一學(xué)期口算題(20以內(nèi)口算天天練-15份各100題精確排版)
- 公司月度安全生產(chǎn)綜合檢查表
- 重慶市康德卷2023-2024學(xué)年物理高二上期末綜合測(cè)試試題含解析
- 七年級(jí)音樂(lè)下冊(cè) 第4單元《北京喜訊到邊寨》課件1 花城版
評(píng)論
0/150
提交評(píng)論