共计 2462 个字符,预计需要花费 7 分钟才能阅读完成。
这篇文章将为大家详细讲解有关基于控制文件的 scn 不完全恢复该怎么办,文章内容质量较高,因此丸趣 TV 小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
问题现象:
SQL alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: /DBSoft/oracle/oradata/woo/system01.dbf
日志中报错:
alter database open
Errors in file /DBSoft/oracle/diag/rdbms/woo/woo/trace/woo_ora_24956.trc:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
ORA-1589 signalled during: alter database open…
Sun Dec 24 05:44:45 2017
Signalling error 1152 for datafile
Signalling error 1152 for datafile
Signalling error 1152 for datafile
Signalling error 1152 for datafile
Signalling error 1152 for datafile
Checker run found 5 new persistent data failures
Sun Dec 24 05:44:51 2017
alter database open resetlogs
Signalling error 1152 for datafile
ORA-1152 signalled during: alter database open resetlogs…
问题分析:
做完 recover database 正要起库,发现 data file 1 需要恢复,那么这个时候就应该要想到需要做不完全恢复了。那么不完全恢复自然有四种,基于时间(time)恢复
基于取消(cancel)恢复
基于 SCN(change)恢复
基于备份控制文件(unsing backup controlfile)的恢复,那么接下来我们需要了解下,用那种方式最合适了。
查看 scn 信息:
查看数据文件头部的 scn 信息:
SQL select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
——————
2247792
2247792
2247792
2247792
2247792
查看控制文件中记录的 scn 头部信息:
SQL select checkpoint_change# from v$datafile;
CHECKPOINT_CHANGE#
——————
2247974
2247974
2247974
2247974
2247974
在这里我们可以很清楚的看到控制文件中记录的 scn 信息比数据文件头部记录的 scn 信息更新,且所有数据文件头部信息是一致的,由此可以快速得出,我们将数据库恢复到数据文件的 scn 这样数据库就可以打开了。
做基于文件头部的 scn 恢复:
SQL recover database until change 2247792;
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done
提示需要使用控制文件来做基于 scn 的恢复。
使用控制文件来做基于 scn 的恢复:
SQL recover database until change 2247792 using backup controlfile;
Media recovery complete.
SQL select * from v$recover_file
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
———- ——- ——- ———- ———- ——————
1 ONLINE ONLINE 2247792 23-DEC-17
2 ONLINE ONLINE 2247792 23-DEC-17
3 ONLINE ONLINE 2247792 23-DEC-17
4 ONLINE ONLINE 2247792 23-DEC-17
5 ONLINE ONLINE 2247792 23-DEC-17
恢复完成之后,执行 open resetlogs:
SQL alter database open resetlogs;
Database altered.
检查:
SQL col error format a10;
SQL select * from v$recover_file;
no rows selected
SQL select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
——————
2247797
2247797
2247797
2247797
2247797
SQL select checkpoint_change# from v$datafile;
CHECKPOINT_CHANGE#
——————
2247797
2247797
2247797
2247797
2247797
必须保证数据文件头部的 scn 和控制文件中的 scn 信息保持一致,数据库才能打开,那么正常恢复将遵循就近。
关于基于控制文件的 scn 不完全恢复该怎么办就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。