暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle故障处理-数据库无法启动

IT小Chen 2021-04-14
1686

Oracle故障处理-数据库无法启动

 

环境:

DB:Oracle 11.2.0.1.0

OS:Windows Server 2008

问题:

同事反馈数据库在下午2点多自动宕机,无法启动,并且最近几天数据库没有做过任何维护变更。

现象:

远程尝试重启Oracle服务,报错如下:

先将自动启动实例关闭,尝试手动启动实例。

执行startup nomount启动实例,命令一直卡住没有返回结果。

观察Oracle.exe占用内存一直上升,达到操作系统内存最大值后,服务器自动重启。

服务器重启后问题依旧,执行startup nomount卡住,Oracle.exe占用内存继续飙升。

查看告警日志没有报错也没有输出。

猜测是否在启动实例时分配内存出来问题?

尝试多次修改参数文件,将内存不断缩小,但是问题依旧存在。

突然想到既然数据库在问题期间没有任何变更,会不会有可能是操作系统在问题期间做过哪些自动更新导致数据库无法启动呢?

检查操作系统Setup日志,果然在问题时间点,操作系统自动更新了KB4012212补丁。

解决方案:

由于问题时间点完全吻合,所以猜测数据库无法启动实例、Oracle.exe异常消耗内存和KB4012212更新有关,手动卸载掉KB4012212,再次重启服务器,数据库终于可以正常启动了。建议Windows关闭自动更新,比较重要的更新,可以充分测试没问题后再手动更新。

注意:

这是175月处理的一个案例,后来又接手了一个问题现象完全一样的案例,当时也是自信的以为将操作系统上自动更新补丁卸载后就能解决问题,但是在卸载掉补丁重启服务器后发现问题依旧,最终解决办法是在另一台数据库服务器上搭建一个空数据库,然后将生产库上所有的控制文件、数据文件、日志文件拷贝过来,就可以正常启动数据库了,相当于通过数据库物理文件迁移数据库到另一个服务器上。

文章转载自IT小Chen,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论