Oracle 表死锁处理 ORA-00054

WBOY
풀어 주다: 2016-06-07 17:30:27
원래의
1075명이 탐색했습니다.

尝试在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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!