ORA-00257 archiver error--資料閃回區滿導致無法歸檔

jinqibingl發表於2012-10-04

ORA-00257 archiver error--資料閃回區滿導致無法歸檔  

系統:windows server 2008 R2

資料庫版本:oracle 10.2.0.4

今天上午,一上班就發生錯誤:

ORA-00257: archiver error. Connect internal only, until freed 。

資料庫狀態:開啟但不可用。

報警日誌:

~Errors in file d:\oracle\product\10.2.0\admin\orcl\bdump\orcl_arc1_3032.trc:~ORA-16038: log 3 sequence# 87 cannot be archived~ORA-19809: limit exceeded for recovery files~ORA-00312: online log 3 thread 1: 'E:\ORACLE10GRAC\ORCL\REDO03.LOG'~

經過檢查後發現,我原先偷懶,把歸檔日誌位置放置在了資料庫預設的位置上,就是資料閃回區,這個區域,有2G的空間限制,而歸檔日誌現在就有2G的大小了,所以導致無法生成新的歸檔日誌,導致了上述錯誤。

解決辦法很多:

因為我的資料庫是OTLP線上系統,需要一直提供服務,所以我的最初想法是馬上關閉資料庫,暫時關閉歸檔模式,先提供服務,然後再解決問題。

執行命令shutdown immediate,資料庫一直不動,原因應該是各客戶端一直在連線,所以這個關閉模式,需要沒有活動客戶端,所以導致資料庫一直無法關閉,所以只能關閉重啟伺服器,讓所有客戶端掉線。

在伺服器啟動後,在關閉資料庫,在開啟資料庫到MOUNT模式下,暫時關閉歸檔模式:

alter database noarchivelog;

然後再關閉資料庫,然後再重啟,這時候就可以用了。

至於歸檔模式,可以在客戶端連線少的情況,看準時間,重新進行設定。

三種解決辦法:

方法1:關閉歸檔模式。

方法2:增加閃回資料區大小

alter system set db_recovery_file_dest_size=20G scope=both;

方法3:修改歸檔日誌位置。

 

追加:

請務必注意,如果歸檔日誌位置在閃回區,那麼務必注意閃回區容量使用情況,可以透過檢視v$flash_recovery_area_usage檢視。
 select * from v$flash_recovery_area_usage;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9606200/viewspace-745698/,如需轉載,請註明出處,否則將追究法律責任。

相關文章