« 关于应用可扩展性 | (回到Blog入口) | 转贴一个 VMWare的虚拟机上网的方法 »

关于归档日志空间满这件事

这件事遇到已经不是一次两次了,而是, 我处理的客户就有5个,有大客户,大得有几十个数据库,有小客户,只有一台pc server。
可见这种问题发生的普遍性,貌似没有技术的事情,但是遇到就是大问题,因为生产停止了。

总结起来,不外乎几种原因:

1.业务异常
这好像是最主要的原因
2.dba不懂得删(确实有)


业务异常的情况,有次遇到是9204的bug,做报表时使用了临时表,而9204里面有个bug,临时表的redo 比普通表还大好多(正常情况临时表的redo很少),这样看报表时归档日志那个快,一分钟100M,甚至删都来不及。
还有个客户,就是我最近遇到的这个,这个系统比较复杂,一个数据库上有几个应用,不同的应用的数据是不同的开发商维护的(乱),有个应用的开发商前几天删数据,导致归档日志狂增,增到来不及备份释放空间,结果就挂了。
另外一个大客户,前面几乎每周都有这个事情,也是业务突然有变化,归档空间不够大,发生了几次。

dba不懂的,我只遇到一个,真是不懂。

解决方法:原因找到了,问题就好解决,改扩大空间的扩大空间,改增加备份频率的增加备份频率。

但是救急的解决方法很重要,比较简单的,就是把归档日志移动到其他目录(不要删)。
然后 archive log start;启动归档进程,业务马上恢复。
如果空间比较多,而且是aix的,那么可以临时调大归档空间,最容易了。(一般大客户才有这个条件);
如果把文件移走了,后面rman备份时找不到,也是个问题。
在备份前要先change archivelog all crosscheck,让oracle检查一下哪些归档日志实际不存在,就不会去备份,否则因为找不到而备份失败。 后面可以再通过change ... available把移走的归档日志状态改回来,下次备份的时候,这些归档日志还可以被备份。

另外有个方法,我没有测试过,frank提出来的。就是备份归档日志时,把最后切换归档日志那句去掉,这样不会因为没有空间导致切换日志失败,导致备份归档日志失败。因为一般备份归档日志后都会删除这些归档日志,这样也可以解决空间不足的问题。

对这些问题,主要是每天检查归档日志备份是否成功,以及业务是否有变化。

评论 (23)

hsjmloqg vuqba lgpu sxydo xyhcurm nesoy regaomful

发表一个评论

关于

此页面包含了发表于2007年08月18日 晚上10时30分的 Blog 上的单篇日记。

此 Blog 的前一篇日记是 关于应用可扩展性

此 Blog 的后一篇日记是 转贴一个 VMWare的虚拟机上网的方法

更多信息可在 主索引 页和 归档 页看到。

Powered by
Movable Type 3.34