您的位置:首页 > 其它

解决ORA-00257: archiver error. Connect internal only, until freed

2014-01-27 14:27 447 查看
解决ORA-00257: archiver error. Connect internal only, until freed

 

此问题属于归档日志满了。

解决办法:

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日志已经达到99.9%了。要把它清除掉!

SQL> quit

C:\Documents and Settings\Administrator>rman

RMAN> connect target
system/myoracle@orcl

注:system为oracle用户,myoracle为oracle用户密码,orcl为连接的数据库名称SID。

RMAN> crosscheck archivelog all;

RMAN> delete expired archivelog all;

注:删除过期的归档

这样就把归档文件删除了。再进入sqlplus 查看ARCHIVELOG日志使用率!

 

第二种方法就是增大闪回日志文件的最大大小。如下:

alter system set DB_RECOVERY_FILE_DEST_SIZE=10g

 

以上处理方法是当遇到出现日志写满报错时的处理,建议最好做个任务,定时删除日志,如下:

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; //删除七天前的归档  

DELETE ARCHIVELOG FROM TIME 'SYSDATE-7'; //删除七天到现在的归档 

 

在数据库服务器上新建一个bat文件(文件名随意)

编辑此文件为:
rman target 'sys/password' cmdfile 'd:\cmd.txt'―――此处路径、文件名随意

在命令中对应的路径下新建cmd.txt文件,打开编辑此文件,
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
然后在windows计划任务里添加任务,指定每天定时执行此bat文件。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: