Oracle归档日志写满(ora-00257)了怎么办
oracle数据库报错ORA-00257:archivererror.Connectinternalonly,untilfreed,如何解决呢?此问题定位在归档日志满了,下面把具体解决办法总结分享给大家。
解决办法:
SQL>select*fromV$FLASH_RECOVERY_AREA_USAGE;--查看归档内容使用情况
FILE_TYPE PERCENT_SPACE_USEDPERCENT_SPACE_RECLAIMABLENUMBER_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日志已经达到99.9%了。要把它清除掉!
SQL>quit
C:\DocumentsandSettings\Administrator>rman
RMAN>connecttargetsystem/myoracle@orcl
注:system为oracle用户,myoracle为oracle用户密码,orcl为连接的数据库名称SID。
RMAN>crosscheckarchivelogall;
RMAN>deleteexpiredarchivelogall;
注:删除过期的归档
这样就把归档文件删除了。再进入sqlplus查看ARCHIVELOG日志使用率!
第二种方法就是增大闪回日志文件的最大大小。如下:
altersystemsetDB_RECOVERY_FILE_DEST_SIZE=10g
以上处理方法是当遇到出现日志写满报错时的处理,建议最好做个任务,定时删除日志,如下:
DELETEARCHIVELOGALLCOMPLETEDBEFORE'SYSDATE-7';//删除七天前的归档 DELETEARCHIVELOGFROMTIME'SYSDATE-7';//删除七天到现在的归档
以上内容是关于Oracle归档日志写满(ora-00257)了的解决办法,希望大家喜欢。