有时候在关闭数据库时,发出shutdown immediate;命令后一直未关闭。查看ALERT日志。在等待一段时间后日志中有提示:
SHUTDOWN: waiting for active calls to complete.
原因是有些进程无法被PMON进程清理。导致SHUTDOWN时无法关闭而HANG住。
==》依据观察,在ORACLE10G及以上版本号。会是例如以下提示:(2015/11/24最新验证ORACLE9206中也会提示进程号)
Active call for process 12345 user ‘oracle‘ program ‘oracle@abcd‘
SHUTDOWN: waiting for active calls to complete.
也就是指出哪个进程引起的等待。此时kill -9 12345 进程就可以。
==》可是在ORACLE 8I版本号中,是不会提示哪个进程ACTIVE引起关闭进程HANG的。提演示样例如以下:
Sun Jul 26 21:42:38 2015
ARC0: Beginning to archive log# 6 seq# 393635
ARC0: Completed archiving log# 6 seq# 393635
Sun Jul 26 21:42:54 2015
Shutting down instance (immediate)
License high water mark = 235
Sun Jul 26 21:48:02 2015
SHUTDOWN: waiting for active calls to complete.
这样的情况下。仅仅好查找 ps -ef|grep LOCAL=NO 相关进程都kill掉等处理思路。
==》假设是WINDOWS平台,没有进程能够来KILL,最好方法就是停止ORACLE数据库的服务了。
这方面资料能够參考MOS的文档:
Alert Log: Shutdown Waiting for Active Calls to Complete (文档 ID 1039389.6)
怎样以最快方式干净的关闭数据库? (文档 ID 1577321.1)
近期遇到一次ORACLE 8.1.7.4.0数据库的关闭操作时,在关闭前。依照正常关闭数据库流程进行检查和处理:
关闭监听,查看有无ps -ef|grep ora_j,查看是否有事务在执行、是否有大事务须要在又一次启动时进程回滚、多次切换归档、多次执行CHECKPOINT完毕后再关库。
在以上检查中,LOCAL=NO的会话均进行了处理,也确认了无事务执行;
可是在SHUTDOWN IMMEDIATE命令运行时。仍然HANG住并报SHUTDOWN: waiting for active calls to complete.。
等待多时后,进行查看仅仅有例如以下进程,尝试kill arc0进程。PMON进程终止实例(相当于SHUTDOWN ABORT),万幸是关机之前确认事务完毕、切换REDO/检查点 等操作均有进行,STARTUP时一切正常。
==》这样的情况下,建议在SHUTDOWN IMMEDIATE前多次切换LOGFILE,并执行检查点,同一时候确保应用已经关闭;此时无事务执行同一时候数据已经写入磁盘。假设无奈之下仅仅能SHUTDOWN ABORT或者是其他KILL进程导致SHUTDOWN ABORT,也非常少会造成数据损坏(如数据文件、REDO LOG损坏)导致的实例启动异常。
日志例如以下:
Sun Jul 11 21:50:57 2015
Errors in file /oracle/8.1.7/admin/AAA/bdump/pmon_26680_aaa.trc:
ORA-00473: ARCH process terminated with error
Sun Jul 11 21:50:57 2015
PMON: terminating instance due to error 473
Instance terminated by PMON, pid = 26680
进程例如以下
oracle 17016 1 0 Feb 11 - 60:13 ora_arc0_aaa
oracle 18346 1 0 Feb 11 - 1568:00 ora_lgwr_aaa
oracle 18858 1 0 Feb 11 - 0:02 ora_reco_aaa
oracle 22528 1 0 Feb 11 - 122:02 ora_dbw0_aaa
oracle 26680 1 0 Feb 11 - 55:24 ora_pmon_aaa
oracle 28856 1 0 Feb 11 - 6:02 ora_smon_aaa
oracle 29776 1 0 Feb 11 - 67:07 ora_ckpt_aaa
oracle 80566 67462 0 21:50:44 pts/0 0:00 grep ora_
oracle 110824 1 0 May 28 - 18:18 ora_arc1_aaa