DG的数据保护模式
数据保护膜有三种:
– Maximum protection
– Maximum availability
– Maximum performance
Maximum protection
零数据丢失,在事务提交时,">redo data写local online redo log和">standby redo log,然后返回提交完成。primary shutdown时,启用故障保护,写">redo stream到至少一个同步的standby.对主库性能影响最大。
必要条件:
- 至少一个standby端必须有">standby redo log
- LOG_ARCHIVE_DEST_n参数至少对一个standby必须设置">SYNC和AFFIEM属性
注:">oracle建议最大保护模式下配置2个以上的">standby.
">Maximum performance
数据保护的默认级别,">standby应用主库传输过来的archivelog,对">primary的影响最小。
Maximum availability
primary和standby连接正常时,类似于">Maximum protection模式,主库与备库连接异常时,自动切换至Maximum performance模式。通常采用这种模式。
DG三种模式比较
模式 | 数据丢失风险 | 传输方式 | 没有应答时 |
Maximum protection | 零数据丢失, 双失败保护 | SYNC | primary挂起,直到收到应答 |
Maximum availability | 零数据丢失, 单一失败保护 | SYNC FAST SYNC FAR SYNC | primary挂起,直到达到设定的阀值,然后重启进程,standby失败不影响production的可用性。 |
Maximum performance | 可能丢失数据 | ASYNC | primary从不等待standby的应答 |
设定数据保护模式
ORACLE10g:
1.设定主备库LOG_ARCHIVE_CONFIG参数
例:
SQL> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(stephen,standby)';
2.在primary端配置">LOG_ARCHIVE_DEST_n参数
参数属性配置参考">ORACLE官方联机文档:
Minimum Requirements for Data Protection Modes
| Maximum | Maximum | Maximum |
Redo archival process | LGWR | LGWR | LGWR/ARCH |
Network transmission mode | SYNC | SYNC | LGWR:SYNC/ASYNC;ARCH:SYNC |
Disk write option | AFFIRM | AFFIRM | AFFIRM/NOAFFIRM |
Standby redo log required? | Yes | Yes | No, but it is recommended |
3.升级数据保护模式
升级数据保护需要启动">primary到mount状态,如果是降级数据保护模式,在">OPEN状态即可。
执行以下命令更改数据保护模式:
SQL> alter database set standby database to maximize {availability| protection| performance};
4.打开主库
5.配置standby端">LOG_ARCHIVE_DEST_n参数
6.确认配置完成
SQL> select protection_mode, protection_level from v$database;
PROTECTION_MODE PROTECTION_LEVEL
--------------------- ---------------------
MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY
ORACLE11g:
1.选择一种数据保护模式
Required Redo Transport Attributes for Data Protection Modes
Maximum Availability | Maximum Performance | Maximum Protection |
AFFIRM | NOAFFIRM | AFFIRM |
SYNC | ASYNC | SYNC |
DB_UNIQUE_NAME | DB_UNIQUE_NAME | DB_UNIQUE_NAME |
2.确认DB_UNIQUE_NAME参数
3.确认LOG_ARCHIVE_CONFIG参数
4.设置数据保护模式
SQL> alter database set standby database to maximize {availability| protection| performance};
5.确认
SQL> SELECT PROTECTION_MODE FROM V$DATABASE;