一次shutdown immediate hang处理过程

一次数据库割接,管理员在关闭数据库过程中执行如下命令:

shutdown immediate

发现很长时间不能正常关闭数据库。查看alert日志发现如下内容:

MMNL absent for 2207 secs; Foregroundstaking over,hang住很长时间不能关闭。

The database iswaiting for pmon to clean up processes, but pmon is unable to clean them. Theclient connections to the server are causing the shutdown immediate or normalto hang.  Killing them allows pmon toclean up and release the associated Oracle processes and resources.

--数据库等待PMON 进程清理这些LOCAL=NO的进程,但是PMON 进程不能清理他们,这些进程就会导致数据库shutdown 时hang住,kill 掉这些进程,然后让PMON 来清理和释放其他的数据库进程和资源,完成数据库关闭操作。

 

于是直接采用shutdown abort的方式关闭了数据库,shutdown abort后发现直接进行了HA切换。当HA切换到当前的机器时发现startup不能正常启动,提示共享内存依然存在。

使用如下命令进行查看发现确实存在原来的共享内存段;

ipcs -ma (其中attch列表示连接的进程数)

根据id进行删除

ipcrm -m shmid

再次查看发现内存段依然存在只是mode 列变成的D-,数据库已经能够正常启动(但是attach列不为0,不能自动移除),第二天发现一个异常的sqlplus进程,根据pid号去v$process中查询不存在,绝对将此sqlplus进程删除,

kill -9 pid

删除后共享内存自动释放。解决完成。

总结:1 -数据库等待PMON 进程清理这些LOCAL=NO的进程,但是PMON 进程不能清理他们,这些进程就会导致数据库shutdown 时hang住,kill 掉这些进程,然后让PMON 来清理和释放其他的数据库进程和资源,完成数据库关闭操作。

            2 对于共享内存段的管理与操作,ipcs -ma 以及ipcrm -m shmid,和attach理解。

你可能感兴趣的:(ORACLE数据库故障处理分析)