故障出现描述:
前几天搭建了一套 二节点单实例 的 linux+oracle11.2.0.3+dataguard maximize availability 的环境。
今天在主节点上把dataguard环境铲掉,操作步骤是:
1.创建pfile文件 sql>create pfile=‘/opt/oracle/initorcl.ora‘ from spfile;
2.编辑initorcl.ora文件,将与dataguard相关的配置删除
3.从新的pfile文件initorcl.ora启动数据库SQL> startup pfile=‘/opt/oracle/initorcl.ora‘
这时候报错ora-03113:
SQL> startup pfile=‘/opt/oracle/initorcl.ora‘
ORACLE instance started.
Total System Global Area 1970864128 bytes
Fixed Size 2229664 bytes
Variable Size 1442843232 bytes
Database Buffers 520093696 bytes
Redo Buffers 5697536 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 7682
Session ID: 125 Serial number: 5
查看trace日志 有ora-16072错误
*** 2014-09-28 14:13:32.621
*** SESSION ID:(130.1) 2014-09-28 14:13:32.621
*** CLIENT ID:() 2014-09-28 14:13:32.621
*** SERVICE NAME:() 2014-09-28 14:13:32.621
*** MODULE NAME:() 2014-09-28 14:13:32.621
*** ACTION NAME:() 2014-09-28 14:13:32.621
Destination LOG_ARCHIVE_DEST_1 is not serviced by LGWR
Standby database verification failed:16072
error 16072 detected in background process
ORA-16072: ???????????????
kjzduptcctx: Notifying DIAG for crash event
解决办法是:
- statup正常启动数据库
- 更改数据库保护模式成“最大性能” SQL> alter database set standby to maximize; performance;
- 从新的pfile启动数据库SQL> startup pfile=‘/opt/oracle/initorcl.ora‘
- 创建spfile文件SQL> create spfile from pfile=‘/opt/oracle/initorcl.ora‘;
故障原因:猜测应该是数据库在“最大可用”maximize availability 模式下,却找不到相关的“保护配置参数”