欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle归档日志写满(ora-00257)了怎么办

程序员文章站 2024-01-13 18:32:52
oracle数据库报错ora-00257: archiver error. connect internal only, until freed ,如何解决呢?此问题定位在...

oracle数据库报错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为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'; //删除七天到现在的归档 

以上内容是关于oracle归档日志写满(ora-00257)了的解决办法,希望大家喜欢。