如何解决ORACLE 10g自动归档日志满了的问题

上周末的oracle 10g出现了自动归档日志满了的问题,导致oracle服务无法启动,报ORA-16038、ORA-19809、ORA-00312错误,没什么经验,瞎整一通,简单记录一下。

首先尝试把归档日志空间的设置加大:

sql>alter system set db_recovery_file_dest_size=20g scope=spfile;

未果。

接着找到默认的归档日志存放目录$ORACLE_HOME/flash_recovery_area/ORCL/archivelog/,手工删除归档文件(可适当保留最近7天的):

$ rm -rf 2007*


结果重启服务后,Rman备份检测到日志缺失,oracle服务仍无法启动。参考了一些高手的文档,试图尝试

$ rman target /
RMAN>crosscheck archivelog all;
RMAN> delete expired archivelog all;
RMAN> delete obsolete;

发现ORCL没有启动,强行startup也不行,执行不了上述命令,最后尝试执行了:

alter system set log_archive_start=TRUE scope=spfile;

重新设置归档模式,误打误撞之下,恢复了服务。

而正确的解决办法应该是使用RMAN删除过期归档。当然一般来说,在RMAN备份策略中,会设置成自动删除归档日志,为何出现那一问题,不解。

RMAN的学习和参考:
http://search.oracle.com/search/search?start=1&nodeid=&fid=&keyword=rman&group=Documentation

做的东西太多,学的东西太杂,没有一样精通的,以致于做的事情没有深度,体现不出价值。想想真是悲哀。工作中做的太多事情,并不是我想做的,而我想做的太多事情,并不是工作环境可以让我去做的。

很想专注于某一点。

3 thoughts on “如何解决ORACLE 10g自动归档日志满了的问题

发表评论

电子邮件地址不会被公开。 必填项已用*标注


*