归档日志引发的血案

一、起因

   早上来收到如下图片,说是数据库崩了,很慌,毕竟不是很懂oracle,打开图片一看报错很明显,心里瞬间舒服了。

二、临时解决方式

  搜了一圈有的说归档日志写满,需要删除归档日志。有的说闪回日志写满,关闭闪存日志。想想从来没设置过归档日志大小,因此

首先查看归档日志设定的大小。

show parameter db_recovery_file_dest;

  结果显示db_recovery_file_dest_size big integer很小很小,可能就是这个问题了,先删删归档日志吧,删除后数据库可以正常使用。删除方式如下:

归档日志删除方式:https://blog.csdn.net/ctypyb2002/article/details/78241947(归档日志是oracle灾难恢复的必要数据,不要全部删除)

  归档日志太小了,即使删除也只会临时解决以恢复数据库正常运行,将归档日志使用空间大小调大,根据磁盘大小适当调节,命令如下:

alter system set db_recovery_file_dest_size=214748364800;
这里调成200g(200*1024*1024*1024)

三、永久解决方式

  仔细想想即使扩容到200g也总会满的,只是时间问题而已,搜了一些文档归档日志无法设置自动删除,只能靠系统来帮助解决了,主要步骤如下:

1.创建一个删除归档日志的脚本,linux系统参考如下两个地址:

  https://blog.csdn.net/javaee_ssh/article/details/36906413

  https://blog.csdn.net/jaune161/article/details/50453868

 windows系统参考如下地址:

  https://blog.csdn.net/killvoon/article/details/49023335

  http://blog.itpub.net/8196567/viewspace-1118670/

2.linux中赋予执行权限,windows改成可执行文件。

3.添加到定时任务中。

 

猜你喜欢

转载自www.cnblogs.com/ltlinux/p/9667330.html