oracle 11g生產環境清理歸檔日誌腳本
阿新 • • 發佈:2019-01-25
情況 efi bho ram 時間段 sys ini 定時 讀寫權限
最近幾個客戶生產環境都遇到一些故障,原因就是開歸檔,沒有部署刪除歸檔定時任務,以下大家可以參考,經過本人測試,在生產環境上正常運行。
**roidba刪除歸檔日誌腳本** 一、基於RHEL6服務器端的歸檔日誌刪除腳本 生產庫部署環境: 數據庫:Oracle 11.2.0.4 操作系統:RHEL 6.6 第一步:設置control_file_record_keep_time 此參數很重要,備份記錄、歸檔記錄等都會存放在控制文件中,而此參數提供保留記錄的時間段,默認值為7天。通常我們要設置此參數大於備份文件保留的時間段。這裏我們設置31天。 操作如下: SQL> show parameter keep_time NAME TYPE VALUE ---------------------------------------- ---------------------- ------------------------------ control_file_record_keep_time integer 7 SQL> SQL> alter system set control_file_record_keep_time=31 scope=both; --動態參數 SQL> show parameter keep_time NAME TYPE VALUE ---------------------------------------- ---------------------- ------------------------------ control_file_record_keep_time integer 31 第二步:創建detele_archivelog.sh腳本 選擇存放腳本的路徑 $ mkdir -p /home/oracle/scripts?? --創建腳本存放目錄 $ cd /home/oracle/scripts?? --打開/home/oracle $ touch delete_archivelog.sh? --創建腳本 $ chmod 755 delete_archivelog.sh?? --賦予讀寫權限 $ vi delete_archivelog.sh? --編輯腳本 註意修改ORACLE_SID?,log路徑要寫絕對路徑,不寫絕對路徑會導致單獨執行成功,定時任務執行時找不到對應的log 腳本:? ? cat > /home/oracle/scripts/delete_archivelog.sh <<eof #!/bin/bash #Author Roidba #FileName: delete_archivelog.sh #Date: 2019-01-25 #DESC: Delete all complete before 5 days archivelog. export ORACLE_SID=orcl export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 $ORACLE_HOME/bin/rman log=/home/oracle/scripts/rman_archive.log <<EOF connect target sys/oracle@orcl run{ crosscheck archivelog all; delete noprompt expired archivelog all; delete noprompt archivelog all completed before ‘sysdate - 5‘; } exit; EOF eof 第三步:執行detele_archivelog.sh腳本 $sh delete_archivelog.sh?? --執行腳本 查看對應日誌執行成功 第四步:添加crontab計劃任務 使用oracle用戶添加例行任務: crontab -l --查看計劃任務 crontab -e --編輯計劃任務 新打開的窗口中添加一下內容: 0 1 * * * /home/oracle/scripts/delete_archivelog.sh ----每天1點執行 編輯完成後按Esc鍵,輸入“:wq”存盤退出 關於crontab每一列的含義可以參考一下內容: # more /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 第五步:執行驗證 1、查看執行計劃是否自動啟動 ps -ef | grep crond #判斷定時服務是否啟動 service crond start|stop|restart #啟動、停止或重啟服務 crontab -l #查看是否有正確添加定時任務 2、crontab成功執行驗證: 在root下執行tail -f /var/log/cron,監控cron日誌來確保crontab的成功執行: 在oracle下執行tail -f /var/spool/mail/oracle 或者在 oracle 下執行mail 查看最近的日誌看執行情況
oracle 11g生產環境清理歸檔日誌腳本