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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM