一、环境
linux redhat 5.4
oracle 11.1.0.7.0 single instance
二、问题及描述
由于本机有ADG(Active Data Guard)并配置了FSFO(Fast Start Failover ),FSFO需要有最大保护模式(Maximum Availability)的支持,将ADG去掉并解除主备库关系后,未将主库调整为最大性能(Maximum Performance)模式,导致主数据库无法启动,并报错ORA-03113:end-of-file on communication channel,如下:
三、故障重现
enmoedu1*PROD1 ~ $ sqlplus / as sysdba
SQL*Plus: Release 11.1.0.7.0 - Production on Thu Jul 2 01:21:51 2015
Copyright (c) 1982, 2008, Oracle. All rights reserved.
Connected to an idle instance.
SYS@PROD1 > startup
ORACLE instance started.
Total System Global Area 803500032 bytes
Fixed Size 1316376 bytes
Variable Size 448793064 bytes
Database Buffers 348127232 bytes
Redo Buffers 5263360 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 10727
Session ID: 335 Serial number: 5
SYS@PROD1 >
四、故障处理
1. 将主库启动到MOUNT阶段
enmoedu1*PROD1 / $ sqlplus / as sysdba
SQL*Plus: Release 11.1.0.7.0 - Production on Thu Jul 2 04:46:56 2015
Copyright (c) 1982, 2008, Oracle. All rights reserved.
Connected to an idle instance.
SYS@PROD1 > startup mount;
ORACLE instance started.
Total System Global Area 803500032 bytes
Fixed Size 1316376 bytes
Variable Size 448793064 bytes
Database Buffers 348127232 bytes
Redo Buffers 5263360 bytes
Database mounted.
2. 将主数据库更改为最大性能模式。
SYS@PROD1 > alter database set standby to maximize performance;
Database altered.
3. 打开数据库,正常。
SYS@PROD1 > alter database open;
Database altered.
SYS@PROD1 >
五、总结
该问题是在实验环境中出现的,生产环境往往不会删除ADG环境。估计碰到的机会也会非常少,但DBA们就是要有前瞻性的工作状态。能够提早的将问题暴露出来,最好是在测试环境中出现,并制定好处理方案文档,避免生产环境处理时的措手不及。总而言之,把故障扼杀在摇篮当中就对了。