oracle存储过程编译死掉的原因及解决(转)

一次解决session无法完全删除问题的全过程Linux


            作者:数据库 文章来源:数据库技术 点击数:7 更新时间:2006-4-8


            
            开发环境:win2000server+oracle9i+delphi
            开发人员报告:在程序中杀了JOB,但是被操作的表还是锁表状态,
            其中有一张日志表还在不断插入记录,直到执行完所有插入操作(一个漫长的等待过程)才能解锁
            现场描述:oem中被杀job起的SESSION状态为killed,其中有3张表被锁点击右键--》中断会话
            提示: 标记要删去的会话

            ===================================================================================================
            处理方法一 :

            1.SELECT saddr,sid,serial#,paddr,username,status FROM v$session
            WHERE username IS NOT NULL
            example:saddr,sid,serial#,paddr,username,status FROM v$session WHERE
            username = 'XNJW0419' ;
            SADDR SID SERIAL# PADDR USERNAME STATUS
            -------- ---------- ---------- --------
            ------------------------------ --------
            542E0E6C 11 314 542B70E8 EYGLE INACTIVE 542E5044 18 662 542B6D38 SYS
            ACTIVE

            2.ALTER SYSTEM KILL SESSION 'sid, serial#';
            example:ALTER SYSTEM KILL SESSION '11,314';(注:在sqlplus中执行 )

            结果: 提示标记要删去的会话 无法释放会话,未成功解锁

            ====================================================================================================
            处理方法二 :

            a、 找到你要杀掉的那个SESSION, 并记下paddr

            SELECT sid, username, paddr, status FROM v$session WHERE username =
            '用户名' ;
            example:SELECT sid, username, paddr, status FROM v$session WHERE
            username = 'XNJW0419' ;
            SID USERNAMEPADDRSTATUS
            ---------- ------------------------------ -------- --------
            10 XNJW04192B5E2E2C KILLED

            b、 找到这个SESSION所对应的spid

            SELECT * FROM v$process WHERE addr = '上面查寻的paddr';
            example:SELECT ADDR,PID,SPID,USERNAME,SERIAL#,TERMINAL FROM
            v$process WHERE addr = '2B5E2E2C';
            ADDRPID SPIDUSERNAMESERIAL# TERMINAL
            -------- ---------- ------------ --------------- ----------
            ----------------
            2B5E2E2C44 1204SYSTEM-99 JWC

            c、 杀掉spid所标识的那个进程

            D:/>orakill sid  spid (注:cmd命令窗口中执行 只有oracle服务器端才有orakill命令)
            example: D:/>orakill oemrep 1204

            提示:KILL OF THREAD id 1204 IN INSTANCE oemrep successfully signalled.

            结果:成功删除该SESSION,表也解锁


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/deadshot123/archive/2006/07/17/932396.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值