1. 程式人生 > >Oracle 11g Dataguard 基礎介紹

Oracle 11g Dataguard 基礎介紹

Dataguard介紹

    Dataguard作為專門保護Oracle資料,可提供最高級別的資料保護和可用性的同時,使Oracle保持最卓越的效能。

    Oracle Dataguard的配置為一個primary資料庫和一個或者多個standby資料庫的組合。Dataguard的執行遵循一個簡單原則,主庫傳輸重做資料到備庫,然後備庫進行應用重做資料,備庫處於連續恢復狀態,驗證並應用重做資料,從而與主庫保持同步。

重做的含義

    重做是Dataguard操作的核心,Oracle對於重做的定義為:一個重做記錄由一組變更向量構成,每個向量描述資料庫中一個數據塊的變化。例如,如果更改了僱員表中的薪水值,就生成了一個重做記錄,其中包含多個更改向量,來描述撤銷段資料庫、撤銷段的事務表以及表的資料塊的變化。

    重做記錄包含重新生成資料庫更改所需的所有資訊。在戒指恢復期間,資料庫將讀取重做記錄中的更改向量,併為相關資料塊應用更改資訊。

DataGuard 的服務

    重做傳輸服務Redo transport service

    重做傳輸服務協調從主資料庫到備用資料庫的重做資料傳輸過程。主資料庫的LGWR日誌寫入程序將重做資料寫入到自己的聯機日誌中,一個獨立的DG程序從SGA的redo buffer cache中讀取資訊,交由OracleNet服務傳輸到備庫,這個程序是Log Network Server (LNS),LNS程序個數是根據DG架構中備庫的數量決定的,如果有2個備庫的話,主庫就會有2個LNS程序處於活動狀態。DG架構允許將重做資料從一個主資料庫直接傳給一個或最多9個備庫。由LNS傳輸的重做記錄在備庫由另一個DG程序Remote File Server(RFS)接收。RFS在備庫上接收重做資料後將其寫入Standby redo log中。

    重做傳輸服務支援使用LNS程序的重做傳輸方法:同步SYNC重做傳輸非同步ASYNC重做傳輸。主要的差別是同步重做傳輸中LGWR需要等待LNS的通知確認傳輸完成才能向用戶傳送提交確認資訊,這種機制雖然可以確保德寶資料庫提交確認的每個事務都已經收到保護,但是這樣會影響主資料庫的效能,因為LGWR需要等待LNS的通知才能繼續下一個事務。而非同步重做傳輸就不必等待LNS的確認訊息,這樣就幾乎不會影響到主庫的效能。如果考慮網路延遲的情況,使得先前事務的重做資料不能立即傳給備用資料庫,LGWR將繼續確認提交操作成功完成,如果LNS趕不上正常情況下的讀取重做緩衝區的流程,在將重做資料傳給備用庫前就回收了日誌緩衝區,LNS將自行轉為榮聯機日誌讀取和傳送重做資料(11g開始提供此功能)。當LNS趕上正常進度後,將自行轉回到直接從重做日誌緩衝區中讀取和傳送。ASYNC唯一的不足之處是增加了資料損失的風險,在使用ASYNC時,應該提供足夠大的網路頻寬來處理峰值期間高速生成的重做資料,可以最大限度地降低資料損失的風險。

    應用服務

    DG提供兩種不同的方法在備用庫上應用重做資料,Redo Apply和SQL Apply。DG的宗旨是防止丟失資料,所以DG的設計目標就是讓備用庫成為主庫的同步副本,實現對整個資料庫的單向複製。DG第二個目標在高度分離主庫和備庫,以免主庫上發生的問題影響到備庫,進而危及資料的保護和可用性,反之備庫發生問題也是。DG第三個目標是在主庫出現故障時提供資料可用性和高可用性。RedoApply和SQLApply都能講一個同步備庫快速轉換為主庫,這樣主庫出現計劃內外中斷後保護資料和恢復可用性。

    Redo Apply(Physical standby)

    當備庫RFS程序接收來自主庫的Redo資料後將其寫入Standby Redo log,然後一個名為MRP的介質恢復程序和多個並行應用程序應用和恢復重做資料。11g企業版中提供了ACTIVE DATAGUARD實時應用查詢功能,可用開啟備庫只讀模式提供查詢服務,這樣可以在介質恢復的同時緩解主庫的查詢壓力。

    SQL Apply(Logical standby)

    SQL Apply使用邏輯備用程序(LSP)將更改協調應用於備庫。SQLApply的多個程序讀取standby redolog,並通過將重做資料轉換為邏輯更改記錄來提取Redo資料,然後構建SQL事務並將SQL應用在備庫。SQL Apply應用sql期間,邏輯備庫以讀寫模式開啟,SQLapply禁止對所複製的資料加以修改,但是允許對與主庫無關的資料進行新增和更新等操作,如果在備庫上查詢報表的話,備庫還可以新增主庫上沒有的相關索引和檢視,這樣做的話可以提高邏輯備庫的使用性。

    Dataguard保護模式

    Maximum availability

    最高效能模式比較重視主庫的效能,請示資料保護,它需要使用非同步重做傳輸,因為主庫後臺程序LGWR不需要等待LNS的確認訊息就提交操作,主庫的效能和可用性不受重做傳輸的影響,也不受主備庫之間的網路情況或者備庫可用性的影響。在此模式下的預設重做傳輸方法是async。

    Maximum performance

    最大可用性強調可用性,其次強調零資料損失保護,重做傳輸方法是sync。

    Maximum protection 

    最大保護模式將資料保護放在首要位置,重做傳輸方法是sync。如果主庫未能從sync備用資料庫收到確認訊息,主庫將停下來並最終中止,防止出現未保護提交的情況。

    角色管理

    Switchover

    A switchover Allows the primary database to switch roles with one of its standby databases. There is no data loss during a switchover. After a switchover, each database continues to participate in the Data Guard configuration with its new role.

    Switchover是計劃內的時間,DG轉換主備角色,在計劃維護期間,切換對於儘量縮短停機時間非常有作用。切換可以用於滾動資料庫升級遷移卷管理器(如asm)、遷移單例項到rac等操作。

    Failover

    A failover is when the primary database is unavailable. Failover is performed only in the event of a failure of the primary database, and the failover results in a transition of a standby database to the primary role. The database administrator can configure Data Guard to ensure no data loss.