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】歸檔日誌管理-設定歸檔日誌路徑以及歸檔日誌冗餘Oracle
- Shell指令碼 | 抓取log檔案指令碼
- 歸檔日誌挖掘
- PostgreSQL 歸檔日誌SQL
- oracle歸檔日誌Oracle
- shell指令碼之批次清空檔案指令碼
- 歸檔oracle alert日誌Oracle
- 14. 日誌歸檔
- Oracle歸檔日誌清理Oracle
- Linux系統配置檔案簡易shell備份指令碼Linux指令碼
- Oracle使用備份檔案集恢復歸檔日誌Oracle
- shell指令碼技巧—建立和清空檔案指令碼
- linux 日誌log檔案 截斷Linux
- 手工rm刪除歸檔日誌對備份歸檔日誌的影響
- Oralce資料庫關閉歸檔日誌並且刪除歸檔日誌資料庫
- 在Oracle中,如何定時刪除歸檔日誌檔案?Oracle
- [ Shell ] 通過 Shell 指令碼匯出 GDSII/OASIS 檔案指令碼
- 批量註冊歸檔日誌
- 共享一個iptables的shell指令碼檔案指令碼
- shell 備份檔案指令碼+自動清理指令碼
- Shell指令碼逐行處理文字檔案技巧指令碼
- linux中用shell指令碼對tomcat和nginx做日誌切割Linux指令碼TomcatNginx
- Linux中log檔案是什麼意思?Linux日誌檔案說明Linux
- Linux檔案系統與日誌分析Linux
- linux檔案系統和日誌分析Linux
- Linux 日誌檔案系統如何工作Linux
- DG歸檔日誌缺失恢復
- ArgoWorkflow教程(四)---Workflow & 日誌歸檔Go
- logminer異機挖掘歸檔日誌
- 如何在Shell指令碼中逐行讀取檔案指令碼
- Linux下日誌檔案過大解決方案Linux
- Linux--檔案系統與日誌分析Linux
- linux 查詢某個日期以後修改過哪些檔案 shell指令碼Linux指令碼
- shell檢測檔案是windows格式還是unixWindows
- 在Linux中,有一堆日誌檔案,如何刪除7天前的日誌檔案?Linux
- 達夢資料庫DM8之刪除歸檔日誌檔案資料庫
- rman 還原歸檔日誌(restore archivelogRESTHive
- oracle11G歸檔日誌管理Oracle
- 如何讓shell指令碼變成可執行檔案指令碼