Dataguard作為專門保護Oracle數(shù)據(jù) |
|
|
文章來源:德明時代 更新時間:2016-8-4 23:08:21 閱讀次數(shù):
次 |
|
Dataguard介紹
Dataguard作為專門保護Oracle數(shù)據(jù),可提供最高級別的數(shù)據(jù)保護和可用性的同時,使Oracle保持最卓越的性能。
Oracle Dataguard的配置為一個primary數(shù)據(jù)庫和一個或者多個standby數(shù)據(jù)庫的組合。Dataguard的運行遵循一個簡單原則,主庫傳輸重做數(shù)據(jù)到備庫,然后備庫進行應用重做數(shù)據(jù),備庫處于連續(xù)恢復狀態(tài),驗證并應用重做數(shù)據(jù),從而與主庫保持同步。
重做的含義
重做是Dataguard操作的核心,Oracle對于重做的定義為:一個重做記錄由一組變更向量構成,每個向量描述數(shù)據(jù)庫中一個數(shù)據(jù)塊的變化。例如,如果更改了雇員表中的薪水值,就生成了一個重做記錄,其中包含多個更改向量,來描述撤銷段數(shù)據(jù)庫、撤銷段的事務表以及表的數(shù)據(jù)塊的變化。
重做記錄包含重新生成數(shù)據(jù)庫更改所需的所有信息。在戒指恢復期間,數(shù)據(jù)庫將讀取重做記錄中的更改向量,并為相關數(shù)據(jù)塊應用更改信息。
DataGuard 的服務
重做傳輸服務Redo transport service
重做傳輸服務協(xié)調(diào)從主數(shù)據(jù)庫到備用數(shù)據(jù)庫的重做數(shù)據(jù)傳輸過程。主數(shù)據(jù)庫的LGWR日志寫入進程將重做數(shù)據(jù)寫入到自己的聯(lián)機日志中,一個獨立的DG進程從SGA的redo buffer cache中讀取信息,交由OracleNet服務傳輸?shù)絺鋷,這個進程是Log Network Server (LNS),LNS進程個數(shù)是根據(jù)DG架構中備庫的數(shù)量決定的,如果有2個備庫的話,主庫就會有2個LNS進程處于活動狀態(tài)。DG架構允許將重做數(shù)據(jù)從一個主數(shù)據(jù)庫直接傳給一個或最多9個備庫。由LNS傳輸?shù)闹刈鲇涗浽趥鋷煊闪硪粋DG進程Remote File Server(RFS)接收。RFS在備庫上接收重做數(shù)據(jù)后將其寫入Standby redo log中。
重做傳輸服務支持使用LNS進程的重做傳輸方法:同步SYNC重做傳輸和異步ASYNC重做傳輸。主要的差別是同步重做傳輸中LGWR需要等待LNS的通知確認傳輸完成才能向用戶發(fā)送提交確認信息,這種機制雖然可以確保德寶數(shù)據(jù)庫提交確認的每個事務都已經(jīng)收到保護,但是這樣會影響主數(shù)據(jù)庫的性能,因為LGWR需要等待LNS的通知才能繼續(xù)下一個事務。而異步重做傳輸就不必等待LNS的確認消息,這樣就幾乎不會影響到主庫的性能。如果考慮網(wǎng)絡延遲的情況,使得先前事務的重做數(shù)據(jù)不能立即傳給備用數(shù)據(jù)庫,LGWR將繼續(xù)確認提交操作成功完成,如果LNS趕不上正常情況下的讀取重做緩沖區(qū)的流程,在將重做數(shù)據(jù)傳給備用庫前就回收了日志緩沖區(qū),LNS將自行轉為榮聯(lián)機日志讀取和發(fā)送重做數(shù)據(jù)(11g開始提供此功能)。當LNS趕上正常進度后,將自行轉回到直接從重做日志緩沖區(qū)中讀取和發(fā)送。ASYNC唯一的不足之處是增加了數(shù)據(jù)損失的風險,在使用ASYNC時,應該提供足夠大的網(wǎng)絡帶寬來處理峰值期間高速生成的重做數(shù)據(jù),可以最大限度地降低數(shù)據(jù)損失的風險。
應用服務
DG提供兩種不同的方法在備用庫上應用重做數(shù)據(jù),Redo Apply和SQL Apply。DG的宗旨是防止丟失數(shù)據(jù),所以DG的設計目標就是讓備用庫成為主庫的同步副本,實現(xiàn)對整個數(shù)據(jù)庫的單向復制。DG第二個目標在高度分離主庫和備庫,以免主庫上發(fā)生的問題影響到備庫,進而危及數(shù)據(jù)的保護和可用性,反之備庫發(fā)生問題也是。DG第三個目標是在主庫出現(xiàn)故障時提供數(shù)據(jù)可用性和高可用性。RedoApply和SQLApply都能講一個同步備庫快速轉換為主庫,這樣主庫出現(xiàn)計劃內(nèi)外中斷后保護數(shù)據(jù)和恢復可用性。
Redo Apply(Physical standby)
當備庫RFS進程接收來自主庫的Redo數(shù)據(jù)后將其寫入Standby Redo log,然后一個名為MRP的介質恢復進程和多個并行應用進程應用和恢復重做數(shù)據(jù)。11g企業(yè)版中提供了ACTIVE DATAGUARD實時應用查詢功能,可用打開備庫只讀模式提供查詢服務,這樣可以在介質恢復的同時緩解主庫的查詢壓力。
SQL Apply(Logical standby)
SQL Apply使用邏輯備用進程(LSP)將更改協(xié)調(diào)應用于備庫。SQLApply的多個進程讀取standby redolog,并通過將重做數(shù)據(jù)轉換為邏輯更改記錄來提取Redo數(shù)據(jù),然后構建SQL事務并將SQL應用在備庫。SQL Apply應用sql期間,邏輯備庫以讀寫模式打開,SQLapply禁止對所復制的數(shù)據(jù)加以修改,但是允許對與主庫無關的數(shù)據(jù)進行添加和更新等操作,如果在備庫上查詢報表的話,備庫還可以添加主庫上沒有的相關索引和視圖,這樣做的話可以提高邏輯備庫的使用性。
|
|
上一條:oracle的RMAN備份基礎知識普及 下一條:軟件測試及Bug管理經(jīng)驗談
|
|