- ora-00257 archiver error. connect as sysdba only until resolved
The archiver process received an error while trying to archive a redo log. If the problem is not resolved soon, the database will stop executing transactions. The most likely cause of this message is that the destination device is out of space to store the redo log file. Another possible cause is that a destination marked as MANDATORY has failed.
resolve:
該錯(cuò)誤是由于歸檔日志滿了,造成的。
查看了下V$FLASH_RECOVERY_AREA_USAGE,看看歸檔目錄使用的情況。果然是歸檔滿了。
SQL> SELECT * FROM V$FLASH_RECOVERY_AREA_USAGE;
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%了。造成歸檔滿的原因是因?yàn)橛幸粋€(gè)用戶在做大量更新操作,由于更新操作產(chǎn)生大量重做日志,歸檔日志切換頻繁。解決方法是要把大量歸檔日志清除掉!有兩種方式可以解決該問題。一使用RMAN清除歸檔日志。二修改閃回恢復(fù)區(qū)的大小DB_RECOVERY_FILE_DEST_SIZE。
第一種使用RMAN清除歸檔日志:
$rman target /
RMAN> crosscheck archivelog all;
RMAN> delete noprompt expired archivelog all;
第二種方法就是增大閃回恢復(fù)區(qū)的大小:
SQL>alter system set DB_RECOVERY_FILE_DEST_SIZE=8G;
在歸檔數(shù)據(jù)中要制定備份策略。以免造成該問題。
configure retention policy to recovery window of 15 days;
或者在備份時(shí)刪除日志信息。
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; //刪除七天前的歸檔
DELETE ARCHIVELOG FROM TIME 'SYSDATE-7'; //刪除七天到現(xiàn)在的歸檔