丢失非活动日志组的故障恢复如果数据库丢失的是非活动(inactive)日志组,由于非活动日志组已经完成检查点,数据库不会发生数据损失
丢失非活动日志组的故障恢复
如果数据库丢失的是非活动(inactive)日志组,由于非活动日志组已经完成检查点,
数据库不会发生数据损失,此时只需要通过clear重建该日志组即可恢复.
先删除一个非活动日志组,模拟一次故障损失:
sql> !rm /u01/app/oracle/product/10.2.0/oradata/jingyong/redo03.log
sql> alter system switch logfile;
system altered.
sql> alter system switch logfile;
system altered.
此时启动数据库,数据库会提示日志丢失
sql> shutdown immediate;
database closed.
database dismounted.
oracle instance shut down.
sql> startup
oracle instance started.
total system global area 167772160 bytes
fixed size 1218316 bytes
variable size 67111156 bytes
database buffers 96468992 bytes
redo buffers 2973696 bytes
database mounted.
ora-00313: open failed for members of log group 3 of thread 1
ora-00312: online log 3 thread 1:
'/u01/app/oracle/product/10.2.0/oradata/jingyong/redo03.log'
此时在mount状态,可以查看各日志组及日志文件的状态:
sql> select * from v$log;
group# thread# sequence# bytes members arc status
---------- ---------- ---------- ---------- ---------- --- ----------------
first_change# first_time
------------- ------------
1 1 26 52428800 1 no inactive
913689 06-jan-13
3 1 28 52428800 1 no current
913701 06-jan-13
2 1 27 52428800 1 no inactive
913696 06-jan-13
sql> select * from v$logfile;
group# status type
---------- ------- -------
member
--------------------------------------------------------------------------------
is_
---
3 online
/u01/app/oracle/product/10.2.0/oradata/jingyong/redo03.log
no
2 online
/u01/app/oracle/product/10.2.0/oradata/jingyong/redo02.log
no
group# status type
---------- ------- -------
member
--------------------------------------------------------------------------------
is_
---
1 online
/u01/app/oracle/product/10.2.0/oradata/jingyong/redo01.log
no
,