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

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

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

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

未果。

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

  1. $ rm -rf 2007*
  2. ...


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

  1. $ rman target /
  2. RMAN>crosscheck archivelog all;
  3. RMAN> delete expired archivelog all;
  4. RMAN> delete obsolete;

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

  1. 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 Responses to “如何解决ORACLE 10g自动归档日志满了的问题”

  1. 村夫 Says:

    已然不错了,向你学习!

    [Reply]

  2. tsingove Says:

    哈哈,我也遇到过归档满了的问题。

    [Reply]

  3. star Says:

    你的情况和我是一样的,总是做一些我不想做的事,更可气的是工作没有做完就给我按排到另的工作中去,到头下来好像没有一个项目是从头到尾做完的,而技术更没有什么提升……我真的想专注的做一件事呀!~~

    [Reply]

评论: