我们知道在oracle的非当前redo日志文件组损坏时,可以使用alter database
clear logfile group #或alter database
clear unarchived logfile group
#命令"清空"redo文件,以前一直认为清空操作时,日志文件必须已经存在,今天的实验纠正了我的的一个错误认识:
先删除一个日志文件
SQL>
select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 41 YES INACTIVE
2 42 YES INACTIVE
3 43 NO CURRENT
4 0 YES UNUSED
SQL>
select * from v$logfile where group#=1;
GROUP# STATUS TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
IS_
---
1 STALE ONLINE
/oracle/oradata/orcl/redo01.log
NO
SQL> host rm -rf
/oracle/oradata/orcl/redo01.log;
发现日志文件已经不存在了
[oracle@localhost
orcl]$ ll
total 1540488
-rw-r----- 1 oracle oinstall 7061504 May 30 15:14 control01.ctl
-rw-r----- 1 oracle oinstall 7061504 May 30 15:14 control02.ctl
-rw-r----- 1 oracle oinstall 7061504 May 30 15:14 control03.ctl
-rw-r----- 1 oracle oinstall 104865792 May 30 15:13
example01.dbf
-rw-r----- 1 oracle oinstall 104865792 May 30 15:13 p101.dbf
-rw-r----- 1 oracle oinstall 104865792 May 30 15:13 p201.dbf
-rw-r----- 1 oracle oinstall 52429312 May 30
15:13 redo02.log
-rw-r----- 1 oracle oinstall 52429312 May 30
15:13 redo03.log
-rw-r----- 1 oracle oinstall 52429312 May 30
15:14 redo04a.log
-rw-r----- 1 oracle oinstall 52429312 May 30
15:14 redo04b.log
-rw-r----- 1 oracle oinstall 262152192 May 30 15:13
sysaux01.dbf
-rw-r----- 1 oracle oinstall 524296192 May 30 15:13
system01.dbf
-rw-r----- 1 oracle oinstall 22028288 Apr 28
23:52 temp01.dbf
-rw-r----- 1 oracle oinstall 47194112 May 30
15:13 undotbs01.dbf
-rw-r----- 1 oracle oinstall 175644672 May 30 15:13
users01.dbf
[oracle@localhost orcl]$ sqlplus /nolog
清空日志文件组
SQL> alter database clear
unarchived logfile group 1;
Database altered.
检查磁盘文件,发现已经重新生成了redo01
[oracle@localhost orcl]$
ll
total 1591748
-rw-r----- 1 oracle oinstall 7061504 May 30 15:17 control01.ctl
-rw-r----- 1 oracle oinstall 7061504 May 30 15:17 control02.ctl
-rw-r----- 1 oracle oinstall 7061504 May 30 15:17 control03.ctl
-rw-r----- 1 oracle oinstall 104865792 May 30 15:16
example01.dbf
-rw-r----- 1 oracle oinstall 104865792 May 30 15:16 p101.dbf
-rw-r----- 1 oracle oinstall 104865792 May 30 15:16 p201.dbf
-rw-r----- 1 oracle oinstall 52429312 May 30
15:16 redo01.log
-rw-r----- 1 oracle oinstall 52429312 May 30
15:13 redo02.log
-rw-r----- 1 oracle oinstall 52429312 May 30
15:13 redo03.log
-rw-r----- 1 oracle oinstall 52429312 May 30
15:16 redo04a.log
-rw-r----- 1 oracle oinstall 52429312 May 30
15:16 redo04b.log
-rw-r----- 1 oracle oinstall 262152192 May 30 15:16
sysaux01.dbf
-rw-r----- 1 oracle oinstall 524296192 May 30 15:16
system01.dbf
-rw-r----- 1 oracle oinstall 22028288 Apr 28
23:52 temp01.dbf
-rw-r----- 1 oracle oinstall 47194112 May 30
15:16 undotbs01.dbf
-rw-r----- 1 oracle oinstall 175644672 May 30 15:16
users01.dbf