我是oracle数据库中的新手,我已经在一台机器上安装了oracle 11g express作为服务器,并安装了另一台机器,它具有相同的备用数据库步骤,但是当我已经备份服务器数据库并在待机状态下恢复数据库数据库获取错误`like ...
ORA-01547:警告:RECOVER成功,但OPEN RESETLOGS会收到以下错误 ORA-01122:数据库文件9验证检查失败 ORA-01110:数据文件9:' H:\ xxx \ xxx \ system.dbf' ORA-01206:文件不是此数据库的一部分 - 数据库ID错误
我也检查了SID,两者都有相同的实例但是有不同的sid。
`与服务器一样,SID = 13,待机时SID = 91
答案 0 :(得分:0)
要避免此错误,请在pfile(克隆/重复数据库)中添加以下条目
db_file_name_convert='+DATA/DEMODB/DATAFILE/','/u01/app/oracle/oradata/dupdb/'
log_file_name_convert='+DATA/DEMODB/ONLINELOG/','/u01/app/oracle/oradata/dupdb/'
或在rman脚本中设置新名称命令。
11G R1及以下
SET NEWNAME FOR DATAFILE 1 TO ‘/dup/oracle/oradata/trgt/system01.dbf’;
SET NEWNAME FOR DATAFILE 2 TO ‘/dup/oracle/oradata/trgt/undotbs01.dbf’;
and so on for all files , you can write a dynamic script to generate the output , something like
select 'set newname for datafile ' || file_id to 'path/' || file_name || ';' from dba_data_files;
11G R2及以后
SET NEWNAME FOR DATABASE TO 'D:\oracle\oradata\orcl\%b';
SET NEWNAME FOR TEMPFILE 1 TO 'D:\oracle\oradata\orcl\temp01.dbf' ;
编辑2:备份
仅备份存档日志
backup archivelog all;
备份数据库以及存档日志
BACKUP DATABASE PLUS ARCHIVELOG;
如果你想将它们恢复为dg,那么只需将(scp)复制到dg服务器和目录并开始恢复,但如果差距太大则需要 "前滚"恢复,这只是增量备份,恢复和恢复dg。
点击此链接" http://thegeekdiary.com/how-to-roll-forward-a-standby-database-using-rman-incremental-backup-in-11g/"