使用rman命令删除做Oracle数据库定期删除归档日志处理
1、准备工作:
以root用户角色登录Linux操作系统,创建存储删除归档时记录日志及删除shell脚本文件的目录并授权给Oracle用户,命令如下:
mkdir -p /home/del_log
mkdir -p /home/del_log/log
chown -R oracle:oinstall /home/del_log/log
2、编辑删除脚本
删除归档日志先检查归档日志,把物理删除的信息从控制文件删除,然后执行物理删,
本文删除 1天前的所有的归档。
进入
/home/del_log 目录创建删除脚本文件vi del_arc.sh,编辑如下内容,并保存 。
#! /bin/bash
source ~/.bash_profile
#记录归档删除的日志
exec >> /home/rman_log/log/del_arch`date +%F-%H`.log
$ORACLE_HOME/bin/rman target / <<EOF
#检查归档
crosscheck archivelog all;
#删除无效归档
delete noprompt expired archivelog all;
#删除一天前的归档
delete noprompt archivelog until time 'sysdate-1';
#删除所有的归档
#delete noprompt archivelog all;
exit;
EOF
3、由于该脚本是用root用户创建,需要授权给orale用户去执行
chmod 777 del_arc.sh
4、Oracle用户调度脚本
crontab -l --查询已有调度任务
crontab -e --编辑调度任务
* 1 * * * /home/del_log/del_arc.sh