在将DataGuard调整为最大保护模式(MAXIMUMPROTECTION)的时候,遇到了以下的问题ORA-03113:end-of-fileoncommunicationchannel。执行过程如下:SQLalterda..
在将Data Guard调整为最大保护模式(MAXIMUM PROTECTION )的时候,遇到了以下的问题ORA-03113: end-of-file on communication channel。
执行过程如下:
SQL> alter database set standby database to maximize PROTECTION; alter database set standby database to maximize PROTECTION * ERROR at line 1: ORA-01126: database must be mounted in this instance and not open in any instance SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount ORACLE instance started. Total System Global Area 390070272 bytes Fixed Size 2021024 bytes Variable Size 142608736 bytes Database Buffers 243269632 bytes Redo Buffers 2170880 bytes Database mounted. SQL> alter database set standby database to maximize PROTECTION; Database altered. SQL> select PROTECTION_MODE,OPEN_MODE,DB_UNIQUE_NAME,DATABASE_ROLE,SWITCHOVER_STATUS from v$database; PROTECTION_MODE OPEN_MODE DB_UNIQUE_NAME DATABASE_ROLE SWITCHOVER_STATUS -------------------- ---------- ------------------------------ ---------------- -------------------- MAXIMUM PROTECTION MOUNTED WENDING PRIMARY TO STANDBY SQL> alter database open; alter database open * ERROR at line 1: ORA-03113: end-of-file on communication channel
分析日志:
[oracle@dg1 bdump]$ tail -10f alert_WENDING.log LGWR: Destination LOG_ARCHIVE_DEST_1 is not serviced by LGWR LGWR: Minimum of 1 synchronous standby database required Sat Jan 4 23:05:16 2014 Errors in file /u01/oracle/admin/ORCLDB/bdump/wending_lgwr_10086.trc: ORA-16072: a minimum of one standby database destination is required Sat Jan 4 23:05:16 2014 Errors in file /u01/oracle/admin/ORCLDB/bdump/wending_lgwr_10086.trc: ORA-16072: a minimum of one standby database destination is required LGWR: terminating instance due to error 16072 Instance terminated by LGWR, pid = 10086
其实,,第一步处理过程,应该查询一下log_archive_dest参数,检查一下同步的方式以及AFFIRM 是否设定,其次就是standy log日志是否添加,这一切建立完成以后再进行日志检查。
可能在第一步检查完成之后就已经可以解决问题。
对了,还有一个要开启FLASHBACK_ON ;
分别将FLASHBACK_ON开启。 SQL> select FLASHBACK_ON from v$database; FLASHBACK_ON ------------------ NO SQL> alter database flashback on; Database altered.添加standy redolog
[oracle@dg2 ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jan 5 01:00:35 2014 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production With the Partitioning, OLAP and Data Mining options SQL> alter database add standby logfile group 4 ('/u01/oracle/oradata/ORCLDB/stdby_redo04.log') size 50M; Database altered. SQL> alter database add standby logfile group 5 ('/u01/oracle/oradata/ORCLDB/stdby_redo05.log') size 50M; Database altered. SQL> alter database add standby logfile group 6 ('/u01/oracle/oradata/ORCLDB/stdby_redo06.log') size 50M; Database altered.
[oracle@dg1 bdump]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jan 5 01:10:32 2014 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production With the Partitioning, OLAP and Data Mining options SQL> alter database set standby database to maximize PROTECTION; alter database set standby database to maximize PROTECTION * ERROR at line 1: ORA-01126: database must be mounted in this instance and not open in any instance SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount ORACLE instance started. Total System Global Area 390070272 bytes Fixed Size 2021024 bytes Variable Size 142608736 bytes Database Buffers 243269632 bytes Redo Buffers 2170880 bytes Database mounted. SQL> alter database set standby database to maximize PROTECTION; Database altered. SQL> select PROTECTION_MODE,OPEN_MODE,DB_UNIQUE_NAME,DATABASE_ROLE,SWITCHOVER_STATUS from v$database; PROTECTION_MODE OPEN_MODE DB_UNIQUE_NAME DATABASE_ROLE SWITCHOVER_STATUS -------------------- ---------- ------------------------------ ---------------- -------------------- MAXIMUM PROTECTION MOUNTED WENDING PRIMARY TO STANDBY
设置参数,打开数据库。
SQL> alter system set log_archive_dest_2 = 'SERVICE=db_phystdby LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PHYSTDBY AFFIRM '; System altered. SQL> alter database open; Database altered.