利用ipcrm清除数据库crash后没有释放的内存段

某测试库,开发报告无法连接使用,登陆进该server,首先输入ps –ef | grep ORACLE_SID发现该instance没有启动,

查看alertlog,日志显示11280:00db有过一次日志切换,10分钟后开始出现7445错误,过一会dbw0进程dead,然后PMON进程terminated,此时数据库crash

紧接着是启动数据库,版本为10.2.0.4,在open阶段报告错误

ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option

如此反复了几次数据库始终没有正常启动

仅从以上错误很容易让人联想到是数据库升级没有成功,需要升级一下数据字典即可;但是alertlog并没有数据库曾经升级过的记录,而且此套数据库有好几个公司维护,也很难求证此前数据库有过什么重大变更。

正在纠结于要不要根据提示升级数据字典时,一条重要线索出现,该数据库原本是10.2.0.5的,自从crash后才有人试图以10.2.0.4的版本将其启动,怪不得会有上述错误。

重新设置LD_LIBRARY_PATH/ORACLE_HOME10.2.0.5,以sysdba登陆,应该显示connected to a idle instance才对,可此次只提示session connected

输入startup,报告ORA-03113: end-of-file on communication channel

输入shutdown immediate,报告ORA-01033: ORACLE initialization or shutdown in progress

再次运行ps –ef | grep ORACLE_SID,后台进程并没有启动,运行ipcs –m | grep oracle返回10条记录,而ps –ef | grep pmon | -V “grep”返回9条,原因终于找到了。

数据库crash的时候,对应的共享内存段并没有被OS及时释放,才导致既无法启动又无法关闭的怪现象。

解决办法:ipcs –m | grep oracle找到对应的nattach0的记录,然后运行ipcrm –m id即可释放对应的共享内存段;此时再次登陆,敲入startup即可正常启动数据库,版本10.2.0.5

 

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

转载于:http://blog.itpub.net/15480802/viewspace-712517/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值