DB2-HADR概述-DB2-高可用---DB2-雙機熱備_第1頁
DB2-HADR概述-DB2-高可用---DB2-雙機熱備_第2頁
DB2-HADR概述-DB2-高可用---DB2-雙機熱備_第3頁
DB2-HADR概述-DB2-高可用---DB2-雙機熱備_第4頁
DB2-HADR概述-DB2-高可用---DB2-雙機熱備_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、DB2-HADR概 述-DB2-高可用 -DB2-雙機熱備DB2 HADR 概述High Availability Disaster Recovery (HADR) 是數(shù)據(jù)庫級別的高可用性數(shù)據(jù)復制機制,最初被 應用于Informix數(shù)據(jù)庫系統(tǒng)中,稱為High Availability Data Replication (HDR )。IBM 收購Informix之后,這項技術就應用到了新的 DB2發(fā)行版中。一個HADR環(huán)境需要兩臺數(shù)據(jù) 庫服務器:主數(shù)據(jù)庫服務器(primary )和備用 數(shù)據(jù)庫服務器(standby )。當主數(shù)據(jù)庫中發(fā)生 事務操作時,會同時將日志文件通過 TCP/IP協(xié) 議傳送到

2、備用數(shù)據(jù)庫服務器,然后備用數(shù)據(jù)庫對 接受到的日志文件進行重放(Replay ),從而 保持與主數(shù)據(jù)庫的一致性。當主數(shù)據(jù)庫發(fā)生故障 時,備用數(shù)據(jù)庫服務器可以接管主數(shù)據(jù)庫服務器 的事務處理。此時,備用數(shù)據(jù)庫服務器作為新的 主數(shù)據(jù)庫服務器進行數(shù)據(jù)庫的讀寫操作,而客戶 端應用程序的數(shù)據(jù)庫連接可以通過自動客戶端 重新路由(Automatic Client Reroute)機制轉(zhuǎn)移到新的主服務器。當原來的主數(shù)據(jù)庫服務器被 修復后,又可以作為新的備用數(shù)據(jù)庫服務器加入 HADR。通過這種機制,DB2 UDB實現(xiàn)了數(shù)據(jù)庫的災難恢復和高可用性,最大限度的避免了數(shù)據(jù)丟失。下圖為DB2 HADR的工作原理圖:客戶錨應

3、用程序.主數(shù)據(jù)庫服務器(PRIMARY)笹用據(jù)肯服務器(SIASDHV)f . Autviuafse生散據(jù)昨U志文件毎用數(shù)據(jù)日志文件日蹇抓取注:處于備用角色的數(shù)據(jù)庫不能被訪問 下面我們首先從一個配置實例入手來了解 DB2HADR環(huán)境的基本配置過程,然后再對 HADR 環(huán)境涉及到的一些技術要點展開討論。回頁首快速實例上手要進行這個實例配置過程,你必須擁有DB2UDB En terprise Server Editi on (ESE),筆者 使用的是 DB2 ESE v822 for Linux 32bit (在v8.2的基礎上打了 Fixpack9a )。如果您沒有 這個版本,可以到IBM官方網(wǎng)

4、站下載試用版(可能需要花點時間填寫一些信息),下載鏈接:https:/www44.software.ibm.eom/webapp/i wm/web/preLoqindo?source=db2udbdl。 另外,筆者使用的是兩臺DELL PowerEdge 2850作為數(shù)據(jù)庫服務器,安裝Redhat Linux Enterprise Server v4.0o這兩臺機器的主機名 和 IP 地址分別為:DBSERV1 (62)和 DBSERV2 (63)。在下面的配11置過程中我們將DBSERV1作為主數(shù)據(jù)庫服務 器,其實HADR配置好之后,這兩臺服務器的

5、 角色是可以轉(zhuǎn)換的。為簡單起見,我們就釆用 DB2的樣本數(shù)據(jù)庫SAMPLE作為配置對象。 配置過程(以下命令均在DB2 CLP中執(zhí)行):1. 在 DBSERV1 和 DBSERV2 上安裝 DB2,并 創(chuàng)建缺省實例db2inst1,服務端口: 50000,我 們使用缺省的實例所有者用戶db2inst1,密碼:db2inst1 2.使用db2sampl命令在DBSERV1上創(chuàng)建樣本數(shù)據(jù)庫SAMPLE3.修改SAMPLE數(shù)據(jù)庫配置參數(shù)LOGRETAIN為ON,以使該數(shù)據(jù)庫日志記錄方 式改為存檔日志。UPDATE DB CFG FOR SAMPLE USING LOGRETAIN ONUPDATE

6、DB CFG FOR SAMPLE USING TRACKMOD ON4.修改索引日志記錄參數(shù)UPDATE DB CFG FOR SAMPLE USING LOGINDEXBUILD ONUPDATE DB CFG FOR SAMPLE USING INDEXREC RESTART注:這一步并不是必須的。5.備份數(shù)據(jù)庫SAMPLEbackup DB sample TO /database/dbbak其中"/database/dbbak"是筆者用來存放數(shù)據(jù) 庫備份文件的目錄,你完全可以指定任何一個 db2inst1有寫入權限的其他目錄。備份完成之后,在/database/db

7、bak目錄下我們 會看到數(shù)據(jù)庫備份映像文件:SAMPLE.0.db2instlNODE0000 CATN000020050726122125001注:你所得到的文件名的時間標志部分肯定和我 的不一樣,在下面的恢復數(shù)據(jù)庫命令中要注意做9.配置HADR服務和偵聽端口用vi編輯/etc/services 文件(需要切換到root用戶),加入下面兩行:11.修改備用數(shù)據(jù)庫(DBSERV2 - SAMPLE )的配置參數(shù):UPDATE DB CFG FOR SAMPLE USING HADR_LOCAL_HOST 63UPDATE DB CFG FOR SAMPLE USING H

8、ADR_LOCAL_SVC DB2_HADR_2UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_HOST 62UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_SVC DB2_HADR_1UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_INST db2inst1UPDATE DB CFG FOR SAMPLE USING HADR_SYNCMODE NEARSYNCUPDATE DB CFG FOR SAMPLE USING HADR_TIMEOUT 12012

9、.啟動 HADR :首先啟動備用數(shù)據(jù)庫服務器的 HADR :DEACTIVATE DATABASE SAMPLESTART HADR ON DATABASE SAMPLE AS STANDBY然后啟動主數(shù)據(jù)庫服務器的 HADR :DEACTIVATE DATABASE SAMPLESTART HADR ON DATABASE SAMPLE AS PRIMARY注:如果你先啟動主數(shù)據(jù)庫服務器 HADR,那么 你必須保證在HADR_TIMEOUT 參數(shù)指定的時 間內(nèi)(單位為秒)啟動備用數(shù)據(jù)庫服務器HADR。 否則將啟動失敗。OK,到目前為止,我們已經(jīng)成功配置并啟動了DB2 HADR。在下一節(jié)中我們

10、將對這個配置好的HADR環(huán)境進行一些測試來驗證它是否能按照新的主數(shù)據(jù)庫(原備用數(shù)據(jù)庫):CIn 跳 運 態(tài) 式$機務聖51志衙 饒 主服主服弄志日間 伙色態(tài)歩黨地地時日顯心 DR懐星丟本本遠遠遠超主備日fl歩*同接 等近連 主紮已20O5-BJ-26192.168-1-163=DB2_HADR_2=閔彳.佃2k DB2_HfiDR_1-db2inst1-12B,頁+ LEbr) = SfieBC0OS.LOG , 2 件,帀.L5M) 弓 5陽卿IWILLCW” 2 (以字節(jié)卄=e.£oaOBOflaOOFti2l5F ,eoe60OODO«FA215F備用數(shù)據(jù)庫(原主數(shù)據(jù)

11、庫):件文均 文*cm跳式態(tài)心機志隔 ' 主服主服辛志日間 .包態(tài)步鑿地地替塑心 庫星丟本本遠遠遠超主備日步>同接豊近連ssfi DB2_HRDR_1=192?18彳*1百d=PB2_HfiDR_2工(lb2instl=120頁.LSN) = S0O0OBO8.LOG ,貝,LSH - SOO0OOO6.LOG 以字節(jié)甘)-西13::38&67478HBoaaiisaooFAZiF 腫叩朗胸腫血2侶F3.連接到新的主數(shù)據(jù)庫,并查詢 HADRTEST表:顯然,我們的HADR環(huán)境已經(jīng)可以正常工作了。 讀者可以自己再針對數(shù)據(jù)的修改、刪除等進行一 些測試。自動客戶端重新路由(Au

12、tomatic Client Reroute )功能也留給讀者自己測試。回頁首HADR管理操作匯總1.啟動和停止HADR使用START HADR命令啟動主數(shù)據(jù)庫和備用 數(shù)據(jù)庫的HADR。啟動主數(shù)據(jù)庫使用AS PRIMARY子句,啟動備用數(shù)據(jù)庫使用 AS STANDBY子句。如果想以其他用戶啟動HADR,可以通過 USER user-name USING password子句指定用戶名和密碼:例子:START HADR ON DATABASE SAMPLE USING db2inst1 USING db2inst1 AS STANDBY在啟動主數(shù)據(jù)庫的HADR時,如果在數(shù)據(jù)庫 HADR_TIME

13、OUT所指定的時間內(nèi)未能建立與 備用數(shù)據(jù)庫HADR的連接,啟動將失敗。這時 候,你可以等排除故障并成功啟動備用數(shù)據(jù)庫HADR后再啟動主數(shù)據(jù)庫HADR,也可以通過 指定BY FORCE子句強行啟動主數(shù)據(jù)庫。例如:START HADR ON DATABASE SAMPLE AS PRIMARY BY FORCE使用STOP HADR停止主數(shù)據(jù)庫和備用數(shù)據(jù)庫的 HADR。如果在活動的主數(shù)據(jù)庫上發(fā)出此命令,所有的數(shù) 據(jù)庫連接都被斷開,數(shù)據(jù)庫恢復為標準數(shù)據(jù)庫(我們稱沒有啟用HADR的數(shù)據(jù)庫為標準數(shù)據(jù) 庫),并保持聯(lián)機狀態(tài)。如果在活動的備用數(shù)據(jù)庫上發(fā)出此命令, 將停止 失敗。你必須先使用DEACTIVAT

14、EDATABASE命令取消激活,然后再停止HADR。2. 查看HARD的配置及運行狀態(tài)HADR連接狀態(tài):當備用數(shù)據(jù)庫的HADR啟動時,它首先進入本 地同步更新狀態(tài)。并根據(jù)本地日志路徑配置參數(shù) 及日志歸檔方法的設置檢索本地系統(tǒng)中的日志 文件并重放。當本地日志文件重放完畢,備用數(shù) 據(jù)庫進入遠程同步暫掛狀態(tài)。當與主數(shù)據(jù)庫建立 連接之后,備用數(shù)據(jù)庫進入遠程同步更新狀態(tài)。 即主數(shù)據(jù)庫將自己的日志文件通過 TCPIP協(xié)議 發(fā)送給備用數(shù)據(jù)庫,備用數(shù)據(jù)庫接收到日志文件 并重放,直到所有日志文件都重放完畢,備用數(shù) 據(jù)庫和主數(shù)據(jù)庫進入對等狀態(tài)。見下圖:通過GET SNAPSHOT命令觀察主數(shù)據(jù)庫和備 用數(shù)據(jù)庫的連

15、接狀態(tài)。通過GET DB CFG命令可以查看HADR的配置情況,即HADR相關的幾個數(shù)據(jù)庫參數(shù)值。3. 接管/故障轉(zhuǎn)移當主數(shù)據(jù)庫發(fā)生故障時,備用數(shù)據(jù)庫可以接管主 數(shù)據(jù)庫的服務,成為新的主數(shù)據(jù)庫(稱為故障轉(zhuǎn) 移)。當原主數(shù)據(jù)庫修復后,又可以作為備用數(shù) 據(jù)庫加入HADR對。即使主數(shù)據(jù)庫服務器沒有 故障,我們通過接管命令(TAKEOVER )切換 主數(shù)據(jù)庫和備用數(shù)據(jù)庫的角色。接管命令只能用 在備用數(shù)據(jù)庫上。HADR提供兩種接管方式:緊急接管:當主數(shù)據(jù)庫發(fā)生故障時,可以在備用數(shù)據(jù)庫上使 用緊急接管,使備用數(shù)據(jù)庫成為新的主數(shù)據(jù)庫。緊急接管必須指定TAKEOVER命令的BYFORCE子句,例如:TAKEO

16、VER HADR ON DATABASE SAMPLE BY FORCE普通接管:普通接管就是沒有使用BY FORCE子句的接 管,例如:TAKEOVER HADR ON DATABASE SAMPLE 這種接管必須在主數(shù)據(jù)庫和備用數(shù)據(jù)庫都正常 運行的情況下使用。如果主數(shù)據(jù)庫發(fā)生故障,普 通接管將失敗,這時候必須使用上面的緊急接 管。4. 同步方式在上面的配置實例中我們將主數(shù)據(jù)庫和備用數(shù)據(jù)庫的HADR_SYNCMODE參數(shù)值設置為NEARSYNC,當主數(shù)據(jù)庫和備用數(shù)據(jù)庫處于對 等狀態(tài)時,HADR采用NEARSYNC (接近同步) 同步方式管理日志寫入。DB2提供了三種日志 同步方式:SYNC

17、(同步):采用SYNC方式時,僅當主數(shù)據(jù)庫日志寫入成 功,并收到備用數(shù)據(jù)庫的應答,確保備用數(shù)據(jù)庫 的日志也成功寫入的情況下,才認為日志寫入成 功。這種方式下的事務響應時間最長,但最大限度的 確保不發(fā)生事務丟失。NEARSYNC (接近同步):采用NEARSYNC方式時,當主數(shù)據(jù)庫日志寫入 成功,并收到備用數(shù)據(jù)庫的應答,確定備用數(shù)據(jù) 庫已經(jīng)接收到日志時,即認為日志寫入成功。也 就是說,備用數(shù)據(jù)庫接收到的日志并不一定能成 功寫入持久存儲設備上的日志文件。這種方式下的事務響應時間比 SYNC方式短, 且僅當兩臺服務器同時發(fā)生故障時,才會發(fā)生事 務丟失。ASYNC (異步):采用ASYNC方式時,當主

18、數(shù)據(jù)庫日志寫入成 功,并將日志發(fā)送出去之后,即認為日志寫入成 功。此方式并不保證備用數(shù)據(jù)庫能收到日志,這要依賴于TCP/IP網(wǎng)絡情況。這種方式下的事務響應時間最短,但產(chǎn)生事務丟 失的可能性也最大5. 自動客戶端重新路由(Automatic Client Reroute)要配置自動客戶端重新路由,使用 UPDATE ALTERNATE SERVER 命令設置備用數(shù)據(jù)庫信 息(使用方法參考上面的配置實例),這些信息 將被存放在數(shù)據(jù)庫的系統(tǒng)目錄中。 請注意:必須 使用此命令來設置備用數(shù)據(jù)庫,而不是HADR_REMOTE_HOST 和 HADR_REMOTE_SVC 數(shù)據(jù)庫配置參數(shù),自動 客戶端重新路

19、由不使用這兩個參數(shù)。當客戶端與數(shù)據(jù)庫建立連接時,備用數(shù)據(jù)庫的配 置信息(主機/IP及 端口號)也同時被發(fā)送給DB2客戶端。當客戶端與主數(shù)據(jù)庫的連接被中斷時,客戶端就使用這些信息連接到備用數(shù)據(jù) 庫,從而最小限度的降低了數(shù)據(jù)庫故障所造成的 影響。需要強調(diào)的是,這個過程由 DB2客戶端 自動完成,不需要用戶用程序干涉。見下圖:乳廣端丿訕I(yè)4數(shù)刑庫I11獲肚哋牛L.u I jj.gjj. “ 一 i -id通過LIST DB DIRECOTRY 命令可以查看系統(tǒng)數(shù)據(jù)庫目錄中自動客戶端重新路由的配置。6. 使用控制中心管理 HADR在上面的討論中我們主要通過 DB2 CLP命令來創(chuàng)建和管理DB2 HAD

20、R。實際上DB2的控制中 心也提供了創(chuàng)建和管理 HADR的圖形界面,例如:工具-向?qū)?設置高可用性災難恢復(HADR )數(shù)據(jù)庫。這些功能使用起來都非常簡 單,在這里我們就不詳細討論了。但是,筆者強 烈建議盡量多使用DB2 CLP命令來管理DB2 (不僅僅是針對HADR ),不要過于依賴DB2 控制中心,因為很多服務器環(huán)境都不安裝控制中 心,這時候你如果沒有掌握 DB2 CLP命令,那 可就麻煩大了。7. 關于索引日志記錄 索引的創(chuàng)建、重建、重組也是 HADR環(huán)境中需 要考慮的一個方面,DB2通過數(shù)據(jù)庫配置參數(shù)LOGINDEXBUILD 和 CREATE TABLE 或 ALTER TABLE

21、語句中的 LOG INDEX BUILD 選項來控制是否對索引的相關操作進行詳細的 日志記錄。我們在上面的 HADR配置實例中將 LOGINDEXBUILD 數(shù)據(jù)庫參數(shù)配置為 ON,意 為讓DB2記錄索引創(chuàng)建、重建、重組的完整日 志。這顯然會降低主數(shù)據(jù)庫的運行效率并占用更 多的日志空間。但因為備用數(shù)據(jù)庫可以通過重放 日志來重新構建索引,所以當主數(shù)據(jù)庫發(fā)生故 障,備用數(shù)據(jù)庫的索引仍然可用。用戶可以通過CREATE TABLE或ALTER TABLE語句的LOG INDEX BUILD 選項來對單 個表設定索引日志記錄級別。LOG INDEX BUILD選項有三個可選參數(shù):? NULL :這是缺省

22、值,當使用此參數(shù)時,表的索引日志記錄級別由數(shù)據(jù)庫配置參數(shù)LOGINDEXBUILD 的值決定。? ON :使用此參數(shù),數(shù)據(jù)庫配置參數(shù)LOGINDEXBUILD 的值將被忽略,DB2將 記錄這個表上所有索引維護的詳細日志。? OFF :使用此參數(shù)時,數(shù)據(jù)庫配置參數(shù)LOGINDEXBUILD 的值將被忽略,DB2將 不記錄這個表上索引維護的日志。如果表選項LOG INDEX BUILD 設置為OFF, 或者LOG INDEX BUILD 設置為NULL但數(shù)據(jù) 庫配置參數(shù)LOGINDEXBUILD設置為OFF, DB2將不記錄這些表的索引維護日志,備用數(shù) 據(jù)庫也就無法重放索引維護操作,致使這些索引 在備用數(shù)據(jù)庫上變?yōu)闊o效狀態(tài)。當主數(shù)據(jù)庫發(fā)生 故障,備用數(shù)據(jù)庫切換為新主數(shù)據(jù)庫后, 這些無 效的索引必須重建才能被使用。DB2通過數(shù)據(jù) 庫配置參數(shù)INDEXREC來指定在什么時候檢查 并重建無效索引。INDEXREC參

溫馨提示

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

評論

0/150

提交評論