歸檔文件存儲空間不足,導(dǎo)致出現(xiàn)該問題。
當(dāng)我們將數(shù)據(jù)庫的模式修改為歸檔模式的時候,如果沒有指定歸檔目錄,默認(rèn)的歸檔文件就會放到Flash?Recovery Area的目錄,但是這個目錄是有大小限制的,如果超過了這個大小,就會導(dǎo)致2個問題,一是不能完成歸檔,二是,在出現(xiàn)問題后,如果此時重啟數(shù)據(jù)庫,那么數(shù)據(jù)庫就無法正常啟動。
解決方法有 三個方案。(1)擴(kuò)大Flash Recovery Area的容量(2)刪除不用的歸檔日志文件(3)指定歸檔日志文件到其他目錄
方案一:
db_recovery_file_dest_size 修改大一點
SQL> alter system set db_recovery_file_dest_size=30G;
系統(tǒng)已更改。
重啟服務(wù),查看信息就正常了。
方案二:
刪除之前的歸檔文件,清理出空間
數(shù)據(jù)庫在某臺Linux服務(wù)器下
- 連接oracle?
# su - oracle
- 使用sysdba用戶登錄?
$ sqlplus /nolog
?SQL> conn /as sysdba
?
1、查看archive log 存放位置:
SQL> show parameter log_archive_dest;?
2、一般VALUE為空時,可以用archive log list;檢查一下歸檔目錄和log sequence
SQL> archive log list;?
3、檢查flash recovery area的使用情況,可以看見archivelog已經(jīng)很大了,達(dá)到95.16
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;?
4、計算flash recovery area已經(jīng)占用的空間
SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;?
5、找到recovery目錄, show parameter recover
SQL> show parameter recover;?
6、上述結(jié)果告訴我們,歸檔位置用的是默認(rèn)值,放在flash_recovery_area下(db_recovery_file_dest目錄=/u01/app/oracle/fast_recovery_area)
$ echo $ORACLE_BASE
?
$ cd ORACLE_BASE/fast_recovery_area/archivelog?
?
轉(zhuǎn)移或清除對應(yīng)的歸檔日志, 刪除一些不用的日期目錄的文件,注意保留最后幾個文件(比如360以后的)
注意:?
在刪除歸檔日志后,必須用RMAN維護(hù)控制文件,否則空間顯示仍然不釋放。
7、rman target sys/pass
8、檢查一些無用的archivelog
9、刪除過期的歸檔
RMAN> delete expired archivelog all;?
delete archivelog until time ‘sysdate-1’ ; 刪除截止到前一天的所有archivelog
10、 再次查詢,發(fā)現(xiàn)使用率正常
方案三:
推薦使用這個辦法 alter system set?log_archive_dest_1='location=/db/oracle/oradata/archive_log'文章來源:http://www.zghlxwxcb.cn/news/detail-767353.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-767353.html
到了這里,關(guān)于ORA-00257: archiver error. Connect internal only, until freed 的解決方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!