清除归档日志的方式
1、手动删除
使用rm 或者find方式来删除,通过该方式删除之后,在RMAN下可以通过 crosscheck archivelog all 校验归档是否失效,如下面的操作:
oracle@y16:/opt/oracle/product/10.2/db_1/bin> ./rman
RMAN> connect target /
rm -rf arch_816906485_1_10.arc
--将 /opt/oracle/flash_recovery_area/ORCL/archivelog目录下所有10天前带"."的文件删除
find /opt/oracle/flash_recovery_area/ORCL/archivelog -mtime +0 -name "*.*" -exec rm -rf {} \;
RMAN> crosscheck archivelog all
硬盘删除后,还需要通过查询失效的归档日志进行删除,参考看以下。
2、使用RMAN方式清除
RMAN清除方式会自动清除磁盘上的归档日志文件,同时会释放控制文件中对应的归档日志的归档信息。
可以基于不同的条件来清除归档日志,如基于SCN,基于SEQUENCE,基于TIME等方式。
对于上述的三种方式又可以配合from, until, between .. and .. 等等子句来限定范围,方式灵活多变。
下面的命令用于校验归档日志的有效性,列出无效的归档日志,以及以何种方式清除归档日志,列出几种常用的:
-->校验日志的可用性
crosscheck archivelog all;
--->列出所有失效的归档日志
list expired archivelog all;
-->删除log sequence为16及16之前的所有归档日志
delete archivelog until sequence 16;
-->删除系统时间7天以前的归档日志,不会删除闪回区有效的归档日志
delete archivelog all completed before 'sysdate-7';
-->注意这个命令,删除系统时间1天以内到现在的归档日志
delete archivelog from time 'sysdate-1';
-->该命令清除所有的归档日志
delete noprompt archivelog all completed before 'sysdate';
-->同上一命令
delete noprompt archivelog all;