from:
Oracle在开启了归档模式后,会在指定的archive目录下产生很多的archivelog文件,而且默认是不会定期清除的,时间长久了,该文件夹会占用很大的空间。 问题:如何定期正确删除archivelog文件呢? 很多人直接在archive目录下删除文件,这样其实不能达到在Oracle CLF文件中删除文件记录的效果。 正确方法: 1.用RMAN连接目标DB: RMAN target sys/*****@orcl 2.在RMAN命令窗口中,输入如下命令: crosscheck archivelog all; delete expired archivelog all; 或者删除指定时间之前的archivelog: DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';(指定删除7天前的归档日志)
---补充---:
直接如下就行了:RMAN target sys/*****@orclDELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';或RMAN target sys/*****@orclDELETE NOPROMPT ARCHIVELOG UNTIL TIME "TO_DATE('XXXX-XX-XX','YYYY-MM-DD')";补充:
noprompt 不用确认 就是 手动输入yes & no
--------------------------------------------------------------------------------------------------------------------------
3.其它相关命令: 查看归档日志列表: list archivelog all; 查看失效的归档日志列表: list expired archivelog all; 4.定期清除archivelog: 可以将如下代码写成.bat文件,在控制面版的任务计划下添加新的定时任务: RMAN target sys/*****@orcl crosscheck archivelog all; delete expired archivelog all;