一、概述
在linux和windows平台,数据库版本11.2.0.4执行shutdown immediate后,数据库挂起,一直处于等待状态。
检查alert日志出现
SHUTDOWN: waiting for active calls to complete.
二、处理方法
2.1、检查是否有活动会话
select sid,username,program from v$session;
检查是否有SYSTEM、SYSMAN、DBSNMP、SYSMAN等代理用户通过代理程序连接的连接,如OEM等。如果存在,踢出这些会话再关机。也可以主机层面踢出活动会话
ps -ef|grep LOCAL=NO
kill - 9 xxx
这是因为pmon正在等待清理进程但又无法清理他们,所以手工杀死后允许pmon进行清理。
2.2、因为僵尸进程导致
查看是否存在锁,如果是僵尸进程持有的锁,那么处理方法如下
shutdown abort
startup restrict
shutdown normal
2.3、其它
如果进程出现,检查vsession和v$process是否有活动进程。可以通过设置等待事件查看关机时系统在做什么
alter session set events '10400 trace name context forever, level 1';
shutdown immediate;
三、参考文档
Shutdown Immediate Hangs / Active Processes Prevent Shutdown (Doc ID 416658.1)
Alert Log: Shutdown Waiting for Active Calls to Complete (Doc ID 1039389.6)
What Is The Fastest Way To Cleanly Shutdown An Oracle Database? (Doc ID 386408.1)
Differences Between the Startup and Shutdown Procedures (Doc ID 1020192.6)