oracle歸檔日志占滿系統(tǒng)存儲空間,導(dǎo)致數(shù)據(jù)庫啟動失敗;
存儲空間占滿導(dǎo)致rman工具無法使用,無法刪除過期歸檔日志。
告警信息:
1、 存儲空間滿,/opt占用率達到100%;
2、無法進入數(shù)據(jù)庫操作;
3、無法使用rman工具清除過期歸檔日志。
1、通過命令檢查存儲空間被哪個目錄占用了,最深查詢到第八層目錄:du -h --max-depth=8。查詢到/opt/oracle/archivelog有142G這么大,打開看有3000+的dbf文件,通過文件目錄結(jié)構(gòu)分析,此為數(shù)據(jù)庫歸檔文件。
2、刪除數(shù)據(jù)庫歸檔文件。
首先切換oracle用戶
su – oracle
cd /opt/oracle/archivelog
執(zhí)行下面命令刪除7天以前的歸檔日志:
find . -xdev -mtime +7 -name "*.dbf" -exec rm -f {} \;
3、執(zhí)行rman邏輯上刪除過期日志
rman
RMAN> connect target /
>crosscheck archivelog all;
>delete expired archivelog all;
>quit
4、關(guān)閉數(shù)據(jù)庫歸檔日志:
登錄數(shù)據(jù)庫:!sql
SQL> shutdown immediate
啟動了實例,并加載了數(shù)據(jù)庫 SQL> startup mount
歸檔->非歸檔 SQL> alter database noarchivelog;
檢查是否成功 SQL> archive log list
5、啟動數(shù)據(jù)庫,完成。
SQL>alter database open;
此后,不再生成歸檔日志。
打開歸檔日志時,DBA定時清理歸檔文件,避免再次占滿;
如不使用,關(guān)閉歸檔日志。