今天同事询问我由于磁盘空间不够用了,可不可以将oracle的redolog文件删掉一些;我立刻回答他不可以;但是又觉的说的太绝对了,于是乎到网上查些资料;
发现其实是可以删除的;
只不过要经过如下步骤:
一般在作数据库备份时,都不需要也不建议备份redolog,因为数据库在进行恢复的时候主要是利用归档日志文件,当数据库出现错误时,会产生不一致的redolog,对恢复是没有意义的。
用archive log 作恢复后,oracle会自动生成新的redo log文件!
查看日志组信息
select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- -------- ------------- -----------------
1 1 0 52428800 2 YES UNUSED 0
2 1 0 52428800 1 YES UNUSED 0
3 1 0 524288000 1 YES UNUSED 0
4 1 1 524288000 2 NO CURRENT 6494848 20111019 22:32:01
5 1 0 524288000 2 YES UNUSED 0
查看日志文件信息
select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_
---------- ------- -------- ---------------------------------------------- ---
1 ONLINE /oracle/ora10gR2/oradata/ora10g/redo01.log NO
2 ONLINE /oracle/ora10gR2/oradata/ora10g/redo02.log NO
1 ONLINE /oracle/ora10gR2/oradata/ora10g/redo01_b.log NO
3 ONLINE /oracle/ora10gR2/oradata/ora10g/redo03_a.log NO
4 ONLINE /oracle/ora10gR2/oradata/ora10g/redo04_a.log NO
4 ONLINE /oracle/ora10gR2/oradata/ora10g/redo04_b.log NO
5 ONLINE /oracle/ora10gR2/oradata/ora10g/redo05_a.log NO
5 ONLINE /oracle/ora10gR2/oradata/ora10g/redo05_b.log NO
注意日志组的状态,只有UNUSED或者inactive状态的可以删除;
删除日志组
这里以删除第5组非活动日志组为例作为演示。
alter database drop logfile group 5;
验证此时日志组对应的日志文件是否被删除
ls -l /oracle/ora10gR2/oradata/ora10g/redo05_a.log
此时操作系统上与第五组日志相关的日志文件并没有被删除。此时需要我们手工完成清理动作,否则在下次创建同样的日志文件时会报错,提示文件已经存在,不允许创建
4.小结
默认情况下当删除日志文件组后Oracle不会将对应的日志成员文件在操作系统上删除,此时我们需要在操作系统上使用rm进行处理,rm是危险的,当使用rm进行删除时,一定要小心。为了防止出现此类问题的发生,我们可以考虑使用OMF或者ASM方式管理数据库的文件。 注意:对于一个Oracle数据库实例,至少要包含两个联机重做日志组
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25057232/viewspace-749874/
,如需转载,请注明出处,否则将追究法律责任。