Data Guard模式切換

Data Guard模式切換

 

概念
a、最大性能(maximize performance):
    這是Data Guard默認的保護模式。primay上的事務commit前不需要從standby上收到反饋信息,該模式在primary故障時可能丟失數據,但standby對primary的性能影響最小。
b、最大可用(maximize availability):
    在正常情況下,最大可用模式和最大保護模式一樣;在standby不可用時,最大可用模式會自動降低成最大性能模式,所以standby故障不會導致primay不可用。只要至少有一個standby可用的情況下

,即使primary down機,也能保證不丟失數據。
c、最大保護(maximize protection):
    最高級別的保護模式。primay上的事務在commit前必須確認redo已經傳遞到至少一個standby上,如果所有standby不可用,則primary會掛起。該模式能保證零數據丟失, 一般爲保證主庫在某個從庫

故障後仍能正常運行,最好配置兩個及以上的從庫。

摘自官方文檔的描述:
Maximum Performance Mode
This protection mode (the default) provides the highest level of data protection that is possible without affecting the performance of the primary database. This is accomplished

by allowing a transaction to commit as soon as the redo data needed to recover that transaction is written to the local online redo log. The primary database's redo data stream

is also written to at least one standby database, but that redo stream is written asynchronously with respect to the commitment of the transactions that create the redo data.

When network links with sufficient bandwidth are used, this mode provides a level of data protection that approaches that of maximum availability mode with minimal impact on

primary database performance.

The maximum performance mode enables you to either set the LGWR and ASYNC attributes, or set the ARCH attribute on the LOG_ARCHIVE_DEST_n parameter for the standby database

destination. If the primary database fails, you can reduce the amount of data that is not received on the standby destination by setting the LGWR and ASYNC attributes.

Maximum Availability Mode
This protection mode provides the highest level of data protection that is possible without compromising the availability of the primary database. Like maximum protection mode,

a transaction will not commit until the redo needed to recover that transaction is written to the local online redo log and to at least one remote standby redo log. Unlike

maximum protection mode, the primary database does not shut down if a fault prevents it from writing its redo stream to a remote standby redo log. Instead, the primary database

operates in maximum performance mode until the fault is corrected and all gaps in redo log files are resolved. When all gaps are resolved, the primary database automatically

resumes operating in maximum availability mode.

This mode ensures that no data loss will occur if the primary database fails, but only if a second fault does not prevent a complete set of redo data from being sent from the

primary database to at least one standby database.

Like maximum protection mode, the maximum availability mode requires that you:

    Configure standby redo log files on at least one standby database.

    Set the SYNC, LGWR, and AFFIRM attributes of the LOG_ARCHIVE_DEST_n parameter for at least 1 standby database.

Maximum Protection Mode
This protection mode ensures that no data loss will occur if the primary database fails. To provide this level of protection, the redo data needed to recover each transaction

must be written to both the local online redo log and to the standby redo log on at least one standby database before the transaction commits. To ensure data loss cannot occur,

the primary database shuts down if a fault prevents it from writing its redo stream to at least one remote standby redo log. For multiple-instance RAC databases, Data Guard

shuts down the primary database if it is unable to write the redo records to at least one properly configured database instance. The maximum protection mode requires that at

least one standby instance has a standby redo log and the LGWR, SYNC, and AFFIRM attributes be used on the LOG_ARCHIVE_DEST_n parameter for this destination.

選項
    maximum protection maximum availability  maximum performance
redo archival process  LGWR   LGWR   LGWR or ARCH
network transmission mode SYNC   SYNC   SYNC or ASYNC when using LGWR process.SYNC if using ARCH process
disk write option  AFFIRM   AFFIRM   AFFIRM or NOAFFIRM
standby redo log required? yes   yes   no,but it is recommended


舉例:
將Data Guard有最大性能模式切換到最高可用的應用舉例
備庫:
--取消日誌應用
alter database recover managed standby database cancel;

主庫:
--查看log_archive_dest_2參數
show parameter log_archive_dest_2;
--修改log_archive_dest_2參數
alter system set log_archive_dest_2='SERVICE=stadb LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=stadb';

--重啓數據庫
shutdown immediate;
startup mount;

--將主庫修改爲最高可用模式
--alter database set standby database to maximize performance;
alter database set standby database to maximize availability;
--alter database set standby database to maximize protection;

--打開數據庫
alter database open;

--查看數據庫模式
select open_mode,database_role,switchover_status,protection_mode,protection_level from v$database;

備庫:
--應用日誌
alter database recover managed standby database disconnect from session;

--修改備庫的log_archive_dest_2是爲了主備切換
--查看log_archive_dest_2參數
show parameter log_archive_dest_2;
--修改log_archive_dest_2參數
alter system set log_archive_dest_2='SERVICE=pridb LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=pridb';

--查看數據庫模式
select open_mode,database_role,switchover_status,protection_mode,protection_level from v$database;


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章