亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
819
2022-05-28
一、背景
由于業務增長,頻繁的備份還原對于磁盤空間有了更大的空間需求,基本每周500G的磁盤,空間使用率都會達到85%以上,故編寫oracle清理腳本結合crond自動清理oracle歸檔日志。
二、工具介紹
RMAN(Recovery Manager)是一種用于備份(backup)、還原(restore)和恢復(recover)數據庫的 Oracle 工具。RMAN只能用于ORACLE8或更高的版本中。它能夠備份整個數據庫或數據庫部件,如表空間、數據文件、控制文件、歸檔文件以及Spfile參數文件。RMAN也允許您進行增量數據塊級別的備份,增量RMAN備份是時間和空間有效的,因為他們只備份自上次備份以來有變化的那些數據塊。而且,通過RMAN提供的接口,第三方的備份與恢復軟件如veritas將提供更強大的備份與恢復的管理功能。通過RMAN,也提供了其它更多功能,如數據庫的克隆、采用RMAN建立備用數據庫、利用RMAN備份與移動裸設備(RAW)上的文件等工作將變得更方便簡單。9i的RMAN通過增強的自動配置與管理功能,以及特有的塊級別的恢復,將使備份與恢復工作變得更加快捷與完美。
使用RMAN連接到數據庫時,默認使用SYSDBA角色登陸。
rman target / #連接進rman
DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; #刪除系統時間7天以前的歸檔日志,不會刪除閃回區有效的歸檔日志
由于物理磁盤dbf文件很多,如果進行物理刪除dbf文件較麻煩,列出以下命令供物理刪除參考
rm -rf `ls -l /home/oracle/app/arch/ |grep Apr|awk '{print }'` #PATH可以根據實際環境,刪除Apr月的所有歸檔日志
rm -rf `ls -l /home/oracle/app/arch/ |awk '{if (<20) print
rm -rf `ls -l /home/oracle/app/arch/ |awk '{if ($7<20) print$0}'` #刪除20號以前的日志
}'` #刪除20號以前的日志如果手動在磁盤清理過日志文件,需要在rman內檢查,然后刪除過期的日志
crosscheck archivelog all; #檢查所有歸檔日志 list expired archivelog all; #列出過期的歸檔日志 delete noprompt expired archivelog all; #刪除過期的歸檔日志 delete noprompt archivelog all; #清除所有的歸檔日志
三、自清理腳本
github地址
#!/bin/bash oracle_env() { source /home/oracle/.bash_profile export ORACLE_BASE=/home/oracle/app export ORACLE_HOME=$ORACLE_BASE/oracle/product/12.1.0/dbhome_1 export ORACLE_SID=orcl export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin oraclecmd="/home/oracle/app/oracle/product/12.1.0/dbhome_1/bin/sqlplus" oraclerman="/home/oracle/app/oracle/product/12.1.0/dbhome_1/bin/rman" } disk_useper=`/bin/df -Th|grep -v 'Filesystem'|awk '/\/dev\/mapper\/vg00-lv_root/{if ("$(NF)"=="/");print $(NF-1)}'|cut -d% -f1` oracle_clean() { oracle_env ${oraclerman} target /< 配合定時任務清理磁盤,此在腳本內寫的判斷磁盤使用率大于80%進行清理,也可根據自己需求進行判斷,或每次都執行清理。 數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。