CentOS7下设置定期清理Oracle归档日志
Posted hawking8su
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7下设置定期清理Oracle归档日志相关的知识,希望对你有一定的参考价值。
Oracle归档日志若不定期清理将占用很大存储空间,在Linux环境下我们可以用shell脚本实现清理(Window下用bat同理)。
1. 查看归档日志存放位置
用oracle用户登录
[oracle@localhost data]$ sqlplus sys/password as sysdba SQL> show parameter recover;
如果更改过归档日志路径,请执行archive log list;
查看:
SQL> archive log list;
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 / <<EOF crosscheck archivelog all; #检查归档 delete noprompt expired archivelog all; #删除无效归档 delete noprompt archivelog until time ‘sysdate-7‘; #删除7天前日志 exit; EOF
[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归档日志的主要内容,如果未能解决你的问题,请参考以下文章