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
Protection

Maximum
Availability

Maximum
Performance

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;

05-11 21:51