標籤:
這個錯誤與前面遇到的ORA-16014 有點類似,也是導數過程中突然停下來,沒反應,但硬碟讀得厲害,最後強制停止,再開啟資料庫出現如下提示:
ORA-00257: archiver error. Connect internal only, until freed
在網上搜尋得知,上述錯誤是由于歸檔日誌(archive log)已滿引起的。
解決辦法:
1、使用sysdba使用者登入查看archive log 存放位置:
2、一般VALUE為空白時,可以用archive log list;檢查一下歸檔目錄和log sequence:
3、檢查flash recovery area的使用方式,可以看見archivelog已經很大了,達到102.21:
4、計算flash recovery area已經佔用的空間:
5、找到recovery目錄, show parameter recover
6、由上可見,歸檔位置用的是預設值,放在flash_recovery_area下,而且已經超出最大空間,即然已超出,那就轉移或清除對應的歸檔日誌, 刪除一些不用的日期目錄的檔案,注意保留最後幾個檔案。
注意:
在刪除歸檔日誌後,必須用RMAN維護控制檔案,否則空間顯示仍然不釋放。
7、 登入rman,檢查一些無用的archivelog
8、刪除到期的歸檔,delete archivelog until time ‘sysdate-1‘ ; 刪除截止到前一天的所有archivelog
9、重新查詢,發現使用率正常,已經降到2.22
附:如果archive log模式下不能正常startup,則先恢複成noarchive log,startup成功後,再shutdown;
shutdown immediate;
startup mount;
alter database noarchivelog;
alter database open;
shutdown immediate;
再次startup以archive log模式
shutdown immediate;
startup mount;
show parameter log_archive_dest;
alter database archivelog;
archive log list;
alter database open;如果還不行,則刪除一些archlog log
原來是日誌組一的一個日誌不能歸檔
最後,查看datafile位置
指定位置Archive Log, 請按照如下配置
或者修改大小:
至此基本解決
結語:通過兩次上述類似錯誤,發現都是歸檔模式下日誌爆滿引起的,為避免再次發生類似錯誤,建議建立策略定期刪除到期沒用的歸檔日誌。
[轉]ORA-00257 解決辦法