ORACLE之Redo日志文件丢失恢复
目录:
- 当前Redo日志丢失恢复
- 非当前Redo日志丢失恢复
一、当前Redo日志丢失恢复
数据库open状态下:
常规的方法,只能通过热备份的所有数据文件来恢复,因为数据库已经不一致。
-
查看当前日志组:
-
我们将日志组1删除:
-
触发错误:(命令执行是成功的,但是redo01没有办法进行归档了)
-
将所有文件进行删除,然后从我们的备份中拷贝回来:
-
启动数据库到mount状态执行恢复:
SQL> recover database until cancel using backup controlfile; ORA-00279: change 2239494 generated at 02/14/2021 04:40:36 needed for thread 1 ORA-00289: suggestion : /u01/app/oracle/archive2/arch_orcl_1_3_1064464371.dbf ORA-00280: change 2239494 for thread 1 is in sequence #3 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} /u01/app/oracle/archive2/arch_orcl_1_3_1064464371.dbf SP2-0734: unknown command beginning "/u01/app/o..." - rest of line ignored. SQL> recover database until cancel using backup controlfile; ORA-00279: change 2240089 generated at 02/14/2021 04:55:35 needed for thread 1 ORA-00289: suggestion : /u01/app/oracle/archive2/arch_orcl_1_4_1064464371.dbf ORA-00280: change 2240089 for thread 1 is in sequence #4 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} cancel Media recovery cancelled. SQL>
-
打开数据库(成功)
SQL> alter database open resetlogs; Database altered. SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination /u01/app/oracle/archive2/ Oldest online log sequence 1 Next log sequence to archive 1 Current log sequence 1 SQL>
数据库close状态下:
当在关闭状态下当前日志组所有日志成员全部出现介质失败时,因为数据文件,控制文件都处于完全一致的状态,所有只需要使用RECOVER DATABASE UNTIL CANCEL命令执行基于取消的不完全恢复,然后用RESETLOGS选项打开数据库即可。
SQL> startup mount;
SQL> recover database until cancel;
cancel
alter database open resetlogs;
二、非当前Redo日志丢失恢复
当前日志组状态:
我们删除掉日志组三:
日志切换报错:
- 执行恢复