CentOS7下设置定期清理Oracle归档日志

Oracle归档日志若不定期清理将占用很大存储空间,在Linux环境下我们可以用shell脚本实现清理(Window下用bat同理)。

1. 查看归档日志存放位置

用oracle用户登录

[oracle@localhost data]$ sqlplus sys/password as sysdba

SQL> show parameter recover;

CentOS7下设置定期清理Oracle归档日志_第1张图片

如果更改过归档日志路径,请执行archive log list;查看:

SQL> archive log list;

CentOS7下设置定期清理Oracle归档日志_第2张图片

2. 创建归档日志存放路径

[oracle@localhost db_1]$ mkdir /home/oracle/del_log
[oracle@localhost db_1]$ mkdir /home/oracle/del_log/log
[oracle@localhost db_1]$ chown -R oracle:oinstall /home/oracle/del_log/log

3. 创建shell脚本

路径:/home/oracle/del_log

[oracle@localhost del_log]$ vi del_arc.sh
#添加以下内容
source ~/.bash_profile
#记录归档删除的日志
exec >> /home/oracle/del_log/log/del_arch`date +%F-%H`.log  
$ORACLE_HOME/bin/rman target / <
[oracle@localhost del_log]$ chmod 777 del_arc.sh #赋予执行权限
[oracle@localhost del_log]$ ./del_arc.sh #手工执行测试是否成功
[oracle@localhost del_log]$ ll log #如果产生了log文件,则测试成功

4. 添加定时任务

[oracle@localhost del_log]$ crontab -l   # 查询已有调度任务
[oracle@localhost del_log]$ crontab -e  # 编辑调度任务
# 每天凌晨1点执行,并将执行结果保存在task.log中
00 1 * * * sh /home/oracle/del_log/del_arc.sh >> /data/oracle/del_log/task.log 2>&1 &

 

参考:

https://blog.csdn.net/mgxiaomage/article/details/73863375

https://www.jianshu.com/p/8c13a4c9539e

https://blog.csdn.net/weixin_45558989/article/details/101293884

 

你可能感兴趣的:(CentOS7下设置定期清理Oracle归档日志)