Oracle RMAN 清除归档日志

 

 

清除归档日志的方式

 

 

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;

 

 

 

 

你可能感兴趣的:(Oracle RMAN 清除归档日志)