因归档日志无法归档造成的 oracle shutdown immediate无法关闭

  今天在维护的时候,发现一个地市的数据库出现了归档日志满的错误,由于这个数据库我是部署了自动清理归档的脚本,并且每天的晚上21点就会自动清理,但是最近已经出现过两次归档日志满的问题,让人很是头疼,今天突然想到,归档的路径存放好像是默认的闪回区路径 recycle,于是查看路径:
SQL> SHOW PARAMETER LOG_ARCHIVELOG_DEST_1
返回的是空值,说明是默认的路径,以前是因为安装的时候进行的默认的安装,后来修改参数的时候并没有对归档的路径进行修改,只是对闪回区的大小进行了扩充,达到了22G,最近因为每天新增的记录持续的增加,因此才会出现归档日志满的错误,于是我马上想到要修改归档日志的脱机路径,首先看到D盘已经没有空闲空间了,对空间进行了清理之后,进入RMAN进行清理,完成之后发现数据库已经可以登录了,登录之后我在这里执行了一个释放归档文件的语句
alter system archive log current
执行之后提示ORA-16038:日志3序列号62314无法归档
ORA-19809:超出了恢复文件数的限制,在这里我没有理会这个提示,而是修改了pfile的参数文件。然后执行关闭
首先是关闭了监听器
lsnrct stop
完成之后接着开始关闭数据库 
SQL>shutdown immediate
执行之后就一直处于关闭状态,大约过了十分钟还是没有关闭,于是按下ctrl+c强制取消,然后重新以oracle dba权限登录,这个时候便提示oracle not available,随便输入一个 
archive log list 
查看归档模式 这时又提示ORA-01012: not logged on
于是强制重启 
SQL>startup force
重启之后在open阶段出现了错误
ORA-16038:日志3序列号62314无法归档
ORA-19809:超出了恢复文件数的限制
ORA-00312:联机日志3线程 1:E:\ORADATA\REDO03.LOG'
数据库无法打开,这个时候想到刚开始D盘也就是归档日志存放的目标位置,容量为空,而闪回区实际上并没有满,因此在我清理了一些无用的备份之后,数据库就已经可以登录了,而又记起来后面的ramn里面的操作几乎全是验证失败,这就是说我在ramn里面的操作并没有清理闪回区的归档,然后当D盘有了空间以后redo又开始往闪回区脱机归档日志, 知道了这一点,就容易解决了,首先是手动删除了闪回区的归档文件,然后登录ramn,登录之后提示oracle实例未打开,不知道会不会由于未打开而无法验证和删除, 执行 
crosscheck archivelog all;
发现是可以进行验证的,之后的 
delete expired archivelog all;
也顺利完成,这个时候数据库就可以正常的open了,然后再次执行关闭,这次数据库很快就关闭了,然后
执行 create spfile=‘PATH’ from pfile='PATH'; 在这里我之前已经将 LOG_ARCHIVELOG_DEST_1的路径修改到了容量更大的E盘下,以后归档日志满的问题就可以得到有效的解决了。

在这里也是一次教训,以后大家在遇到归档日志无法归档的时候一定要先将归档进行脱机之后才能执行关闭数据库的操作,否则可能会带来一些麻烦。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12216142/viewspace-620198/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12216142/viewspace-620198/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值