Home > Database > Mysql Tutorial > body text

Oracle 表死锁处理 ORA-00054

WBOY
Release: 2016-06-07 17:30:27
Original
1075 people have browsed it

尝试在sqlplus中通过sql命令进行删除,如果能够删除成功,则万事大吉!但通常情况下,出现死锁时,想通过命令行或者通过oracle的

第一步:尝试在sqlplus中通过sql命令进行删除,如果能够删除成功,则万事大吉!但通常情况下,出现死锁时,想通过命令行或者通过Oracle的管理工具删除有死锁的session,oracle只会将该session标记为killed,但无法清除掉,往往需要通过第二步在操作系统层级进行删除!
 

Connected to Oracle9i Enterprise Edition Release 9.2.0.1.0
 Connected as quik
 

SQL> select xidusn, object_id, session_id, locked_mode from v$locked_object; --查死锁的对象,,获取其SESSION_ID
 

    XIDUSN OBJECT_ID SESSION_ID LOCKED_MODE
 ---------- ---------- ---------- -----------
        10      30724        29          3
        10      30649        29          3
 

SQL> select username,sid,serial# from v$session where sid=29; --根据上步获取到的sid查看其serial#号
 

USERNAME                              SID    SERIAL#
 ------------------------------ ---------- ----------
 QUIK                                  29      57107
 

SQL> alter system kill session '29,57107'; --删除进程,如已经删除过,则会报ora-00031的错误;否则oracle会将该session标记为killed状态,等待一段时间看能否会自动消失,如长时间消失不掉,则需要做后续步骤
 

alter system kill session '29,57107'
 

ORA-00031: session marked for kill
 

SQL> select pro.spid from v$session ses,v$process pro where ses.sid=29 and ses.paddr=pro.addr; --查看spid号,以便在操作系统中根据该进程号删除进程
 

SPID
 ------------
 2273286

linux

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!