Oracle最高可用性架構之Data Guard概述

fengpinDBA發表於2013-12-13

一、        最高可用性架構中的Data Guard

Data Guard用於Oracle資料的高可用性、資料保護和企業資料災難恢復。Data Guard提供一整套服務,包括建立、維護、管理和監控一個或更多個Standby資料庫,使主資料庫即使發生災難和資料破壞也能保證資料不丟失。Data Guard作為對主資料庫的拷貝來維護Standby資料庫。然而,如果主資料庫因為計劃活非計劃的停機變得不活動,Data Guard能切換任何Standby資料到主資料庫角色,最小化停機時間。Data Guard能切換任何Standby資料庫到主資料庫角色,最小化停機時間。Data Guard能使用傳統的備份、恢復和叢集技術幫助提供高階別的資料保護和更高可用性的資料庫。

使用Data Guard,管理員可以選擇通過解除安裝資源密集型的備份和生成報表到Standby資料庫來減小主資料庫壓力,提高主資料庫的效能。

1.     Data Guard優勢

優勢1災難恢復、資料保護和高可用性

Data Guard提供高效和綜合的災難恢復及高可用性的解決方案。允許角色在主資料庫和Standby資料庫之間切換,具備輕鬆管理主備資料庫SwitchoverFailover的能力;針對計劃和非計劃停機,最小化主資料庫停機時間。

優勢2完整的資料保護

即使是不可預見的災難,Data Guard也能確保零資料丟失。Standby資料庫提供防範資料損壞和使用者錯誤的能力。因為Redo資料是從主資料庫接收,在Standby資料庫應用的,因為在主資料庫儲存級別的物理損壞不會傳播到Standby資料庫。類似的,邏輯損壞或者使用者錯誤引起的主資料庫破壞也能夠得到一定程度的解決。

優勢3高效使用系統資源

        Standby資料的表接收來自主資料庫Redo資料的更新,這樣Standby資料庫就能完成備份、生成報表和查詢等工作,由此減少主資料庫的工作量,節約主資料庫的CPUI/O週期等寶貴資源。

      優勢4資料保護的靈活性

        Oracle Data Guard提供了最大保護、最大可用性和最大效能三種資料保護模式,以幫助企業平衡不同系統對資料安全性、可用性和效能的不同要求。

      優勢5自動檢測和解決日誌檔案缺失

        如果主資料庫和一個或多個Standby資料庫之間的連線丟失(如發生網路故障),在主資料庫生成的Redo資料不能傳送到Standby資料庫。一旦連線重新建立,Standby資料庫缺失的歸檔Redo日誌檔案能通過Data Guard被自動掃描和傳送,在沒有DBA手動介入的情況下,Standby資料庫與主資料庫也能重新同步。
優勢6集中和簡化管理

        Data Guard Broker提供圖形化使用者介面和命令介面,對在Data Guard配置中的多個資料庫進行自動化管理。

      優勢7整合Oracle資料庫

        Data GuardOracle資料庫企業版的一個特性,不需要單獨安裝。

      優勢8自動角色轉變

        當啟動fast-start Failover時,一旦主資料庫位置發生災難,Data Guard Broker自動失敗切換到一個同步的Standby資料庫,不需要DBA的介入。另外,應用程式被自動通知資料庫角色發生轉換。

2.     客戶端Failover

一個高可用性架構要求資料庫和資料庫客戶端有快速Failover的能力。資料庫的Failover發生後,幾秒內能夠使客戶端自動重定向到新的主資料庫。

如果實現了最高可用性環境,主資料庫是RAC環境,主資料庫與Standby資料庫之間使用Data Guard進行同步,使用SCAN提供的別名進行連線,客戶端能夠連線到當前活動的主資料庫(如果發生了主備切換,客戶端依然能夠正確的連線上切換後的資料庫)。

為了簡化配置,Oracle Database 11gR2引入了兩個新的SQL*Net引數,它們能夠用於客戶端本地服務名的配置。第一個引數是CONNECT_TIMEOUT,表示客戶端連線到Oracle資料庫的超時時間(單位秒),取代了SQLNET.ORA中的SQLNET.OUTBOUT_CONNECT_TIMEOUT引數。第2個引數是RETRY_COUNT,表示連線被終止之前,訪問ADDRESS_LIST的次數。

下面是一個典型的11gR2客戶端本地伺服器最高可用性配置,如果隨機選擇的一個地址指向了一個當前不活動的位置,在客戶端等待了過長時間(預設超時是依賴系統而定的,可能長達10分鐘)之前,超過了CONNECT_TIMEOUT時間允許連線請求發生失敗切換。換句話說,如果主備發生了切換,能夠確保新的連線或重新的連線都能正常連結到切換後的資料庫。

RACTEST=

(DESCRIPTION=

(CONNECT_TIMEOUT=10)

(RETRY_COUNT=3)

  (ADDRESS_LIST=

(LOAD_BALANCE=on)

(FAILOVER=ON)

  (ADDRESS=(PROTOCOL=tcp)(HOST=rhel-cluster-scan.grid.example.com)(PORT=1521))

(ADDRESS=(PROTOCOL=tcp)(HOST=rheldg1)(PORT=1521))

  )

  (CONNECT_DATA=

(SERVICE_NAME=ractest)

  )

)

以上配置可以結合RAC Service服務或Client-side TAF來使用,確保RAC內部也能夠實現節點間的Failover

3.     Standby資料庫

Standby資料庫是主資料庫事務一致性的拷貝。使用一個拷貝主資料庫的備份可以建立多大30Standby資料庫,可以將它們加入到一個Data Guard配置環境中。一旦建立成功,Data Guard通過自動應用從主資料庫傳送到Standby資料庫的Redo資料以維護每個Standby資料庫。類似主資料庫,Standby資料庫也可以是單例項資料庫或RAC資料庫。Standby資料庫分為以下三種型別。

a.       物理Standby資料庫

物理Standby資料庫提供了一個物理上與主資料庫相同的拷貝,磁碟資料庫結構與主資料庫是相同的,物理Standby資料庫是塊到塊的拷貝。一個物理Standby資料庫通過應用從主資料庫收到的Redo資料保持與主資料庫的同步,這個過程稱為日誌應用。

10gData Guard中,物理Standby資料庫在應用日誌的時候是不可以開啟的。從Oracle Database 11gR1開始,Standby以只讀形式開啟時,物理Standby資料庫能收到並且應用Redo資料,因此,物理Standby資料庫能在保護資料的同時生成最新報表,Oracle將這種Data Guard稱為Active Data Guard

b.       邏輯Standby資料庫

邏輯Standby資料庫包含和主資料庫相同的邏輯資訊,物理結構和資料結構可以是不同的。邏輯Standby將從主資料庫收到的Redo轉換成SQL語句,然後在Standby資料庫上執行SQL語句,這個過程稱為SQL應用(SQL Apply)。

邏輯Standby資料庫能用於除災難恢復要求以外的其它目的。在任何時間,允許使用者查詢邏輯Standby資料庫和通過邏輯Standby資料庫生成報表。同時,使用邏輯Standby資料庫能升級Database軟體,在幾乎不停機的情況下打補丁,因此,邏輯Standby資料庫能在保護資料的同時生成報表和升級資料庫。

c.       快照Standby資料庫

快照Standby資料庫是一個在11g版本中出現的全新的Standby資料庫。像物理或邏輯Standby資料庫一樣,快照Standby資料庫從主資料庫接受Redo資料。與物理或者邏輯Standby資料庫不同的是,快照Standby資料庫只接收而不應用Redo資料。快照Standby資料庫沒有應用接收到的Redo資料,直到快照Standby資料庫轉換為物理Standby資料庫,之後首次拋棄任何對快照Standby資料庫的更新,然後再應用Redo資料。

一個快照資料庫最好用在要求臨時的、可更新的物理Standby資料庫快照場景。

4.     Data Guard保護模式

Oracle提供了3Data Guard保護模式來滿足各種不同安全級別要求的系統,包括:最大保護、最大效能和最高可用性模式。所有的保護模式都要求使用特定的Redo傳送選項傳送Redo資料到至少一個Standby資料庫,下面分別討論三種模式:

a.       最大保護

如果主資料庫失敗,這個保護模式可以確保沒有任何資料丟失。事務在完成提交之前事務恢復需要的Redo資料必須寫到主資料庫的聯機Redo日誌和至少一個同步的Standby資料庫的Standby Redo日誌中,如果主資料庫不能寫Redo資料到至少一個同步的Standby資料庫中,為了確保資料不會丟失,主資料庫將被關閉。

採用最大保護必須符合以下的條件:

1)  主資料庫在LOG_ARCHIVE_DEST_n的引數設定中必須用到LGWR SYNC AFFIRM屬性來歸檔到Standby資料庫。

2)  Standby資料庫必須配置Standby Redo日誌。

3)  至少有一個Standby資料庫是可用的。

採用這種保護模式保護的主資料庫,不能使用shutdown immediate對唯一的Standby資料庫執行關閉操作。

b.       最大效能

這是預設的保護模式,它提供在不影響主庫效能的情況下的最高階別的資料保護。主資料庫的使用者事務一旦被寫入到本地聯機重做日誌中後,就被允許提交,而不需要立刻寫到至少一個同步的Standby資料庫中。主資料庫只要使用ARCHLGWR ASYNC屬性對遠端的Standby資料庫進行歸檔即可。Redo資料也寫到一個或更多個Standby資料庫,但是對於事務提交是非同步完成的,因此通過延遲寫Redo資料到Standby資料庫不會影響主資料庫的效能。這個保護模式提供比最高可用性模式略少的資料保護,但能最低程度的影響主資料庫的效能。

c.       最高可用性

次高的資料保護模式,最小化對主資料庫可用性的影響。採用與最大保護模式同樣的方式,確保Redo日誌被完全的寫入本地資料庫和至少一個Standby資料庫的Standby Redo日誌中時,才會給使用者返回提交完成資訊。如果由於某些原因使得Standby資料庫變為不可用,並且主資料庫不能將Redo日誌寫入到Standby資料庫的Standby Redo日誌中,此時主資料庫不會關閉,主資料庫將暫時保護將保護模式降級為最大效能模式,並且繼續工作。一旦Standby資料庫恢復正常可用,主資料庫的缺失消除方案將會啟動,歸檔Redo日誌的缺失部分將會被填滿。當主資料庫中下一個日誌開啟的時候,主資料庫中的保護模式又會上升為最高可用性模式。

採用最高可用性模式必須符合以下條件:

n  主資料庫在LOG_ARCHIVE_DEST_n初始化引數中必須用到LGWR SYNC AFFIRM屬性歸檔到Standby資料庫。

n  Standby資料庫必須配置Standby Redo日誌。

n  至少有一個Standby資料庫是可用的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29339097/viewspace-1063139/,如需轉載,請註明出處,否則將追究法律責任。

相關文章