Oracle에서는 dba 사용자를 사용하여 "select username, lockwait, status, machine, program from v$session where sid in" 문을 실행하여 교착 상태를 쿼리할 수 있습니다. 결과가 있으면 교착 상태가 표시됩니다. .
이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 11g 버전, Dell G3 컴퓨터.
1. 교착 상태 확인
1) dba 사용자를 사용하여 다음 명령문을 실행합니다.
select username,lockwait,status,machine,program from v$session where sid in (select session_id from v$locked_object)
출력 결과가 있으면 교착 상태가 있음을 의미하며 어떤 시스템에서 이를 볼 수 있는지 교착상태? 필드 설명:
Username: 교착 상태 문에 사용된 데이터베이스 사용자
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) 교착 상태 프로세스 종료: 시스템 종료 세션 'sid,serial#' 변경(여기서 sid=l.session_id)
3) 여전히 해결되지 않는 경우:
select pro.spid from v$session ses, v$process pro where ses.sid=XX and ses.paddr=pro.addr;
sid를 교착 상태 sid로 바꾸십시오:
권장 튜토리얼: "Oracle Video Tutorial"
위 내용은 Oracle에서 교착 상태를 쿼리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!