11g dataguard 型別、保護模式、服務

張衝andy發表於2017-03-10
一.   Dataguard中的備庫分為物理備庫和邏輯備庫及快照備庫

備庫是主庫的一致性複製,使用一個主庫的備份可以建立多到30個備庫,將其加入到dataguard環境中,建立成功後,dataguard透過自動應用從主庫傳送到備庫的redo資料維護每個備庫。

1.1   物理備庫(Physical standby database)
物理備庫提供物理上和主資料庫相同的複製,磁碟資料庫結構和主庫是相同的,物理備庫是塊到塊的複製,一個物理備庫透過應用從主庫收到的redo資料保持和主庫的同步,稱為日誌應用(redo apply),11g的dataguard在應用日誌的時候是可以開啟的,10g是不允許的。11g的這種特性稱為active data guard。

1.2   邏輯備庫 (Logical standby database)
邏輯備庫包含和主庫相同的邏輯資訊,物理結構和資料結構可以是不同的,邏輯備庫把從主庫收到的redo轉換為sql語句,然後在備庫上執行sql語句,稱為sql應用(sql apply)。邏輯備庫除了能應用於災難恢復,還允許使用者查詢邏輯備庫和透過邏輯備庫生成報表,用於其他目的,使用邏輯備庫能升級database軟體,在無停機的情況下打補丁等操作。

1.3   快照備庫 (Snapshot Standby Database)
快照備庫是11g中出現的,類似物理備庫和邏輯備庫一樣,快照備庫從主庫接收redo資料,和物理或邏輯備庫不同的是,快照備庫只接收而不應用接收到的redo資料。直至快照備庫轉換為物理備庫,之後先扔掉任何對快照備庫的更新,然後應用接收到的redo資料。快照資料庫最好用在要求臨時的,可更新的物理備庫快照場景。

二.    Data Guard 允許定義3鍾資料保護模式,分別是最大保護(Maximum Protection),最大可用(Maximum Availability)和 最大效能(Maximum Performance)。

1. 最大保護(Maximum Protection)
這種模式能夠確保絕無資料丟失。要實現這一步當然是有代價的,它要求所有的事務在提交前其REDO不僅被寫入到本地的Online Redologs,還要同時寫入到Standby資料庫的Standby Redologs,並確認REDO資料至少在一個Standby資料庫中可用(如果有多個的話),然後才會在Primary資料庫上提交。如果出現了什麼故障導致Standby資料庫不可用的話(比如網路中斷),Primary資料庫會被Shutdown,以防止資料丟失。
使用這種方式要求Standby Database 必須配置Standby Redo Log,而Primary Database必須使用LGWR,SYNC,AFFIRM 方式歸檔到Standby Database.

2. 最高可用性(Maximum availability)
這種模式在不影響Primary資料庫可用前提下,提供最高階別的資料保護策略。其實現方式與最大保護模式類似,也是要求本地事務在提交前必須至少寫入一臺Standby資料庫的Standby Redologs中,不過與最大保護模式不同的是,如果出現故障導致Standby資料庫無法訪問,Primary資料庫並不會被Shutdown,而是自動轉為最高效能模式,等Standby資料庫恢復正常之後,Primary資料庫又會自動轉換成最高可用性模式。
這種方式雖然會盡量避免資料丟失,但不能絕對保證資料完全一致。這種方式要求Standby Database 必須配置Standby Redo Log,而Primary Database必須使用LGWR,SYNC,AFFIRM 方式歸檔到Standby Database.

3. 最高效能(Maximum performance)
預設模式。 這種模式在不影響Primary資料庫效能前提下,提供最高階別的資料保護策略。事務可以隨時提交,當前Primary資料庫的REDO資料至少需要寫入一個Standby資料庫,不過這種寫入可以是不同步的。如果網路條件理想的話,這種模式能夠提供類似最高可用性的資料保護,而僅對Primary資料庫的效能有輕微影響。這也是建立Standby資料庫時,系統的預設保護模式。
這種方式可以使用LGWR ASYNC 或者 ARCH 程式實現,Standby Database也不要求使用Standby Redo Log。

三.      dataguard的服務型別 (Data GuardServices) 有三種,分別是 日誌傳輸服務(Redo Transport Services)、
日誌應用服務(Apply Services)、角色轉換     (Role Transitions) 。

3.1   日誌傳輸服務(Redo Transport Services)

Redo transport services 執行如下工作:
(1)根據引數中的配置,把主庫的redo data 傳送到備庫。
(2)管理gap的程式。
(3)自動檢測備庫上缺失或者損壞的歸檔檔案,如果檢測到就把這些歸檔日誌重新傳送一次。

3.2   日誌應用服務(Apply Services)

1 物理standby 使用Redo apply
物理standby 使用的Redo apply技術。 Redo apply使用的是資料庫標準的恢復技術。基於block的恢復。

2 邏輯standby 使用SQL apply
邏輯standby 使用的是SQL Apply技術,它會先把redo data轉換成SQL 語句,然後在備庫執行SQL 語句來實現同步。  

3.3   角色轉換     (Role Transitions)

資料庫的角色操作有2種:主庫和備庫。 可以使用swithover 或者failover 進行切換。

3.3.1 SWITCHOVER
switchover將一個physical standby database 轉換成為primary database,這個過程可以保證無資料丟失,在完成後其它的standby資料庫和原來的primary庫還可以成為這個dataguard的standby role的一部分.

3.3.2 FAILOVER
Failover當主庫crash無法正常啟動時,將一個standby庫failover成primary role庫,如果在primary庫在出故障之前不是處於protection的話,將會有一些資料丟失。

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

相關文章