DataGuard的三種保護模式


(一)三種保護模式介紹
1.最大性能模式
這種模式保證數據庫主庫性能最大化,主備庫之間數據是異步傳輸的。即,主庫日志歸檔以后才會傳輸到備庫,在備庫上使用歸檔日志文件做恢復操作。
這種模式提供在不影響primary數據庫性能前提下最高級別的數據保護策略。事物可以隨時提交,當前primary數據庫的redo數據也需要至少寫入一個standby數據庫,不過這種寫入是不同步的。

2.最高可用模式
這種模式和“最大保護”模式差不多,正常情況下,主備庫之間是同步的。當網絡或備庫出現故障時,不會影響到主庫的宕機,主庫會自動切換為“ 最大性能”模式,等待備庫可用時,將歸檔傳輸到備庫做恢復。
可以把最高可用模式理解為“最大保護”模式和“最大性能”模式的中間體。
這種模式提供在不影響primary數據庫可用前提下最高級別的數據保護策略。其實現方式與最大保護模式類似,也是要求所有事物在提交前必須保障redo數據至少在一個standby數據庫可用,不過與之不同的是,如果出現故障導致無法同時寫入stangby數據庫redo log,primary數據庫並不會shutdown,而是自動轉為最高性能模式,等standby數據庫恢復正常之后,又自動轉換為最高可用模式。

3.最大保護模式
這種模式主備之間數據是同步的。即主庫提交commit的同時,備庫會做相應的恢復。最大限度保證了數據的完整性,不允許數據的丟失。
如果主備庫之間網絡,或者備庫出現問題會直接影響主庫操作,導致主庫宕機。這種模式能夠確保絕無數據丟失。要實現這一步當然是有代價的,他要求所有的事物在提交前期redo不僅被寫入本地的online redo log,還要同時提交到standby數據庫的standby redo log,並確認redo數據至少在一個standby數據庫可用(如果有多個數據庫),然后才在primary數據庫上提交。如果出現故障導致standby數據庫不可用,那么primary數據庫也會被shutdown。

注意:
最大保護模式和最高可用模式需要至少一個standby數據庫redo數據被同步寫入。

(二)三種保護模式參數配置
最大性能:
LGWR ASYNC NOAFFIRM

最大保護,最高可用:
LGWR SYNC AFFIRM

(三)三種保護模式轉換
如何查看數據庫的主備、保護模式:
主庫:

SQL> select name,open_mode,database_role,protection_mode,protection_level from v$database;

NAME      OPEN_MODE            DATABASE_ROLE    PROTECTION_MODE       PROTECTION_LEVEL
--------- -------------------- ---------------- --------------------  -------------------
ADGDB     READ WRITE           PRIMARY          MAXIMUM PERFORMANCE   MAXIMUM PERFORMANCE

備庫:

SQL> select name,open_mode,database_role,protection_mode,protection_level from v$database;

NAME      OPEN_MODE             DATABASE_ROLE     PROTECTION_MODE       PROTECTION_LEVEL
--------- --------------------  ----------------  --------------------  --------------------
ADGDB     READ ONLY WITH APPLY  PHYSICAL STANDBY  MAXIMUM PERFORMANCE   MAXIMUM PERFORMANCE

 

 1.轉換為最高可用模式,在備庫和主庫上執行:

alter database set standby database to maximize availability;

 

2.轉換為最大性能模式,在備庫和主庫上執行:

alter database set standby database to maximize performance;

 

3.轉換為最大保護模式,在備庫和主庫上執行:

alter database set standby database to maximize protection;

 

 例子:將DataGuard從默認的最大性能模式切換為最高可用模式

(1)備庫
查詢備庫的保護模式:

SQL> select name,db_unique_name,open_mode,database_role,protection_mode,protection_level from v$database;

NAME      DB_UNIQUE_NAME      OPEN_MODE             DATABASE_ROLE     PROTECTION_MODE       PROTECTION_LEVEL
--------- ------------------  --------------------  ----------------  --------------------  --------------------
ADGDB     adgdbstandby        READ ONLY WITH APPLY  PHYSICAL STANDBY  MAXIMUM PERFORMANCE   MAXIMUM PERFORMANCE

修改備庫的保護模式:

SQL> alter database set standby database to maximize availability;

Database altered.

再次查看備庫的Dataguard保護模式:

SQL> select name,db_unique_name,open_mode,database_role,protection_mode,protection_level from v$database;

NAME      DB_UNIQUE_NAME     OPEN_MODE             DATABASE_ROLE     PROTECTION_MODE       PROTECTION_LEVEL
--------- ------------------ --------------------  ----------------  --------------------  --------------------
ADGDB     adgdbstandby       READ ONLY WITH APPLY  PHYSICAL STANDBY  MAXIMUM AVAILABILITY  MAXIMUM AVAILABILITY

 

 (2)主庫

同樣的,查看主庫的保護模式

SQL> select name,db_unique_name,open_mode,database_role,protection_mode,protection_level from v$database;

NAME      DB_UNIQUE_NAME    OPEN_MODE    DATABASE_ROLE    PROTECTION_MODE      PROTECTION_LEVEL
--------- ----------------- ------------ ---------------- -------------------- --------------------
ADGDB     adgdb             READ WRITE   PRIMARY          MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE

修改主庫的保護模式:

SQL> alter database set standby database to maximize availability;

Database altered.

再次確認,DataGuard的保護模式已經變為了maximum availability:

SQL> select name,db_unique_name,open_mode,database_role,protection_mode,protection_level from v$database;

NAME      DB_UNIQUE_NAME    OPEN_MODE    DATABASE_ROLE  PROTECTION_MODE       PROTECTION_LEVEL
--------- ----------------- -----------  -------------  --------------------  --------------------
ADGDB     adgdb             READ WRITE   PRIMARY        MAXIMUM AVAILABILITY  MAXIMUM AVAILABILITY

 

【完】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM