ORA-00257: archiver error. Connect internal only, until freed
在網(wǎng)上搜索得知,上述錯(cuò)誤是由于歸檔日志(archive log)已滿引起的。
解決辦法:
1、使用sysdba用戶登錄查看archive log 存放位置:
conn /as sysdba
如果無法使用查詢語句,則先關(guān)閉數(shù)據(jù)庫
shutdown abort
然后再啟動(dòng)數(shù)據(jù)庫
startup mount

show parameter log_archive_dest;

2、一般VALUE為空時(shí),可以用archive log list;檢查一下歸檔目錄和log sequence:

3、檢查flash recovery area的使用情況,可以看見archivelog已經(jīng)很大了,達(dá)到99.63%:
select * from v$flash_recovery_area_usage;

4、計(jì)算flash recovery area已經(jīng)占用的空間:
select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;

5、找到recovery目錄, show parameter recover
show parameter recover;

6、由上可見,歸檔位置用的是默認(rèn)值,放在flash_recovery_area下,而且已經(jīng)超出最大空間,即然已超出,那就轉(zhuǎn)移或清除對(duì)應(yīng)的歸檔日志, 刪除一些不用的日期目錄的文件,注意保留最后幾個(gè)文件。具體路徑為E:\app\Administrator\flash_recovery_area\orcl\ARCHIVELOG
注意:?
在刪除歸檔日志后,必須用RMAN維護(hù)控制文件,否則空間顯示仍然不釋放。
7、 登錄rman,檢查一些無用的archivelog,在CMD中輸入:
rman target /

crosscheck archivelog all;

8、刪除過期的歸檔,delete archivelog until time ‘sysdate-1’ ; 刪除截止到前一天的所有archivelog
delete archivelog until time 'sysdate-1' ;

輸入”YES”后刪除。
9、再次查詢,發(fā)現(xiàn)使用率正常,已經(jīng)降到1.02
select * from v$flash_recovery_area_usage;

至此,登錄時(shí)不再提示ORA-00257錯(cuò)誤。