最近某台oracle数据库中的归档日志太多了,一天都有几十G的归档日志产生,总是提示归档空间满,导致orcle总是与服务器断开,所以就写了个定期清理Oracle归档日志的脚本,先看下整体思路。
自动删除Oracle过期归档日志的思路如下:
脚本如下:
E:HRDB_BACKUParchclear_arch.bat
rman target / msglog=E:HRDB_BACKUParchlog%date:~0,10%.log cmdfile=E:HRDB_BACKUParchclear_arch.txt
E:HRDB_BACKUParchclear_arch.txt
CROSSCHECK ARCHIVELOG ALL; DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-3'; BACKUP VALIDATE ARCHIVELOG ALL; EXIT;
其中,SYSDATE-3表示自动删除3天之前所有的归档日志。
cmd 下 执行 taskschd.msc, 进入到windows的任务计划界面,
或者点击"控制面板",在接下来的控制面板项中找到“管理工具"并打开,在管理工具菜单菜单中找到“任务计划程序”并双击打开
1、新建基本任务
2、输入任务名称
3、选择周期
4、选择周期启动时间
5、操作类型选择启动程序
6、设置脚本位置
7、设置完成
8、确定
9、测试
测试成功。