4 /home/oracle/app/oracle/oradata/orcl/redo04_04.log 100 UNUSED
5.删除重做日志文件
重做日志文件状态是current和active是不能被删除不能删除组内唯一成员
重做日志文件被删除,物理文件是没有被删除,需要手动去删除物理文件
如果想删除当前处于current或者active状态的重做日志文件,必须要把当前的重做日志文件切换到inactive状态如果删除重做日志文件,尽量被删除重做日志处于归档状态。(查看是否是归档状态v$log视图中的archived字段)
语法:
alter database drop logfile member '文件名'
不能删除组内唯一成员
SQL> select a.group#,a.member,b.bytes,b.status,b.archived
from v$logfile a, v$log b
where a.group#=b.group#;
GROUP# MEMBER BYTES STATUS ARC
---------- -------------------------------------------------- ---------- ---------------- ---
3 /home/oracle/app/oracle/oradata/orcl/redo03.log 52428800 INACTIVE YES
2 /home/oracle/app/oracle/oradata/orcl/redo02.log 52428800 INACTIVE YES
1 /home/oracle/app/oracle/oradata/orcl/redo01.log 52428800 CURRENT NO
4 /home/oracle/app/oracle/oradata/orcl/redo04_01.log 104857600 INACTIVE YES
4 /home/oracle/app/oracle/oradata/orcl/redo04_02.log 104857600 INACTIVE YES
4 /home/oracle/app/oracle/oradata/orcl/redo04_04.log 104857600 INACTIVE YES
删除重做日志状态为current,会提示错误信息
SQL> alter database drop logfile member '/home/oracle/app/oracle/oradata/orcl/redo03.log';
alter database drop logfile member '/home/oracle/app/oracle/oradata/orcl/redo03.log'
*
ERROR at line 1:
ORA-00361: cannot remove last log member /home/oracle/app/oracle/oradata/orcl/redo03.log for group 3
如果想删除当前处于current或者active状态的重做日志文件,必须要把当前的重做日志文件切换到inactive状态
SQL> alter system switch logfile;
System altered.
SQL> select a.group#,a.member,b.bytes/1024/1024,b.status,b.archived
2 from v$logfile a,v$log b
3 where a.group#=b.group#;
GROUP# MEMBER BYTES STATUS ARC
---------- -------------------------------------------------- ---------- ---------------- ---
3 /home/oracle/app/oracle/oradata/orcl/redo03.log 52428800 ACTIVE YES
2 /home/oracle/app/oracle/oradata/orcl/redo02.log 52428800 INACTIVE YES
1 /home/oracle/app/oracle/oradata/orcl/redo01.log 52428800 INACTIVE YES
4 /home/oracle/app/oracle/oradata/orcl/redo04_01.log 104857600 CURRENT NO
4 /home/oracle/app/oracle/oradata/orcl/redo04_02.log 104857600 CURRENT NO
4 /home/oracle/app/oracle/oradata/orcl/redo04_04.log 104857600 CURRENT NO
如果删除重做日志处于current或者active状态,会报 the current log for thread 1 - cannot drop members
SQL> alter database drop logfile member '/home/oracle/app/oracle/oradata/orcl/redo04_01.log';
alter database drop logfile member '/home/oracle/app/oracle/oradata/orcl/redo04_01.log'
*
ERROR at line 1:
ORA-01609: log 4 is the current log for thread 1 - cannot drop members
ORA-00312: online log 4 thread 1: '/home/oracle/app/oracle/oradata/orcl/redo04_01.log'
ORA-00312: online log 4 thread 1: '/home/oracle/app/oracle/oradata/orcl/redo04_02.log'
ORA-00312: online log 4 thread 1: '/home/oracle/app/oracle/oradata/orcl/redo04_04.log'
重做日志文件被删除,物理文件是没有被删除,需要手动去删除物理文件
SQL> alter system switch logfile;
System altered.
SQL> select a.group#,a.member,b.bytes/1024/1024 "M", b.status,b.archived
from v$logfile a,v$log b
where a.group#=b.group#;
GROUP# MEMBER M STATUS ARC
---------- -------------------------------------------------- ---------- ---------------- ---
3 /home/oracle/app/oracle/oradata/orcl/redo03.log 50 INACTIVE YES
2 /home/orac