天天看點

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

一. 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的話,将會有一些資料丢失。

文章可以轉載,必須以連結形式标明出處。

本文轉自 張沖andy 部落格園部落格,原文連結:http://www.cnblogs.com/andy6/p/6530925.html   ,如需轉載請自行聯系原作者