ACTIVE日志损坏(有归档)(一)

2014-11-24 18:36:12 · 作者: · 浏览: 0

归档模式下active日志损坏


active代表日志切换过可能已经归档;也可能代表日志中的脏块还没有被DBWR写盘


查看归档路径


SQL> show parameter recovery



NAME TYPE VALUE


----------------------------------------------- ------------------------------


db_recovery_file_dest string /u01/tiger/flash_recovery_area


db_recovery_file_dest_size big integer 2G


recovery_parallelism integer 0


如果是刚创建的数据库那么就会出现unused状态


SQL> select * from v$log;



GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM


---------- ---------- ---------- -------------------- --- ---------------- ------------- ---------


1 1 2 52428800 1 NO CURRENT 452423 07-SEP-12


2 1 0 52428800 1 YES UNUSED 0


3 1 1 52428800 1 YES INACTIVE 446075 07-SEP-12


第一,查看日志的状态和对应的日志文件


SQL> select * from v$logfile;



GROUP# STATUS TYPE MEMBER IS_


---------- ------- ----------------------------------------------- ---


3 ONLINE /u01/tiger/oradata/orcl/redo03.log NO


2 ONLINE /u01/tiger/oradata/orcl/redo02.log NO


1 ONLINE /u01/tiger/oradata/orcl/redo01.log NO



SQL> select * from v$log;



GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM


---------- ---------- ---------- -------------------- --- ---------------- ------------- ---------


1 1 2 52428800 1 YES ACTIVE 460765 07-SEP-12


2 1 3 52428800 1 NO CURRENT 460767 07-SEP-12


3 1 1 52428800 1 YES ACTIVE 459268 07-SEP-12


第二破坏日志做测试


SQL> !cp /etc/passwd/u01/tiger/oradata/orcl/redo01.log


SQL> conn /as sysdba


Connected.


SQL> shut abort


SQL> startup


ORACLE instance started.



Total System Global Area 314572800 bytes


Fixed Size 1219136 bytes


Variable Size 104859072 bytes


Database Buffers 201326592 bytes


Redo Buffers 7168000 bytes


Database mounted.


ORA-00313: open failed for members of loggroup 1 of thread 1


ORA-00312: online log 1 thread 1:'/u01/tiger/oradata/orcl/redo01.log'


ORA-27046: file size is not a multiple oflogical block size


Additional information: 1



第三恢复日志


SQL> alter database clear logfile group 1;


alter database clear logfile group 1


*


ERROR at line 1:


ORA-01624: log 1 needed for crash recovery of instance orcl(thread 1)


ORA-00312: online log 1 thread 1:'/u01/tiger/oradata/orcl/redo01.log'


------当我们清洗日志组的时候发现因为视力恢复的时候需要日志组1所以清洗不了


SQL> select * from v$log;



GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM


---------- ---------- ---------- -------------------- --- ---------------- ------------- ---------


1 1 2 52428800 1 YES ACTIVE 460765 07-SEP-12


3 1 1 52428800 1 YES ACTIVE 459268 07-SEP-12


2 1 3 52428800 1 NO CURRENT 460767 07-SEP-12


------检查日志组的状态发现是在activ