您的位置:首页 > 数据库 > Oracle

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

2017-08-11 16:32 1586 查看
环境:

RHEL6.X

Oracle 11g单机

编写脚本,指定脚本运行路径和日志保存格式:

[oracle@sypmdg 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

假设删除三天前的归档(即只保留三天的归档日志):

[oracle@sypmdg 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

[oracle@orhel 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请放在同一行)
[oracle@orhel arch]$ cat del_arch.rcv

connect target

delete noprompt archivelog all;         (全部清除,不保留,实际情况不建议这么做)

[oracle@orhel arch]$ crontab -l

40 * * * * /arch/del_arch.sh

[oracle@orhel ~]$ sqlplus / as sysdba
手动生成归档日志文件:

SQL> alter system switch logfile;
查看归档日志生成情况:



直接运行脚本:



归档日志已经清除且产生记录日志:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息