环境: windows XP Pro + oracle 9.2.0.4
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- ----------
1 1 22 104857600 1 NO INACTIVE
243099 26-8月 -06
243170 26-8月 -06
243097 26-8月 -06
alter system switch logfile
*
ERROR 位于第 1 行:
ORA-03113: 通信通道的文件结束
- 将数据库mount状态
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 135339844 bytes
Fixed Size 454468 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
SQL> alter database open;
alter database open
*
ERROR 位于第 1 行:
ORA-00313: 无法打开日志组 3 (线程 1) 的成员
ORA-00312: 联机日志 3 线程 1: 'E:\ORACLE\ORADATA\FOX\REDO03.LOG' - alter database drop logfile group 3;
SQL> alter database drop logfile group 3;
数据库已更改。
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- ----------
1 1 22 104857600 1 NO INACTIVE
243099 26-8月 -06
2 1 23 104857600 1 NO INVALIDATED
243170 26-8月 -06
SQL> select * from v$logfile;
GROUP# STATUS TYPE
---------- ------- -------
MEMBER
----------------------------------
1 ONLINE
E:\ORACLE\ORADATA\FOX\REDO01.LOG
2 STALE ONLINE
E:\ORACLE\ORADATA\FOX\REDO02.LOG
此时,group 2变成INVALIDATED,是因为,发生日志切换过程中,数据库crash,所以group 2变成INVALIDATED,REDO02.LOG变成了stale(stale经常出现在上一次操作失败后,下一次成功操作后会恢复正常) - alter database add logfile group 3
('e:\oracle\oradata\fox\redo03.log') size 100M;
SQL> alter database add logfile group 3
2 ('e:\oracle\oradata\fox\redo03.log')
3 size 100M;
数据库已更改。
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- ----------
1 1 22 104857600 1 NO INACTIVE
243099 26-8月 -06
2 1 23 104857600 1 NO INVALIDATED
243170 26-8月 -06
3 1 0 104857600 1 YES UNUSED - alter database open;
SQL> alter database open;
数据库已更改。
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- ----------
1 1 22 104857600 1 NO INACTIVE
243099 26-8月 -06
2 1 23 104857600 1 NO INACTIVE
243170 26-8月 -06
3 1 24 104857600 1 NO CURRENT
263663 26-8月 -06
注意,打开数据库后,group 2 inactive状态,日志自动切换到group 3。
(2) alter database clear logfile group *的方法
上面试验到数据库mount状态后,运行
SQL> alter database clear logfile group 3;
数据库已更改。
SQL>
SQL> alter database open;
记住,alter database clear logfile group 3这种方法,数据库会自动重建redo03.log日志文件。
2、系统是archivelog的
(1)删除的为已经archive的group
数据库日志状态为:
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- ----------
1 1 26 104857600 1 NO CURRENT
2012333 26-8月 -06
2 1 24 104857600 1 YES INACTIVE
765483 24-8月 -06
3 1 25 104857600 1 YES INACTIVE
1987398 24-8月 -06
在系统中删除 redo02.log后,手工switch logfile,instance立即崩溃。
SQL> alter system switch logfile;
alter system switch logfile
*
ERROR 位于第 1 行:
ORA-03113: 通信通道的文件结束
重启数据库:
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 135339844 bytes
Fixed Size 454468 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
SQL>
SQL> alter database open;
alter database open
*
ERROR 位于第 1 行:
ORA-00313: 无法打开日志组 2 (线程 1) 的成员
ORA-00312: 联机日志 2 线程 1: 'E:\ORACLE\ORADATA\MYDB\REDO02.LOG'
对redo02进行恢复:
SQL> alter database clear logfile group 2;
数据库已更改。
SQL>
SQL> alter database open;
数据库已更改。
当然,也可以通过 drop掉 group 2,然后再添加的方法恢复group 2 了。
(2)如果删除的inactive日志还没归档的话
则使用 alter database unarchived logfile group * 来恢复,恢复后系统以前的备份无效,需要重新进行数据库全备。
1、在丢失之前系统正常关闭的状态下
由于,关闭前系统已经完成了检查点,此种情况对于8i可以对当前日志进行 clear,对于9i可以进行until cancel恢复。然后open resetlogs打开数据库。
2、在丢失之前系统异常关闭
此时,对于noarchivelog模式下,只能从数据库全备中恢复了
对于archivelog模式,可以找到最近一次的数据库备份,然后作基于cancel的恢复。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7220098/viewspace-157766/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7220098/viewspace-157766/
2355

被折叠的 条评论
为什么被折叠?



