1. 项目环境信息:
平台:AIX 6.1
oracle版本 :11.2.0.3(psu5)
部署了DG(主库是一个位于集群某节点的单实例库,备库为单实例库)
2. 项目背景:
因为业务量增长,要把主库有单实例改为集群,但是要保证变更过程中原有DG不能失效。单机转rac的具体步骤此处我就不再详述了,有时间会详细的写一下步骤。
在完成单机转rac后,我在备库启动恢复管理alter database recover managed standby database using current logfile disconnect;
命令执行后在alert日志里发现如下报错
Thu Apr 03 10:08:57 2014 alter database recover managed standby database using current logfile disconnect Attempt to start background Managed Standby Recovery process (egap) Thu Apr 03 10:08:57 2014 MRP0 started with pid=42, OS id=13041794 MRP0: Background Managed Standby Recovery process started (egap) started logmerger process Thu Apr 03 10:09:02 2014 Managed Standby Recovery starting Real Time Apply Parallel Media Recovery started with 48 slaves Waiting for all non-current ORLs to be archived... All non-current ORLs have been archived. Media Recovery Log /archlog/egap/egap_1_83_843232130.arch No OMF destination specified, unable to create logs MRP0: Background Media Recovery terminated with error 1264 Errors in file /apps/oracle/diag/rdbms/egap/egap/trace/egap_pr00_18153918.trc: ORA-01264: Unable to create logfile file name Managed Standby Recovery not using Real Time Apply Completed: alter database recover managed standby database using current logfile disconnect Recovery interrupted! Recovered data files to a consistent state at change 614451 MRP0: Background Media Recovery process shutdown (egap)
报备库不能创建日志(主库为第二个实例所创建的日志),随即查看备库中standby_file_management和parameter log_file_name_convert 参数
SQL> show parameter standby_file_management standby_file_management string auto SQL> show parameter log_file_name_convert; log_file_name_convert string /data01/egapdb, /data01/egap
--上面两个参数配置都是正常的!该检查的地方都检查的,有人说这个跟omf有关,但是我的库根本没有启用omf,检查如下:
SQL> show parameter db_create_file_dest db_create_file_dest string
3.问题原因
检查参数等都没有问题以后,只能求助mos了,人品还不错很快就找到了相关的文章
OpenVMS: Error Creating Redo Logs In Standby Database ORA-01264: Unable to create logfile file name (Doc ID 1376892.1)
给出的解释是,"On the Standby database, the db initialization parameter db_file_recovery_dest was blank. The Redo stream containing the enable thread could not be applied on the Physical Standby database."
如果备库的db_file_recovery_dest参数没有设置那么包含“enable thread”的日志流不能在备库被应用,所以我们在主库建日志的语句(添加新的实例需要执行enable thread命令)在备库应用时报错。
--注意mos这篇文章中把db_recovery_file_dest参数写成了db_file_recovery_dest
4.解决方案(备库)
alter system set db_recovery_file_dest_size=4977m;
alter system set db_recovery_file_dest='/apps/oracle/fast_recovery_area';
alter database recover managed standby database using current logfile disconnect;
--查看备库alert日志,日志恢复正常!
本文出自 “技术” 博客,请务必保留此出处http://589985.blog.51cto.com/1609992/1389890