解決oracle歸檔日志寫滿了(ORA-00257)的問(wèn)題
解決ORA-00257: archiver error. Connect internal only, until freed
此問(wèn)題屬于歸檔日志滿了。
解決辦法:
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE; --查看歸檔內(nèi)容使用情況
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE 0 0 0
ONLINELOG 0 0 0
ARCHIVELOG 99.9 0 255
BACKUPPIECE 0 0 0
IMAGECOPY 0 0 0
FLASHBACKLOG 0 0 0
注:可以看出,ARCHIVELOG日志已經(jīng)達(dá)到99.9%了。要把它清除掉!
SQL> quit
C:\Documents and Settings\Administrator>rman
RMAN> connect target system/myoracle@orcl
注:system為oracle用戶,myoracle為oracle用戶密碼,orcl為連接的數(shù)據(jù)庫(kù)名稱SID。
RMAN> crosscheck archivelog all;
RMAN> delete expired archivelog all;
注:刪除過(guò)期的歸檔
這樣就把歸檔文件刪除了。再進(jìn)入sqlplus 查看ARCHIVELOG日志使用率!
第二種方法就是增大閃回日志文件的最大大小。如下:
alter system set DB_RECOVERY_FILE_DEST_SIZE=10g
以上處理方法是當(dāng)遇到出現(xiàn)日志寫滿報(bào)錯(cuò)時(shí)的處理,建議最好做個(gè)任務(wù),定時(shí)刪除日志,如下:
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; //刪除七天前的歸檔
DELETE ARCHIVELOG FROM TIME 'SYSDATE-7'; //刪除七天到現(xiàn)在的歸檔