Oracle 恢复之using backup controlfile 和 until cancel

1、recover database/tablespace/datafile

Oracle以当前控制文件记录的SCN为恢复终点,将相关的datafile恢复到当前控制文件记录的SCN。

控制文件不能比数据文件更旧。完全恢复,利用归档日志和在线重做日志。

2、recover database/tablespace/datafile until cancel

只能在sql plus工具内执行。

在丢失日志的情况下,由Oracle判断恢复终点,不手工指定恢复终点。

控制文件不能比数据文件更旧,用于不完全恢复,在归档日志和在线重做日志都完整的情况下可以达到完全恢复的效果。

recover database until cancel命令输入AUTO选项时只会应用归档日志,而不会自动应用在线日志,需要手工指定在线日志进行恢复。

3、recover database using backup controlfile

只能在sql plus工具内执行。

如果当前控制文件全部损坏,需要还原控制文件,控制文件比数据文件更旧,此时需要使用using backup controlfile命令来告诉oracle,不要以还原出来的控制文件记录的SCN为恢复终点,而是要走完所有日志。

4、recover database using backup controlfile until cancel

只能在sql plus工具内执行。适用于当前全部控制文件和在线日志文件丢失的情况。

需要先还原控制文件,再使用using backup controlfile命令来告诉oracle,不要以还原出来的控制文件记录的SCN为恢复终点,而是由Oracle判断恢复终点。

SQL> recover database using backup controlfile until cancel
ORA-00279: ?? 10018765 (? 04/30/2024 08:55:21 ??) ???? 1 ????
ORA-00289: ??: +FRA/ORCL/ARCHIVELOG/2024_04_30/thread_1_seq_2.642.1167643827
ORA-00280: ?? 10018765 (???? 1) ??? #2 ?


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

 

5、recover database until cancel using backup controlfile

 与recover database using backup controlfile until cancel语句类似,网上有该语句不应用归档日志的说法,经实验验证,并没有不应用归档日志。

SQL> recover database until cancel using backup controlfile
ORA-00279: ?? 10018765 (? 04/30/2024 08:55:21 ??) ???? 1 ????
ORA-00289: ??: +FRA/ORCL/ARCHIVELOG/2024_04_30/thread_1_seq_2.642.1167643827
ORA-00280: ?? 10018765 (???? 1) ??? #2 ?


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

 

 6、until cancel和不带until cancel语句的区别(丢失日志不完全恢复时)

recover database until cancel语句的恢复终点并非丢失日志的前一个日志的最后一个entry,因为总会存在若干个entry与丢失的日志文件有关联,因此不能恢复到丢失日志的前一个日志的最后一个entry。

recover database语句的恢复终点为丢失日志的前一个日志的最后一个entry,由于存在若干个entry与丢失的日志文件有关联,所以数据库恢复过头了,不能打开。

posted @   霜雪吴钩  阅读(210)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
作者:霜雪吴钩 版权声明:本文为博主原创文章,转载请附上博文链接!
点击右上角即可分享
微信分享提示