温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

oracle 19c dg搭建duplicate过程中报错

发布时间:2020-08-09 16:35:40 来源:ITPUB博客 阅读:329 作者:贺子_DBA时代 栏目:关系型数据库
oracle 19c搭建过程过程中,执行duplicate报错,具体如下:
RMAN>duplicate target database for standby from active database nofilenamecheck;
input datafile file number=00001 name=/data/u01/app/oracle/oradata/BHDB/system01.dbf
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 06/26/2020 16:12:35
ORA-17628: Oracle error 19505 returned by remote Oracle server
ORA-19505: failed to identify file ""
channel ORA_DISK_1 disabled, job failed on it will be run on another channel
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 06/26/2020 16:12:35
RMAN-05501: aborting duplication of target database
RMAN-03015: error occurred in stored script Memory Script
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 06/26/2020 16:12:35
ORA-17628: Oracle error 19505 returned by remote Oracle server
ORA-19505: failed to identify file ""
问题原因:
一般遇到这个问题,都是参数db_file_name_convert和log_file_name_convert设置的转换路径的问题,可以检查下从库的相关目录是否存在以及是否有权限!
环境介绍:
主库的数据文件为如下所示,主要涉及到三个目录:
/data/u01/app/oracle/oradata/BHDB/system01.dbf
/data/u01/app/oracle/oradata/BHDB/pdbseed/system01.dbf
/data/u01/app/oracle/oradata/BHDB/bhdb_pdb/sysaux01.dbf
于是想在从库设置文件转换参数如下:(寻思想把涉及到的三个目录都转换成对应的dg库目录)
db_file_name_convert ='/data/u01/app/oracle/oradata/BHDB/pdbseed/', '/data/u01/app/oracle/oradata/BHDG/pdbseed/', '/data/u01/app/oracle/oradata/BHDB/bhdb_pdb/', '/data/u01/app/oracle/oradata/BHDB/bhdg_pdb/','/data/u01/app/oracle/oradata/BHDB/','/data/u01/app/oracle/oradata/BHDG/'
如上设置后,duplicate就一直报错,我检查了目录和权限都没有问题,可是就有问题,于是查看dg库的告警日志,如下所示:找不到目录!!!
Errors in file /data/u01/app/oracle/diag/rdbms/bhdg/bhdg/trace/bhdg_mz00_119260.trc:
ORA-01110: data file 14: '/data/u01/app/oracle/oradata/BHDG/bhdb_pdb/kcas_bh02.dbf'
ORA-01565: error in identifying file '/data/u01/app/oracle/oradata/BHDG/bhdb_pdb/kcas_bh02.dbf'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
奇怪了,我明明已经设置了要把'/data/u01/app/oracle/oradata/BHDB/bhdb_pdb/',转换成'/data/u01/app/oracle/oradata/BHDG/bhdg_pdb/',怎么不在'/data/u01/app/oracle/oradata/BHDG/bhdg_pdb/'创建文件?怎么报错了呢,怎么去'/data/u01/app/oracle/oradata/BHDG/bhdb_pdb/'创建文件呢?于是我再dg库服务器创建上了'/data/u01/app/oracle/oradata/BHDG/bhdb_pdb/'目录,然后再次执行,果然不报错了!
只能设置成,具体如下:
[oracle@ovy-01 admin]$ mkdir -p  /data/u01/app/oracle/oradata/BHDG/bhdb_pdb/
原来dg参数不能级联转换目录,只能转换上级目录,或者只能转换下级目录,也就是说你只能转换
'/data/u01/app/oracle/oradata/BHDB/' 到'/data/u01/app/oracle/oradata/BHDG/' ,然后子目录默认,也就是说/data/u01/app/oracle/oradata/BHDB/bhdb_pdb/到dg库转换成了/data/u01/app/oracle/oradata/BHDG/bhdb_pdb/, 或者你也可以转换/data/u01/app/oracle/oradata/BHDB/bhdb_pdb/ ------> /data/u01/app/oracle/oradata/BHDG/bhdg_pdb/ 但是前级目录是不能转换的,不管你是否设置了!
所以针对我的这种情况,只需要设置最前级目录,然后后面的都默认即可!因为别的子级别目录也不管用!具体如下:
SQL> alter system set db_file_name_convert ='/data/u01/app/oracle/oradata/BHDB/', '/data/u01/app/oracle/oradata/BHDG/' scope=spfile;

关于设置db_file_name_convert 参数的设置规则,否则都会报错
1.不能把主库的多个目录,转换到dg库的同一个目录
db_file_name_convert ='/data/u01/app/oracle/oradata/BHDB/', '/data/u01/app/oracle/oradata/BHDG/' ,'/data/u01/app/oracle/oradata/BHDB2/','/data/u01/app/oracle/oradata/BHDG/'

2.不能级联转换目录,如本文介绍的,也可能是我不知道怎么实现级联设置,如果有大神知道,可以指正!

3.目录一定要最后带上‘’/‘’,也就是必须要db_file_name_convert ='/data/u01/app/oracle/oradata/BHDB/', 而不能db_file_name_convert ='/data/u01/app/oracle/oradata/BHDB'.

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI