歸檔日誌滿導致的資料庫掛起故障處理
當資料庫執行在歸檔模式時,如果沒有做好備份策略或歸檔檔案和備份檔案放到同一個邏輯區,則偶爾會遇到歸檔日誌滿導致系統掛起事故。在這樣情況下,重啟資料庫不僅沒有用而且將問題更復雜化(記得重啟後在HA模式下的共享儲存也不見了,進行了手工mount後進行手工刪除部分歸檔日誌)。
根據實際環境有不同處理方法,如下是比較通用的處理過程:
1、檢視資料庫日誌檔案(alert_log)
2、檢視用於歸檔日誌或備份的磁碟空間
3、刪除歸檔日誌物理檔案,歸檔日誌一般都是位於目錄下
4、把歸檔日誌的物理檔案刪除後,Oracle就可以恢復正常了,但是還沒完全把歸檔日誌刪除乾淨。登入Rman,執行如下 兩條命令:
crosscheck archivelog all;
delete noprompt expired archivelog all;
本人也經歷了幾次,雖然當時沒有做記錄,現在覺得還是有必要進行總結分享。
[@more@]
當資料庫執行在歸檔模式時,如果沒有做好備份策略或歸檔檔案和備份檔案放到同一個邏輯區,則偶爾會遇到歸檔日誌滿導致系統掛起事故。在這樣情況下,重啟資料庫不僅沒有用而且將問題更復雜化(記得重啟後在HA模式下的共享儲存也不見了,進行了手工mount後進行手工刪除部分歸檔日誌)。
根據實際環境有不同處理方法,如下是比較通用的處理過程:
1、檢視資料庫日誌檔案(alert_log)
2、檢視用於歸檔日誌或備份的磁碟空間
3、刪除歸檔日誌物理檔案,歸檔日誌一般都是位於目錄下
4、把歸檔日誌的物理檔案刪除後,Oracle就可以恢復正常了,但是還沒完全把歸檔日誌刪除乾淨。登入Rman,執行如下 兩條命令:
crosscheck archivelog all;
delete noprompt expired archivelog all;
本人也經歷了幾次,雖然當時沒有做記錄,現在覺得還是有必要進行總結分享。
1、檢視資料庫日誌檔案(alert_sid.log)
檢視日誌檔案最後100行記錄:$tail -100lf alert_sid.log
2、檢視用於歸檔日誌或備份的磁碟空間
在Linux或Unix下可以透過檢視空間使用情況: $df -h
如果使用Oracle ASM儲存技術,則透過如下命令檢視:
$export ORACLE_SID=+ASM1
$asmcmd
ASMCMD> lsdg
3、刪除歸檔日誌物理檔案,歸檔日誌一般都是位於歸檔目錄下
刪除歸檔日誌既可以手工刪除,也可以透過RMAN來刪除。如果採用手工刪除則需要進行本文第4步驟來清理控制檔案內容。
在檔案系統管理模式下手工刪除方法:
$ls -lrt --該命令按時間升序顯示檔案
$rm filename --filename為要刪除的檔名
在ASM管理模式下手工刪除方法:
ASMCMD> cd archivelog
ASMCMD> ls
2011_10_05/
2011_10_06/
ASMCMD> cd 2011_10_05
ASMCMD> ls -lrt ----該命令按時間升序顯示檔案
ASMCMD> rm filename --filename為要刪除的檔名
4、把歸檔日誌的物理檔案刪除後,Oracle就可以恢復正常了,但是還沒完全把歸檔日誌刪除乾淨。登入Rman,執行如下 兩條命令:
RMAN> crosscheck archivelog all;
RMAN> delete noprompt expired archivelog all;
透過如上處理過程,可以讓系統執行恢復正常。但是透過這個方式後清理出來空間肯能並不是很大。在一般情況先如果採用RMAN備份方案,則建議將執行如下幾行Rman命令,這樣可能清理因備份不安計劃執行等原因造成一些過期或重複的備份檔案;
RMAN> crosscheck backup;
RMAN> delete noprompt expired backup;
RMAN> delete noprompt obsolete;
RMAN> resync catalog;
最終還要總結其他兩種情況:
刪除某幾天前所有歸檔日誌的方法
當出現應急情況下,如果對資料庫備份方案熟悉,則透過如下Rman命令也可以刪除某幾天之前的所有歸檔日誌。刪除7天前所有歸檔日誌:
RMAN>run{
DELETE ARCHIVELOG UNTIL TIME 'SYSDATE-7';
}
RMAN>crosscheck archivelog all;
RMAN>delete noprompt expired archivelog all;
UNIX/LINUX下也可以透過FIND找到7天前的歸檔資料,使用EXEC子操作刪除
find /archivelog -xdev -mtime +7 -name "*.dbf" -exec rm -f {} ;
這樣做仍然會在RMAN裡留下未管理的歸檔檔案
仍需要在RMAN裡執行下面2條命令
RMAN>crosscheck archivelog all;
RMAN>delete expired archivelog all;
db_recovery_file_dest_size 引數
從Oracle10g開始,db_recovery_file_dest_size引數一般用來存放歸檔日誌(archivelog)和rman的備份集(backupset),預設值一般為2G,當備份和歸檔日誌超過該引數是也會出現ORA-19815錯誤。解決辦法就是增大db_recovery_file_dest_size 的引數值:
SQL> show parameter db_recovery_file_dest_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size big integer 2G
SQL> alter system set db_recovery_file_dest_size=4G;
系統已更改。
SQL> show parameter db_recovery_file_dest_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size big integer 4G
SQL>
透過以上街上Rman命令刪除不必要的資料並同步控制檔案或catalog庫內容。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18841027/viewspace-1055471/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 歸檔日誌滿導致的資料庫掛起故障處理【轉載】資料庫
- 歸檔日誌無法歸檔導致資料庫hang住資料庫
- oracle資料庫歸檔日誌空間滿引起的錯誤處理Oracle資料庫
- RAC資料庫大量載入資料造成歸檔日誌空間滿處理資料庫
- ASM空間爆滿導致資料庫掛起ASM資料庫
- 歸檔日誌滿造成資料庫當機資料庫
- ORACLE的歸檔空間滿導致的監聽故障資料庫無法啟動Oracle資料庫
- 【故障處理】手工刪除歸檔日誌導致RMAN備份時報ORA-19625錯誤
- 【恢復】非歸檔模式下因誤刪除資料檔案導致資料庫無法OPEN的故障處理模式資料庫
- 誤刪歸檔日誌除導致備份歸檔日誌失敗
- ARCHIVE歸檔日誌爆滿故障ORA-00257Hive
- MySQL 磁碟空間滿導致表空間相關資料檔案損壞故障處理MySql
- ASM磁碟組故障導致資料庫不能起來ASM資料庫
- 記一次:歸檔檔案系統問題導致資料庫hang處理資料庫
- 【ARCHIVE】模擬因無法歸檔導致日誌無法切換故障及一般處理方法兩則Hive
- Oralce資料庫關閉歸檔日誌並且刪除歸檔日誌資料庫
- SQL Server日誌檔案總結及日誌滿的處理SQLServer
- 【RAC】儲存陣列電源故障導致RAC資料庫異常掛起陣列資料庫
- redat 5.8由於檔案系統100%,導致oracle資料庫例項掛起處理例項Oracle資料庫
- oracle歸檔日誌滿了,導致無法啟動 ORA-03113Oracle
- Oracle資料庫的歸檔日誌寫滿磁碟空間解決辦法Oracle資料庫
- [zt] SQL Server日誌檔案總結及日誌滿的處理SQLServer
- 當ORACLE歸檔日誌滿後如何正確刪除歸檔日誌Oracle
- Oracle10g中的flashback啟用日誌歸檔,寫滿空間導致錯誤Oracle
- oracle資料庫歸檔日誌量陡增分析Oracle資料庫
- sql server日誌檔案總結及日誌滿的處理辦法SQLServer
- dg中備庫歸檔目錄滿了,導致不能接收主庫歸檔檔案
- Oracle資料庫重做日誌及歸檔日誌的工作原理說明Oracle資料庫
- 手工清除歸檔處理歸檔空間滿
- Oracle DataGuard歸檔日誌丟失處理方法Oracle
- SQLServer資料庫日誌太大處理方式SQLServer資料庫
- 歸檔目錄滿或不夠用.致資料庫down!!資料庫
- sqlldr標準輸出未處理導致批處理掛起問題SQL
- ORA-00257歸檔日誌滿
- sqlsever處理資料庫的恢復掛起狀態SQL資料庫
- 歸檔問題導致的資料庫無法啟動資料庫
- 歸檔日誌滿導致ORA-13516錯誤,awr報表不能自動收集
- 將資料庫轉換為歸檔日誌模式資料庫模式