分shutdown immediate和shutdown abort两种情况
2.4.1 在shutdown immediate情况下
1.SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
2. 移走日志文件到上一层目录
$mv log0* ../
3.SQL> startup
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
ORA-00313: 无法打开日志组 1 (线程 1) 的成员
ORA-00312: 联机日志 1 线程 1: 'D:\ORACLE\ORADATA\HUNTER\REDO01.LOG'
4.SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# MEMBERS ARC STATUS
---------- ---------- ---------- ---------- --- ----------------
1 1 1 1 NO CURRENT
2 1 0 1 YES UNUSED
3 1 0 1 YES UNUSED
STATUS含义:
状态 | 含义 |
Current | 正在使用此日志文件 |
Active | 实例恢复时需要此日志文件 |
Inactive | 实例恢复时不需要此日志文件 |
5.看出group#2,group#3已归档,并且不是当前,可以直接用clear重建
SQL> alter database clear logfile group 3;
数据库已更改。
SQL> alter database clear logfile group 2;
对于没有归档的可以用alter database clear unarchived logfile group ;
6.对于当前的并且没有归档的不能用clear这样意味着丢失数据.直接做不完全恢复,用UNTIL CANCEL方法
SQL> recover database until cancel;
完成介质恢复。
SQL> alter database open resetlogs;
数据库已更改。
2.4.2 在shutdown abort情况下
这种情况下是不可能用上面的办法恢复的
1.SQL> shutdown abort;
ORACLE 例程已经关闭。
2. 移走日志文件到上一层目录
$mv log0* ../
3.SQL> startup
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
ORA-00313: 无法打开日志组 1 (线程 1) 的成员
ORA-00312: 联机日志 1 线程 1: 'D:\ORACLE\ORADATA\HUNTER\REDO01.LOG'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
4.SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ----------
1 1 1 104857600 1 NO CURRENT 2535233 24-7月 -06
2 1 0 104857600 1 YES UNUSED 0
3 1 0 104857600 1 YES UNUSED 0
5.SQL> recover database until cancel;
ORA-00279: 更改 2535234 (在 07/24/2006 15:01:13 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\ORA92\RDBMS\ARC00001.001
ORA-00280: 更改 2535234 对于线程 1 是按序列 # 1 进行的
指定日志: {=suggested | filename | AUTO | CANCEL}
ORA-00308: 无法打开存档日志 'D:\ORACLE\ORA92\RDBMS\ARC00001.001'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01194: 文件1需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'D:\ORACLE\ORADATA\HUNTER\SYSTEM01.DBF'
SQL> recover database until cancel;
ORA-00279: 更改 2535234 (在 07/24/2006 15:01:13 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\ORA92\RDBMS\ARC00001.001
ORA-00280: 更改 2535234 对于线程 1 是按序列 # 1 进行的
指定日志: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: 无法打开存档日志 'D:\ORACLE\ORA92\RDBMS\ARC00001.001'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
ORA-00308: 无法打开存档日志 'D:\ORACLE\ORA92\RDBMS\ARC00001.001'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01194: 文件1需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'D:\ORACLE\ORADATA\HUNTER\SYSTEM01.DBF'
------没有办法恢复,必须应该之前的redo日志才能打开
6.C:\>dir *.log
驱动器 C 中的卷没有标签。
卷的序列号是 6C16-C6C3
C:\ 的目录
2006-07-24 15:05 104,858,112 REDO01.LOG
2006-07-24 15:01 104,858,112 REDO02.LOG
2006-07-24 15:01 104,858,112 REDO03.LOG
3 个文件 314,574,336 字节
0 个目录 4,267,880,448 可用字节
C:\>exit
SQL> recover database until cancel;
ORA-00279: 更改 2535234 (在 07/24/2006 15:01:13 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\ORA92\RDBMS\ARC00001.001
ORA-00280: 更改 2535234 对于线程 1 是按序列 # 1 进行的
指定日志: {=suggested | filename | AUTO | CANCEL}
c:\REDO01.LOG
已应用的日志。
完成介质恢复。
SQL> alter database open resetlogs;
数据库已更改。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27681/viewspace-627482/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27681/viewspace-627482/