[toc]

适用范围

ORACLE ADG 备库搭建过程,log_file_name_convert 参数配置如下,导致无法创建redo log file 。
*.log_file_name_convert='+DATA/dbrac/','/u01/app/oracle/oradata/orcldg'

问题概述

ORACLE ADG 备库搭建过程,log_file_name_convert 参数配置如下,导致无法创建redo log file 。
*.log_file_name_convert='+DATA/dbrac/','/u01/app/oracle/oradata/orcldg'
具体报错如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
RMAN-05535: warning: All redo log files were not defined properly.
ORACLE error from auxiliary database: ORA-00344: unable to re-create online log '/u01/app/oracle/oradata/orcldgonlinelog/group_17.294.1138111825'
ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 1

RMAN-05535: warning: All redo log files were not defined properly.
ORACLE error from auxiliary database: ORA-00344: unable to re-create online log '/u01/app/oracle/oradata/orcldgonlinelog/group_18.295.1138111827'
ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 1

RMAN-05535: warning: All redo log files were not defined properly.
Finished Duplicate Db at 30-MAY-23

RMAN>

可以看到在报无法创建 /u01/app/oracle/oradata/orcldgonlinelog/group_18.295.1138111827,检查 /u01/app/oracle/oradata/orcldgonlinelog/ 目录是不存在的,同时上面的信息也有提示:Linux-x86_64 Error: 2: No such file or directory

问题原因

由于参数配置确实一个 / 导致:
*.log_file_name_convert='+DATA/dbrac/','/u01/app/oracle/oradata/orcldg'
可以看到参数的前半部分的路径是带/的,但是后半部分的'/u01/app/oracle/oradata/orcldg' 没有带 / ,打个比方就相当于文本操作里的查找替换,由于少了一个 / 就导致后面的 onlinelog 文件夹跟前面的 orcldg没有了/ 的分割,变成了 orcldgonlinelog,很显然这个目录是不存在的。
那么问题来了,同样的db_file_name_convert参数 配置如下:

1
*.db_file_name_convert='+DATA/dbrac/','/u01/app/oracle/oradata/orcldg' 

db_file_name_convert 同样也是没有最后面的/,为什么 数据文件目录不报错呢,原因是什么呢?
原因是配置了 db_create_file_dest 参数。

1
*.db_create_file_dest='/u01/app/oracle/oradata/'  

在同样配置了 db_create_file_destdb_file_name_convert 参数的情况下,优先使用 db_create_file_dest参数,也就是本次的db_file_name_convert参数是不起作用的。

解决方案

修改log_file_name_convert参数,并创建相关的文件夹: *.log_file_name_convert='+DATA/dbrac/','/u01/app/oracle/oradata/orcldg/'
如果 +DATA/dbrac/ 目录下面还有其他文件夹的话,需要在/u01/app/oracle/oradata/orcldg/ 目录下也创建相同的文件夹,比如onlinelog 等。

参考文档

原文作者: liups.com

原文链接: http://liups.com/posts/877daa1a/

许可协议: 知识共享署名-非商业性使用 4.0 国际许可协议