关闭数据库时SHUTDOWN: waiting for active calls to complete.处理

有时候在关闭数据库时,发出shutdown immediate;命令后一直未关闭,查看ALERT日志,在等待一段时间后日志中有提示:

SHUTDOWN: waiting for active calls to complete.

原因是有些进程无法被PMON进程清理,导致SHUTDOWN时无法关闭而HANG住。

==》根据观察,在ORACLE10G及以上版本,会是如下提示:

Active call for process 12345 user ‘oracle‘ program ‘[email protected]‘

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-16 14:07:56

关闭数据库时SHUTDOWN: waiting for active calls to complete.处理的相关文章

SHUTDOWN: waiting for active calls to complete

关闭数据库,alert日志: Active call for process 36176016 user 'oracle' program '[email protected]'Active call for process 23789646 user 'zed' program '[email protected] (TNS V1-V3)'Active call for process 38011128 user 'oracle' program '[email protected]'Acti

Oracle shutdown immediate命令关闭数据库时没有反应

在服务器上重启Oracle数据库服务器时,执行shutdown immediate命令没有反应 [[email protected] ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on 星期四 12月 7 22:16:31 2017 Copyright (c) 1982, 2009, Oracle. All rights reserved. SQL> connect /as sysdba 已连接. SQL> shutdow

未完全关闭数据库导致ORA-01012: not logged的解决

首先使用SHUTDOWN 没加任何参数方式关闭数据库,在数据库未关闭时CTRL+Z停止执行,退出用SQLPLUS重登陆,出现报错:ORA-01012: not logged on SQL> startupORA-01012: not logged on解决 :SQL> shutdown abortORACLE instance shut down.[[email protected] bin]$ ps -efle   11549     1  0 21:51 ?        00:00:00

恢复数据库时需要关注的scn信息

--从controlfile读取scn信息 set linesize 140 col dummy for a140 set linesize 140 numformat 999999999999999999 prompt --系统scn select checkpoint_change#  from v$database; prompt --数据文件scn select file#,checkpoint_change# from v$datafile; prompt --终止scn select

LinuxCentOS中使用SQL*Plus启动和关闭数据库

启动和关闭数据库的常用工具有三个 一.SQL*Plus 在SQL*Plus环境中,用户以SYSDBA身份连接到Oracle后,可以通过命令行方式启动或关闭数据库. 二.OEM(企业管理器) 利用OEM数据库控制台,可以完成数据库的启动与关闭操作. 三.RMAN 在Recovery Manager(RMAN)环境中可以通过命令行方式启动或关闭数据库. 一般来说我们使用的都是SQL*Plus来启动和关闭数据库 1.启动数据库: [[email protected] etc]$ sqlplus /no

day03_启动、关闭数据库

##############启动############## 1.nomount 模式[ 加载实例和spfile(参数文件)] 什么是实例? 实例是你去安装oracle,或者跑oracle的一个平台,运行库的话,首先对硬件资源有一定占用,比如说最关键就是内存,加载实例对内存有一定占用, 假如我占用了1G的内存,这1G的内存会不会给别的程序用??答案肯定是不会的,只有库能使用.硬件资源是在实例下面占有好的. 还有你开启数据库得有一些基本进程,这些进程是在实例下面启动的. 就像生活中你想盖房子,你能

Robomongo 0.9.0 连接mongo数据库时,提示连接失败 的解决方案

Robomongo 0.9.0 连接mongo数据库时,提示连接失败.(IP和端口号确定是对的) 基本注意点: 1.mongodb服务打开,打开时,指定端口号,默认为27017,使用默认值,则不用指定.2.防火墙关闭或是允许端口(6666)通过防火墙3.认证的情况下,数据库连接和用户名,密码要匹配.数据库和用户的对应关系,可以在系统数据库system.admin中的集合system.users中查看

创建oracle数据库时,出现ORA-00922: 选项缺失或无效

sdd53HOME 新建oracle数据库时遇到ORA-00922: 选项缺失或无效的问题,如图: 原因:一般是语句的语法有问题.比如命名不对,关键字写错等等.对于非标准的命名,一般采用双引号来创建. 具体原因:就是开始的用户密码的设置不符合规则,当时并不会报出.解决办法:标识符命名规则:1.必须以字母开始.2.长度不能超过30个单字节字符.3.只能包括A-Z,a-z,0-9,_,$和#.4.不能在相同用户下建立两个同名的对象.5.不能使用保留字和关键字 选择“忽略”,也有可能出现ORA-280

关闭数据库当前链接,数据库脚本

在进行数据库操作时,如还原数据库,有时候显示如下错误Exclusive access could not be obtained because the database is in use 可以使用下面语句,关闭当前链接以便继续操作. use Master ALTER DATABASE yourdatabasename SET MULTI_USER WITH ROLLBACK IMMEDIATE: 关闭数据库当前链接,数据库脚本