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)

给出的解释是,如果备库的db_file_recovery_dest参数没有设置那么包含“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日志,日志恢复正常!