Oracle简单的删除归档日志脚本部署

环境:

RHEL6.X

Oracle 11g单机

编写脚本,指定脚本运行路径和日志保存格式:
[[email protected] scripts]$ cat del_arch.sh
source ~/.bash_profile
DATE=`date +%Y-%m-%d`
rman cmdfile /home/oracle/scripts/del_arch.rcv  log=/home/oracle/scripts/del_arch_logs/log_del_$DATE

假设删除三天前的归档(即只保留三天的归档日志):
[[email protected] scripts]$ cat del_arch.rcv
connect target
delete noprompt archivelog until time 'sysdate-3';

crontab -l
30 * * * * /arch/del_arch.sh

#关于crontab基本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)


测试如下:
作用:每隔40分钟删除一次归档日志且将产生的日志放在archlog中,依照时间“年-月-日-时-分-秒”格式区分
drwxr-xr-x. 2 oracle oinstall 4096 Aug 11 15:12 archlog
-rw-r--r--. 1 oracle oinstall   48 Aug 11 14:46 del_arch.rcv
-rwxrwxr-x. 1 oracle oinstall  119 Aug 11 15:11 del_arch.sh
[[email protected] arch]$ cat del_arch.sh
source ~/.bash_profile
DATE=`date +%Y-%m-%d-%H-%M-%S`
rman cmdfile /arch/del_arch.rcv log=/arch/archlog/log_del_$DATE     (log和cmdfile请放在同一行)
[[email protected] arch]$ cat del_arch.rcv
connect target
delete noprompt archivelog all;         (全部清除,不保留,实际情况不建议这么做)
[[email protected] arch]$ crontab -l
40 * * * * /arch/del_arch.sh

[[email protected] ~]$ sqlplus / as sysdba
手动生成归档日志文件:
SQL> alter system switch logfile;
查看归档日志生成情况:
Oracle简单的删除归档日志脚本部署
Oracle简单的删除归档日志脚本部署
直接运行脚本:
Oracle简单的删除归档日志脚本部署
Oracle简单的删除归档日志脚本部署
归档日志已经清除且产生记录日志:
Oracle简单的删除归档日志脚本部署
Oracle简单的删除归档日志脚本部署