Data Guard 之 MAXIMIZE PROTECTION

  9i以后,Oracle Data Guard 有三种保护模式:

1MAXIMIZE PERFORMANCE(最大性能模式):该模式下日志文件传送采用arch或者lgwr异步传送,可能丢失数据情况,对主库的性能影响最小。

2MAXIMIZE AVAILABILITY(最大可用模式):正常情况下采用lgwr同步数据传输,异常情况切换到MAXIMIZE PERFORMANCE模式,是一种性能和数据保护折中的方案。

3MAXIMIZE PROTECTION(最大保护模式) :该模式提供最大的数据保护,LGWR同步数据传输,对主库的性能影响最大。

  应该说,这三种模式各有优劣点,选用何种模式作为容灾手段,依照系统情况灵活处理。

  相比MAXIMIZE AVAILABILITYMAXIMIZE PERFORMANCEMAXIMIZE PROTECTION下的DG体系,对主库性能的影响相对易见的,尤其是单物理standby库情况,往往备库端的异常情况会导致主库的不可用。

 下面,来模拟一下主备库运行在 MAXIMIZE PROTECTION模式下的故障情况

 

1.备库down机,模拟故障。

SQL> shutdown immediate;

已经卸载数据库。

ORACLE 例程已经关闭。

 

 

2.主库端查日志传送情况

SQL> select DEST_ID,DEST_NAME,STATUS,ERROR from v$archive_dest;

 

   DEST_ID DEST_NAME                                                                        STATUS    ERROR

———- ——————————————————————————– ——— ——————————————————————————–

         1 LOG_ARCHIVE_DEST_1                                                               VALID    

         2 LOG_ARCHIVE_DEST_2                                                         ERROR     ORA-01034: ORACLE 不可用

         3 LOG_ARCHIVE_DEST_3                                                               INACTIVE

         4 LOG_ARCHIVE_DEST_4                                                               INACTIVE

         5 LOG_ARCHIVE_DEST_5                                                               INACTIVE

         6 LOG_ARCHIVE_DEST_6                                                               INACTIVE

         7 LOG_ARCHIVE_DEST_7                                                               INACTIVE

         8 LOG_ARCHIVE_DEST_8                                                               INACTIVE

         9 LOG_ARCHIVE_DEST_9                                                               INACTIVE

        10 LOG_ARCHIVE_DEST_10                                                              INACTIVE

 

 

接下来在主库上执行事务:

SQL> create table wocainiao as select * from dba_data_files;

 

  此时发现数据库挂起,过段时间,会收到如下错误。

create table wocainiao as select * from dba_data_files

1 行出现错误:

ORA-00603: ORACLE 服务器会话因致命错误而终止

 

 

  从alert.log日志中,我们也可以获得以下信息:

 

LGWR: Network asynch I/O wait error 1092 log 2 service ‘test_standby’

Mon Feb 25 14:39:51 2008

Destination LOG_ARCHIVE_DEST_2 is UNSYNCHRONIZED

LGWR: All standby destinations have failed

******************************************************

WARNING: All standby database destinations have failed

WARNING: Instance shutdown required to protect primary

******************************************************

LGWR: terminating instance due to error 16098

Mon Feb 25 14:39:51 2008

Errors in file d:\oracle\product\10.2.0\admin\test\udump\test_ora_3816.trc:

ORA-16098: 为了保护主数据库, 已强行关闭不可访问的备用数据库

 

  由于主库端LGWR不能传送数据到备库,主库此时强行宕机。可以看出,运行在最大保护模式的data guard体系能带来一个隐患,毕竟得有所失。对此,我们可以配置多个standby端来避免或者降低因单个standby问题(网络,osetc)而造成的对主库的影响。

bookmark

相关文章 随机文章