一 redo log 丢失之后尝试恢复
前提:删除ONLINELOG与RECOVERY 路径下的REDOLOG,REDOLOG按组分别存放在不同的路径下
1尝试启动数据库
STARTUP
SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已经启动。
Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 142607040 bytes
Database Buffers 138412032 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员
ORA-00312: 联机日志 2 线程 1: 'D:\ORADATA\TEST\ONLINELOG\O1_MF_2_55VJ2DNZ_.LOG'
ORA-00312: 联机日志 2 线程 1:
'D:\FLASH_RECOVERY_AREA\TEST\ONLINELOG\O1_MF_2_55VJ2JOZ_.LOG'
系统提示找不到REDOLOG
2 将系统启动到 MOUNT状态
STARTUP MOUNT
SET WRAP OFF
4查看到REDOLOG的组已经当前状态
SQL> select * from v$log;
在列 FIRST_CHANGE# 前截断 (按要求)
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRS
---------- ---------- ---------- ---------- ---------- --- ---------------- ----
2 1 2 52428800 2 YES INACTIVE 15-7
3 1 3 52428800 2 NO CURRENT 16-7
可以看到当前组为GROUP 3,而且未归档。尝试清空LOGFILE;
Ø alter database clear unarchived logfile group 3;
Ø SQL> alter database clear unarchived logfile group 3;*
Ø 第 1 行出现错误:
Ø ORA-01624: 日志 3 是紧急恢复实例 test (线程 1) 所必需的
Ø ORA-00312: 联机日志 3 线程 1: 'D:\ORADATA\TEST\ONLINELOG\O1_MF_3_55VJ2M00_.LOG'
Ø ORA-00312: 联机日志 3 线程 1:
Ø 'D:\FLASH_RECOVERY_AREA\TEST\ONLINELOG\O1_MF_3_55VJ2P1G_.LOG'
Ø 如果失败,只能尝试恢复数据库。
Ø Recover database until cancel;
先选择auto,尽量恢复可以利用的归档日志,然后重新
recover database until cancel
这次输入cancel,完成不完全恢复,也就是说恢复两次。
恢复完成之后,发现路径下还不会有REDOLOG文件
SQL> alter database open resetlogs;
重置REDOLOG之后,系统生成新的REDOLOG在相应的路径下。原REDOLOG中未提交的数据丢失。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22078283/viewspace-610635/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22078283/viewspace-610635/