在物理备库取消日志应用时,出现ORA-16136的错误
SQL> alter database recover managed standby database cancel;
alter database recover managed standby database cancel
*
ERROR at line 1:
ORA-16136: Managed Standby Recovery not active
由错误提示看来,就是备库本没有启用应用日志的功能的,所以发出取消命令的话就出现了ORA-16136错误了。现在的问题是,备库的应用日志功能一直
都是启用的,现在怎么变成了没有启用了呢?
检查备库告警日志文件内容
[oracle@lonion bdump]$ cat alert_standby.log
Tue Sep 18 15:01:16 2012
RFS[1]: Successfully opened standby log 4: '/u01/app/oracle/oradata/standby/standbyredo01.log'
Tue Sep 18 15:01:20 2012
Media Recovery Log /u01/app/oracle/archivelog/1_38_760823283.arc
File #6 added to control file as 'UNNAMED00006' because
the parameter STANDBY_FILE_MANAGEMENT is set to MANUAL
The file should be manually created to continue.
MRP0: Background Media Recovery terminated with error 1274
Tue Sep 18 15:01:23 2012
Errors in file /u01/app/oracle/admin/standby/bdump/standby_mrp0_5715.trc:
ORA-01274: cannot add datafile '/u01/app/oracle/oradata/lonion/test01.dbf' - file could not be created
Some recovered datafiles maybe left media fuzzy
Media recovery may continue but open resetlogs may fail
Tue Sep 18 15:01:23 2012
Errors in file /u01/app/oracle/admin/standby/bdump/standby_mrp0_5715.trc:
ORA-01274: cannot add datafile '/u01/app/oracle/oradata/lonion/test01.dbf' - file could not be created
Tue Sep 18 15:01:23 2012
MRP0: Background Media Recovery process shutdown (standby)
Tue Sep 18 15:02:29 2012
alter database recover managed standby database cancel
Tue Sep 18 15:02:29 2012
ORA-16136 signalled during: alter database recover managed standby database cancel...
由上述日志内容发现,主库新创建了表空间或添加了新的数据文件,在备库应用日志的时候,由于初始化参数standby_file_management设置为了manual
使得应用日志失败,中断MRP0进程(MRP0: Background Media Recovery terminated with error 1274)。
知道了问题出现的原因,解决问题就比较简单了。
首先,在主库中查询数据文件路径
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/lonion/system01.dbf
/u01/app/oracle/oradata/lonion/undotbs01.dbf
/u01/app/oracle/oradata/lonion/sysaux01.dbf
/u01/app/oracle/oradata/lonion/users01.dbf
/u01/app/oracle/oradata/lonion/lonion01.dbf
/u01/app/oracle/oradata/lonion/test01.dbf
6 rows selected.
在备库中查询数据文件路径
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/standby/system01.dbf
/u01/app/oracle/oradata/standby/undotbs01.dbf
/u01/app/oracle/oradata/standby/sysaux01.dbf
/u01/app/oracle/oradata/standby/users01.dbf
/u01/app/oracle/oradata/standby/lonion01.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/UNNAMED00006
6 rows selected.
重新设置备库不能识别的数据文件的路径
在备库中执行
SQL> alter database create datafile '/u01/app/oracle/product/10.2.0/db_1/dbs/UNNAMED00006' as
'/u01/app/oracle/oradata/standby/test01.dbf
Database altered.
再次在备库中查询数据文件路径
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/standby/system01.dbf
/u01/app/oracle/oradata/standby/undotbs01.dbf
/u01/app/oracle/oradata/standby/sysaux01.dbf
/u01/app/oracle/oradata/standby/users01.dbf
/u01/app/oracle/oradata/standby/lonion01.dbf
/u01/app/oracle/oradata/standby/test01.dbf
6 rows selected.
此时,备库数据文件路径正确更正过来,重新应用日志
SQL> alter database recover managed standby database disconnect from session;
Database altered.
尝试取消应用日志,没有再出现ORA-16136错误了
SQL> alter database recover managed standby database cancel;
Database altered.
BTW:一般说来,在设置初始参数standby_file_management的时候,我们都是将其设置为auto。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24389441/viewspace-1059458/ ,如需转载,请注明出处,否则将追究法律责任。