zoukankan      html  css  js  c++  java
  • 【ORACLE 】 ORA-00031 标记要删去的会话(解决)

    在使用Oracle的过程中,会有使用了锁(for update)但又忘记释放锁的情况。这是就需要用到KILL语句了。(如果不知道KILL语句怎么用,可参考:

    http://www.cnblogs.com/memory4young/p/oracle-kill-locked-session.html

    当KILL语句执行后,报这样的信息:ORA-00031  标记要删去的会话 。

    该怎么办呢  ?

    1、查找进程ID

    执行如下语句,查出被锁的进程的ID:

    -- 执行以下SQL,需要DBA的权限
    
    ---- 查询条件 KILLED ,必须大写
    
    SELECT P.SPID, S.SID, S.SERIAL#, S.USERNAME, S.PROGRAM
    FROM V$PROCESS P, V$SESSION S
    WHERE P.ADDR=S.PADDR AND S.STATUS='KILLED';

    2、KILL 进程

    2.1 Oracle 运行在 Unix 机器上

    在终端执行以下脚本:

    ## $SPID 为 第1步的sql查出的SPID
    
    kill9 $SPID

    2.1 Oracle 运行在 Windows 机器上

    在CMD命令窗口下,输入:

    ## $SPID 为 第1步的sql查出的SPID
    
    orakill 数据库实例名 $SPID

    注:orakill 是Oracle自带的一个服务

  • 相关阅读:
    绿色通道
    Banknotes
    旅行问题
    修剪草坪
    最大连续和
    动物园
    炮兵阵地
    涂抹果酱
    牧场的安排
    国王
  • 原文地址:https://www.cnblogs.com/memory4young/p/oracle-error-ora-00031.html
Copyright © 2011-2022 走看看