Linux/Unix shell 指令碼清除歸檔日誌檔案
對於DEV以及UAT環境,有些時候,資料庫需要處於歸檔模式,但並不需要備份資料庫。因此,archive歸檔日誌不停的增長導致磁碟空間被大量耗用。對於這種情形,可以使用一個shell指令碼來定時自動清除這些歸檔日誌。本文給出了清除歸檔日誌的指令碼。
1、清除歸檔日誌shell指令碼
- robin@SZDB:~/dba_scripts/custom/bin> more remove_arch_dump.sh
- #!/bin/bash
- # ------------------------------------------------------------+
- # FileName: remove_arch_dump.sh |
- # Desc: |
- # Remove old archived log and data pump file |
- # Usage: |
- # ./remove_arch_dump.sh |
- # |
- # Authror : Robinson |
- # Blog : http://blog.csdn.net/robinson_0612 |
- # ------------------------------------------------------------+
- filename=/etc/oratab
- cat $filename | while read LINE
- do
- case $LINE in
- \#*) ;; #comment-line in oratab
- *)
- ORACLE_SID=`echo $LINE | awk -F: '{print $1}' -`
- echo $ORACLE_SID
- # ---------------------------------
- # define archived log directory
- # ---------------------------------
- dir=/u02/database/$ORACLE_SID/archive/
- echo $dir
- filelist=`ls -t $dir`
- echo $filelist
- # ----------------------------------------------------------
- # start to remove archived log and keep last 2 archived log
- # ----------------------------------------------------------
- count=0
- for filename in $filelist
- do
- echo $filename
- count=$(($count+1))
- if [ $count -gt 2 ]; then
- echo $count
- rm -vrf $dir$filename
- fi
- done
- ls -tr $dir
- # --------------------------------
- # define data pump dump directory
- # --------------------------------
- dir=/u02/database/$ORACLE_SID/BNR/dump/
- echo $dir
- filelist=`ls -t $dir`
- echo $filelist
- # ---------------------------------------------------------
- # start to remove data pump file and keep last 5 dump file
- # ---------------------------------------------------------
- count=0
- for filename in $filelist
- do
- echo $filename
- count=$(($count+1))
- if [ $count -gt 5 ]; then
- echo $count
- rm -vrf $dir$filename
- fi
- done
- ls -tr $dir
- ;;
- esac
- done
- exit
2、指令碼說明
a、該指令碼透過一個外部迴圈來讀取oratab中定義的資料庫的SID來尋找對應資料庫的歸檔日誌路徑以及datapump dump路徑。
b、使用了一個for迴圈來清除歸檔日誌,且保留最後的2個歸檔日誌檔案。
c、接下來的另一個for迴圈則用來清除當前SID下對應的dump(Oracle datapump)目錄下匯出的dump檔案。
d、同清除歸檔日誌一樣,設定了保留dump目錄最近的5個檔案。保留多少個最近的檔案(dump的5,或者歸檔日誌2)可以修改。
e、如果不需要清除dump路徑,可以將dump部分註釋掉。
f、根據需要將其部署到crontab。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23490154/viewspace-1062393/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle RMAN 清除歸檔日誌Oracle
- Oracle RMAN清除歸檔日誌Oracle
- RMAN備份歸檔日誌指令碼指令碼
- 控制檔案/歸檔日誌
- oracle 10g 歸檔日誌清除Oracle 10g
- 備份歸檔日誌檔案
- 日誌檔案和歸檔管理
- 刪除歸檔日誌檔案
- rman清除歸檔日誌經典資料
- NCR Unix 重要日誌檔案
- 日誌檔案和歸檔日誌檔案的關係以及如何切換日誌
- logmnr挖掘歸檔日誌檔案
- 改變歸檔日誌檔案大小
- DATAGUARD_standby刪除歸檔日誌的指令碼指令碼
- DataGuard已應用歸檔日誌刪除指令碼指令碼
- 歸檔日誌
- 【Oracle】歸檔日誌管理-設定歸檔日誌路徑以及歸檔日誌冗餘Oracle
- 歸檔日誌檔案無故地增長
- mysql 主從日誌檔案mysql-bin檔案清除方法MySql
- RMAN備份資料檔案+控制檔案+歸檔日誌
- 恢復歸檔日誌檔案的常用方法
- oracle歸檔日誌Oracle
- Oracle 歸檔日誌Oracle
- 歸檔日誌挖掘
- PostgreSQL 歸檔日誌SQL
- Oracle 11g Data Guard 備庫歸檔日誌清理指令碼(保留一週歸檔)Oracle指令碼
- Shell指令碼 | 抓取log檔案指令碼
- 配置RMAN清除已應用到備庫的歸檔日誌
- 【shell】日誌切割指令碼指令碼
- linux下日誌檔案error監控報警指令碼分享LinuxError指令碼
- 歸檔日誌多歸檔路徑 duplex
- 定期刪除歸檔檔案的指令碼指令碼
- 如何正確刪除ORACLE歸檔日誌檔案Oracle
- 非歸檔丟失日誌檔案的恢復
- window下刪除過舊的日誌檔案指令碼(如jboss的日誌檔案 資料庫的trace檔案)指令碼資料庫
- ORA-38708與清除Recovery Area中的歸檔日誌
- linux的日誌檔案Linux
- 歸檔oracle alert日誌Oracle