
检查主库备库对应目录是否一致 或者db_file_name_convert和log_file_name_convert参数是否配置正确
评论
有用 0目录一致的,PFILE是从主库拷到备库改的,
一台主两台DG,会有冲突吗?

评论
有用 0发现ORACLEhome目录不一样,数据文件目录是一样,有影响
评论
有用 0duplicate的过程中,会自动拷贝密码文件这个事儿之前确实也没注意过,但从你这个错误,以及结合你的实际情况来看,确实是因为db_home的路径不一致,导致在恢复密码文件的出了问题,你可以尝试下自己先把密码文件拷到备库的$ORACLE_HOME/dbs下,然后再duplicate测试一下。
评论
有用 0首先更正我之前的一个说法,不管你是否提前将密码文件拷贝到备库,duplicate的过程第一步就是要进行密码文件的copy,这个我已经从其他的rman输出上确定了。
现在确定一下,你duplicate的操作是备库服务器上做的,还是主库服务器上做的?就是你rman连接的指令,是在哪个服务器上执行的。
评论
有用 0主库的ORACLE_HOME是db_1,备库的是dbhome_1是吧
评论
有用 0那从rman输出上看是对呀,而且你这个报错也有点儿奇怪,正常failed to identify file 后面会有个具体的文件,你这里是空,挺诡异的,这个问题我暂时想不出办法解决了,我能给的建议就是,用备份恢复的方式做dg吧,或者你一定要用duplicate的方式的话,你可以人为去做其中的具体步骤,也就是说你把密码文件自己拷好,备库的控制文件恢复好,把备库启动到mount阶段,然后根据下面的文本,把其中的数据文件路径进行替换,注意,rman连接的语句也要根据你实际的情况进行修改(主要就是密码和tnsname):
#!/bin/bash
rman target sys/crm2bk_oracle@crm2bk_OLD auxiliary sys/crm2bk_oracle@crm2bk_NEW log=/home/oracle/enmo/yx01.log<<EOF
run{
allocate channel prmy1 type disk;
allocate channel prmy2 type disk;
allocate channel prmy3 type disk;
allocate channel prmy4 type disk;
allocate auxiliary channel stby type disk;
set newname for tempfile 1 to
"+gsdxqxdb_data";
switch clone tempfile all;
set newname for datafile 1 to
"+gsdxqxdb_data";
set newname for datafile 2 to
"+gsdxqxdb_data";
set newname for datafile 3 to
"+gsdxqxdb_data";
……
set newname for datafile 42 to
"+gsdxqxdb_data";
set newname for datafile 43 to
"+gsdxqxdb_data";
set newname for datafile 44 to
"+gsdxqxdb_data";
backup as copy reuse
datafile 1 auxiliary format "+gsdxqxdb_data"
datafile 2 auxiliary format "+gsdxqxdb_data"
datafile 3 auxiliary format "+gsdxqxdb_data"
……
datafile 42 auxiliary format "+gsdxqxdb_data"
datafile 43 auxiliary format "+gsdxqxdb_data"
datafile 44 auxiliary format "+gsdxqxdb_data" ;
}
exit
EOF
echo "****************duplicate is over!****************">>/home/oracle/enmo/rman01.log
评论
有用 0操作系统版本和数据库版本是否一致?
跟异地没关系,网络能通过监听进行连接就可以
可以通过燕鑫提供的方案手动备份恢复,如果可以的话,可能是初始化文件格式的问题吧
评论
有用 0
墨值悬赏





