前言
接用户求助,生产业务上的一套数据库存在归档文件占用过多磁盘空间的问题(约四万个),需要清理,最好设置成定期自动清理,以减少人工干预。
处置过程
由于Oracle搭建在windows操作系统之上,实现自动清理功能需要使用【任务计划程序】
1、通过左下角点开windows键,找到【任务管理器】
2、点击找到【任务计划程序】
3、观察到已经有一个归档处理的自动化处理任务在列表中了,那么可能是脚本的执行出现了问题
4、通过上图中的路径,我们找到该.bat文件并打开,可以看到,归档自动清理的任务,是通过执行arch_delete.txt文件来实现的,并在D盘的rman文件夹下,生成记录执行情况的文本
打开arch_delete.txt文件,可以了解到,归档文件保留15天。
5、由于归档文件并未被及时清理,所以我们打开记录执行情况的日志文件,在D盘的rman文件夹中,可以看到,确实有一系列的报错信息
6、看到报错中的备用两个字,联想起了dg备库。跟用户沟通后了解到,这套库确实有一个备库,于是登录到了备库的控制台,发现数据库是处于关闭的状态,经过一系列的排查,发现原因是该主机经历过一次重启,但是数据库服务并未设置成自动启动,导致备库长时间处于关闭的状态。
开启备库数据库实例,并启动监听,此时再次查看主库的执行日志,归档文件已经正常被删除。
后记
过期的归档文件可能无法被正常删除,登录到rman,使用catalog start with命令,可以将目录下的归档文件注册进来,然后进行删除。