Oracle에서는 select 문을 사용하여 교착 상태를 쿼리할 수 있습니다. 이 문은 간단한 데이터 쿼리에 사용됩니다. 구문은 "select * from v$session where sid in (select session_id from v$locked_object)"입니다.
이 튜토리얼의 운영 환경: 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)
출력 결과가 있으면 교착 상태가 있음을 의미하며 어떤 시스템에서 이를 볼 수 있는지 교착상태? 필드 설명:
사용자 이름: 교착 상태 문에 사용된 데이터베이스 사용자
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!