Oracle 10g DG中資料保護模式
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初始化參數。
在CentOS 6.4下安裝Oracle 11gR2(x64)
Oracle 11gR2 在VMWare虛擬機器中安裝步驟
Debian 下 安裝 Oracle 11g XE R2
基於同一主機配置 Oracle 11g Data Guard
探索Oracle之11g DataGuard
Oracle Data Guard (RAC+DG) 歸檔刪除策略及指令碼
Oracle Data Guard 的角色轉換
Oracle Data Guard的日誌FAL gap問題
Oracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 處理方法
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