>  기사  >  데이터 베이스  >  Oracle에서 교착 상태를 쿼리하는 방법

Oracle에서 교착 상태를 쿼리하는 방법

WBOY
WBOY원래의
2022-01-25 16:51:527061검색

Oracle에서는 select 문을 사용하여 교착 상태를 쿼리할 수 있습니다. 이 문은 간단한 데이터 쿼리에 사용됩니다. 구문은 "select * from v$session where sid in (select session_id from v$locked_object)"입니다.

Oracle에서 교착 상태를 쿼리하는 방법

이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 11g 버전, Dell G3 컴퓨터.

oracle에서 교착 상태를 쿼리하는 방법

1. 교착 상태 확인

1) dba 사용자를 사용하여 다음 명령문을 실행합니다.

select username,lockwait,status,machine,program from v$session where sid in
(select session_id from v$locked_object)

출력 결과가 있으면 교착 상태가 있음을 의미하며 어떤 시스템에서 이를 볼 수 있는지 교착상태? 필드 설명:

  • 사용자 이름: 교착 상태 문에 사용된 데이터베이스 사용자

  • Lockwait: 교착 상태 상태, 콘텐츠가 있으면 교착 상태임을 의미합니다.

  • 상태: 상태, 활성은 교착 상태를 의미합니다.

  • 머신: 교착 상태 문이 있는 머신입니다.

  • 프로그램: 교착 상태 문은 주로 어떤 응용 프로그램에서 나오나요?

2) 교착 상태 문을 보려면 dba 사용자를 사용하여 다음 문을 실행하세요.

select sql_text from v$sql where hash_value in
(select sql_hash_value from v$session where sid in
(select session_id from v$locked_object))

2. 교착 상태 해결

1) 교착 상태 프로세스 찾기:

SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,
l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS
FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;

2) 교착 상태 프로세스 종료: alter system kill session 'sid,serial#'; (여기서 sid=l.session_id)

추천 튜토리얼 : "Oracle 비디오 튜토리얼"

위 내용은 Oracle에서 교착 상태를 쿼리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.