Oracle 正确删除archivelog文件(归档日志)
Oracle在开启了归档模式后,会在指定的archive目录下产生很多的archivelog文件,而且默认是不会定期清除的,时间长久了,该文件夹会占用很大的空间。
问题:如何定期正确删除archivelog文件呢? 很多人直接在archive目录下删除文件,这样其实不能达到在Oracle CLF文件中删除文件记录的效果。
archivelog文件位置: app/oracle/archivelog/XXXX.log
正确方法:
1.用RMAN连接目标DB:在命令行界面输入以下命令
rman target sys/密码@数据库服务名 (数据库服务名可以不输入) 例如:$ rman target sys/mdmchalco $ rman target sys/mdmchalco@mdmzl
或者在服务器电脑
rman target /
如图:
2.在RMAN命令窗口中,输入如下命令, 清理日志:
2.1 直接删除目前的归档日志:(RMAN之后的命令,可能需要确认,输入"YES"即可)
RMAN> delete archivelog all;
2.2 下线日志,然后删除失效的归档日志
RMAN> crosscheck archivelog all; RMAN> delete expired archivelog all;
或者删除指定时间之前的archivelog:
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
(指定删除7天前的归档日志)
3.其它相关命令:
查看归档日志列表:
RMAN> list archivelog all;
查看失效的归档日志列表:
RMAN> list expired archivelog all;
4.定期清除archivelog (windows环境下):
可以将如下代码写成.bat文件,在控制面版的任务计划下添加新的定时任务:
RMAN target sys/*@orcl crosscheck archivelog all; delete expired archivelog all;
5.退出RMAN
RMAN> quit