当前位置:  数据库>oracle

SHUTDOWN: Active processes prevent shutdown operation

    来源: 互联网  发布时间:2017-05-24

    本文导语: 在使用shutdown immediate关闭数据库时hang住,查看alert 日志,遭遇了SHUTDOWN: Active processes prevent shutdown operation。也即是说有一些活动进程阻止了当前的shutdown操作。咦,数据库是测试数据库啥也没有干,也没有配置db console,还有活动...

在使用shutdown immediate关闭数据库时hang住,查看alert 日志,遭遇了SHUTDOWN: Active processes prevent shutdown operation。也即是说有一些活动进程阻止了当前的shutdown操作。咦,数据库是测试数据库啥也没有干,也没有配置db console,还有活动进程阻止呢?

1、情景再现

SQL> select * from v$version where rownum @comm_sess_users;    ---->查看当前连接的session

nstance    SID Serial ID    Status    Oracle User    O/S User        O/S PID Session Program              Terminal            Machine
--------- ------ --------- --------- -------------- ------------ --------------- -------------------------- ---------- -------------------
sybo3        125        5    ACTIVE            SYS      oracle    4069        sqlplus@linux3.orasrv.com      pts/1  linux3.orasrv.com

SQL> host;                ---->使用host切换到os提示符下
[oracle@linux3 ~]$ sqlplus / as sysdba      ----->再次登陆到sqlplus

SQL> @comm_sess_users;                      ----->下面的查询可以看到Terminal显示为同一个终端, 都为sys用户, sid 139 为ACTIVE

Instance    SID Serial ID    Status    Oracle User    O/S User        O/S PID Session Program              Terminal            Machine
--------- ------ --------- --------- -------------- ------------ --------------- -------------------------- ---------- -------------------
sybo3        125        5  INACTIVE            SYS      oracle    4069        sqlplus@linux3.orasrv.com      pts/1  linux3.orasrv.com
            139        10    ACTIVE            SYS      oracle    4152        sqlplus@linux3.orasrv.com      pts/1  linux3.orasrv.com

SQL> @my_env;            ---->查看自身的sid 
     
SPID                        SID    SERIAL# USERNAME        PROGRAM
------------------------ ------ ---------- --------------- ------------------------------------------------
4152                        139        10 oracle          oracle@linux3.orasrv.com (TNS V1-V3)

SQL> shutdown immediate;  ---->关闭数据库时,hang住,不得不使用ctrl -c 终止
ORA-01013: user requested cancel of current operation

SQL> shutdown abort;      ---->强制关闭数据库
ORACLE instance shut down.

--Author : Robinson
--Blog  : http://www.linuxidc.com

-->下面是后台日志的信息
Thu Jul 25 10:56:43 2013
Shutting down instance (immediate)
Shutting down instance: further logons disabled  --->不允许新session登陆
Stopping background process QMNC
Thu Jul 25 10:56:43 2013
Stopping background process CJQ0
Stopping background process MMNL
Stopping background process MMON
License high water mark = 3
Thu Jul 25 11:01:53 2013
SHUTDOWN: Active processes prevent shutdown operation  --->出现无法shutdown的提示
Thu Jul 25 11:07:01 2013
SHUTDOWN: Active processes prevent shutdown operation
Thu Jul 25 11:07:44 2013
Starting background process SMCO
Thu Jul 25 11:07:44 2013
Instance shutdown cancelled                            --->shutdown 被cancel
Thu Jul 25 11:07:44 2013
SMCO started with pid=15, OS id=4178
Thu Jul 25 11:08:06 2013
Shutting down instance (abort)                          --->使用abort方式shutdown database
License high water mark = 3
USER (ospid: 4152): terminating the instance
Termination issued to instance processes. Waiting for the processes to exit
Instance termination failed to kill one or more processes
Instance terminated by USER, pid = 4152
Thu Jul 25 11:08:16 2013
Instance shutdown complete

2、分析与解决
      从上面的情形来看,是由于之前的session没有断开,而后又使用了host切换到OS提示符下,导致数据库无法正常关闭。
      通过进一步的测试,如果是多个非sys用户登录则不存在此现象。
      Oracle对此给出的说明是这不是一个Oracle bug,而是使用了一个非正常的数据库关闭顺序。
      建议先断开所有连接再关闭数据库,如先关闭db control,具体见下面的Oracle 文档及示例。

 

3、Doc ID 416658.1

Shutdown Immediate Hangs / Active Processes Prevent Shutdown (Doc ID 416658.1)

Applies to:
Oracle Server - Enterprise Edition - Version: 10.1.0.2 to 11.2.0.2 - Release: 10.1 to 11.2
Oracle Server - Enterprise Edition - Version: 10.1.0.2 to 11.2.0.2  [Release: 10.1 to 11.2]
Information in this document applies to any platform.

Symptoms
The 'shutdown immediate' command hangs or is very slow

The alert log lists messages like:

SHUTDOWN: waiting for active calls to complete.ACTIVE PROCESSES PREVENT SHUTDOWN OPERATION

Cause
This is not a bug.

If the DB Control repository is running on the database target against which shutdown immediate was attempted then an incorrect
order of events seems used.

You should stop DB Control first to get rid of all connections between DB Control and the repository database and then shutdown
the database with 'shutdown immediate'.

Current database sessions may show:

SQL> select SID, USERNAME, PROGRAM from v$session;
SID  USERNAME              PROGRAM
----- ---------------------- ----------------------------------
  243 SYSTEM                SQL Developer
  246 SYSMAN                OMS
  247                        oracle@lgiora09 (q001)
  248                        oracle@lgiora09 (q000)
  251 DBSNMP                emagent@lgiora09 (TNS V1-V3)
  252 SYSMAN                OMS
  253 SYSMAN                OMS
  254 DBSNMP                emagent@lgiora09 (TNS V1-V3)
  255 SYSTEM                java.exe
  256 SYSMAN                OMS

Clearly OMS and OEM are connected (Oracle Enterprise Manager Grid Control or DBConsole) via users SYSMAN and DBSNMP.
These sessions should be de-activated (that is to log off any OEM, OMS, SYSMAN and DBSNMP) before the shutdown immediate is attempted.

Oracle Enterprise Manager, Grid Control, Dbconsole and agents keep doing internal processing.
This may include a few PLSQL notification procedures running on the database by database control like
BEGIN EMD_NOTIFICATION.QUEUE_READY(:1, :2, :3); END;

As per internal documentation of the shutdown immediate, if there are active calls then it would wait for all the active calls to finish.

Solution
To implement the solution:

1. Given OEM connections are active (SYSMAN and DBSNMP), de-activate these sessions, i.e. by stopping the agent/DBConsole

2. Then shutdown immediate as normal

- OR -

There may be processes still running and holding locks at the time a shutdown is issued.
Sometimes these are failed jobs or transactions, which are effectively 'zombies', which are not able to receive a signal from Oracle.

If this occurs, the only way to shutdown the database is by doing:

sql>
shutdown abort
startup restrict
shutdown normal

The startup does any necessary recovery and cleanup, so that a valid cold backup can be taken afterward.

If this issue occurs frequently, it would be a good practice to see if there are any active user processes running in v$session or
v$process before shutting down the instance.

If the problem persists, and no apparent user processes are active, you can set this event prior to issuing the shutdown command
in order to see what is happening. This will dump a systemstate every 5 minutes while shutdown is hanging

SQL>
connect / as sysdba
alter session set events '10400 trace name context forever, level 1';


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.util.concurrent类scheduledthreadpoolexecutor的类成员方法: shutdown定义及介绍
  • ubuntu fedora关机输入shutdown -P now就行。redhat怎么是用shutdown -h now关机
  • java命名空间java.rmi.activation接口activationsystem的类成员方法: shutdown定义及介绍
  • linux图形模式下shutdown里有Hibernate这个选项。怎么man shutdown里找不到hibernate这个选项呢。
  • java命名空间java.util.concurrent类threadpoolexecutor的类成员方法: shutdown定义及介绍
  • .net/c#/asp.net iis7站长之家
  • java命名空间java.util.concurrent接口executorservice的类成员方法: shutdown定义及介绍
  • linux shutdown
  • java命名空间javax.print.attribute.standard类printerstatereason的类成员方法: shutdown定义及介绍
  • 普通用户不能使用shutdown命令吗?
  • 请教有关linux下shutdown的一些问题
  • linux的shutdown会执行哪些操作读取哪些脚本哦?
  • Solaris/HP-UX平台socket API:shutdown问题
  • linux普通用户如何用shutdown命令
  • linux的shutdown命令
  • shutdown 和 halt 有什么区别
  • 我装了redhat7.2,为什么不能完全shutdown?
  • 为什么我的linux不能够再shutdown后自动关闭机器
  • shutdown命令的问题
  • 我的redhat没有shutdown命令
  • 求解啊,centos下 shutdown -h now 无效??
  • 请问如何修改Linux中的PATH路径,使一个非root用户可以用ifconfig、shutdown之类的命令?
  • 解析Runtime中shutdown hook的使用详解
  • X connection to localhost:10.0 broken (explicit kill or server shutdown).
  • Shutdown和Select的困惑
  • DBA_Oracle Startup / Shutdown启动和关闭过程详解(概念)(对数据库进行各种维护操作)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,