ORACLE10G DG中資料保護模式

dayong2015發表於2014-06-03

Data Guard的保護模式(Data Guard Protection Modes)
最大保護(Maximum protection )

這種模式能夠保證在primary Database發生故障保證資料不丟失。在這種模式下,事務提交前,要保證Redo資料已經寫入到Primary Database的Online Redologs,同時寫入Standby Database的Standby Redologs,並確保至少在一個Standby Database中可用。如果Standby Database不可用,Primary Database將會shutdown。

最高可用性(Maximum availability)

這種模式在不影響Primary Database可用的前提下,提供最高階別的資料保護策略,這種模式也能夠確保資料不丟失。事務提交之前,要保證Redo資料已經寫入到Primary Database的Online Redologs,同時寫入Standby Database的Standby Redologs,確保至少在一個Standby Database中可用。與最大保護模式不同的是,如果Standby Database出現故障導致不可用,Primary Database並不會被shutdown,而是自動轉換為最高效能模式,等Standby Database恢復正常後,Primary Database又會自動切換到最高可用性模式。

最大效能(Maximum performance)

這是一種預設的保護模式。事務可以隨時提交,當前Primary Database的Redo資料至少需要寫入一個Standby Database,不過這種方式不會等待Standby Database是否寫入的確認因此這種寫入屬於非同步寫入。

當網路有很大頻寬可用時,常採用這種保護模式。

批註:最大保護和最高可用性至少需要一個Standby Database的Redo資料被同步寫入。以上三種保護都要指定LOG_ARCHIVE_DEST_n初始化引數。

 1.DG配置中設定資料保護模式

   最大保護(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 
檢視當前資料庫的保護模式,如下:
SQL> select DATABASE_ROLE,PROTECTION_MODE,PROTECTION_LEVEL from v$database;

DATABASE_ROLE    PROTECTION_MODE      PROTECTION_LEVEL
---------------- -------------------- --------------------
PRIMARY          MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE

修改資料庫的保護模式為 MAXIMIZE AVAILABILITY,如下:
SQL> startup mount             --備庫啟動至mount狀態
ORACLE instance started.

Total System Global Area  281018368 bytes
Fixed Size                  2020160 bytes
Variable Size              88083648 bytes
Database Buffers          184549376 bytes
Redo Buffers                6365184 bytes
Database mounted.
SQL> show parameter LOG_ARCHIVE_DEST_2;   --備庫引數查詢

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_2            string      SERVICE=orcl LGWR ASYNC VALID_  FOR=(ONLINE_LOGFILES ,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=myorcl OPTIONAL LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)  DB_UNIQUE_NAME=myorcl';    --備庫引數設定

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(myorcl,orcl)';

System altered.

SQL> SHUTDOWN IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP MOUNT;
ORACLE instance started.

Total System Global Area  281018368 bytes
Fixed Size                  2020160 bytes
Variable Size             109055168 bytes
Database Buffers          163577856 bytes
Redo Buffers                6365184 bytes
Database mounted.
SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;     --修改資料保護模式

Database altered.

SQL> ALTER DATABASE OPEN;

Database altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=orcl OPTIONAL LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)  DB_UNIQUE_NAME=orcl';         --備庫設定

System altered.

SQL> SELECT PROTECTION_MODE, PROTECTION_LEVEL FROM V$DATABASE;

PROTECTION_MODE      PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM AVAILABILITY    RESYNCHRONIZATION                                                                    

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

相關文章