RMAN备份恢复时报错ORA-00283 ORA-01610 ORA-00279 ORA-00289 ORA-00280 ORA-01194 ORA-01110
一、问题背景
rman备份恢复
导出时,源库是open状态
在导完数起库的时候报错
`报错一`
recover database;
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done
`报错二`
recover database using backup controlfile;
RA-00279: change 1209509 generated at 07/15/2022 09:42:49 needed for thread 1
ORA-00289: suggestion :
+DATA/orcl/archivelog/2022_07_15/thread_1_seq_20.324.1110102193
ORA-00280: change 1209509 for thread 1 is in sequence #20
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
`报错三`
alter database open resetlogs;
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '*******************/system01.dbf'
二、解决办法
原因
在使用rman导出数据时,源库是open状态,会一直在写入归档,导入的时候scn不一致,就会导致以上报错
也就是说,目标库要先追平源库的归档日志,才能正常起库
1.根据第二条报错的提示
从+DATA/orcl/archivelog/2023_10_23/thread_1_seq_20.324.1110102193这个归档文件就已经丢失了,要从这个文件开始追
2.源库为归档路径存在asm中
cd +DATA/orcl/archivelog/
#将这个路径下所有的文件都cp出来,asm不支持cp 2023_10_23/* /tmp/不支持复制路径下所有的文件,要一个一个cp出来,把从提示开始到现在所有的归档文件都复制出来,复制的目录需要给id grid用户一样的权限,不然会报错
3.传输文件、授权
把归档文件复制出来后,将这些文件传输到目标库的主机上,并在目标库中id oracle查看oracle用户的权限,授权给这个目录所有的归档文件
4.注册备份(mount状态下)
su - oracle
rman target /
catalog start with '/backup/archivelog/';
yes
5.应用归档日志(rman)
recover database;
#到最后会有一个报错,rman-06054 大概就是源库传过来的最后一个归档文件为1505,报错提示去找1506,这个报错忽略不用管
5.起库
alter database open resetlogs;
#到此,库就能正常起来了
源库导出时为open状态就会导致此问题,要追平归档才能正常起库,为了避免不必要的麻烦,将源库为mount状态下再导出
此案例只涉及以上报错,起库前注意数据文件,归档文件的路径是否正确