三种日志文件状态处理方法
ACTIVE --> alter system checkpoint; --> alter database clear logfile group <>
CURRENT -->alter system switch logfile; --> alter system checkpoint; --> alter database clear logfile group<>
--实验
--1.丢失组内一个日志文件
SYS@PROD1> select group#,members from v$log;
GROUP# MEMBERS
---------- ----------
1 2
2 2
3 2
SYS@PROD1> ho rm /u01/app/oracle/oradata/PROD1/redo01.log --删除一个日志文件
SYS@PROD1> select group#,status from v$log;
GROUP# STATUS
---------- ----------------
1 CURRENT
2 UNUSED
3 UNUSED
SYS@PROD1> alter system switch logfile; --切换日志文件成功
System altered.
--查看告警日志发现有报错信息
Errors in file /u01/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_m000_4014.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/PROD1/redo01.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
SYS@PROD1> select group#,status from v$log; --查看到1号状态是ACTIVE
GROUP# STATUS
---------- ----------------
1 ACTIVE
2 CURRENT
3 UNUSED
SYS@PROD1> alter system checkpoint; --执行checkpoint
System altered.
SYS@PROD1> select group#,status from v$log; --1号状态从active变为inactive
GROUP# STATUS
---------- ----------------
1 INACTIVE
2 CURRENT
3 UNUSED
SYS@PROD1> alter database clear logfile group 1; --清除一号日志组
Database altered.
SYS@PROD1> ho ls /u01/app/oracle/oradata/PROD1/redo01.log --查看发现被删除的日志回来了
/u01/app/oracle/oradata/PROD1/redo01.log