일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- GPT-4's answer
- 코틀린
- GIT
- JVM
- kotlin
- 고전역학
- 자바네트워크
- python
- Java
- 자바
- 파이썬
- flet
- 자바암호
- 유닉스
- 리눅스
- 인프라
- 소프트웨어공학
- lombok
- 역학
- chatGPT's answer
- 시스템
- oracle
- write by chatGPT
- android
- NIO
- 웹 크롤링
- Database
- 뉴턴역학
- write by GPT-4
- Spring boot
- Today
- Total
Akashic Records
Oracle LOCK걸린 Session Kill 본문
아래의 쿼리는 system 계정으로 합니다
select a.sid, decode(a.type, 'MR', 'Media Recovery', 'RT', 'Redo Thread', 'UN', 'User Name', 'TX', 'Transaction', 'TM', 'DML', 'UL', 'PL/SQL User Lock', 'DX', 'Distributed Xaction', 'CF', 'Control File', 'IS', 'Instance State', 'FS', 'File Set', 'IR', 'Instance Recovery', 'ST', 'Disk Space Transaction', 'IR', 'Instance Recovery', 'TS', 'Temp Segment', 'IV', 'Library Cache Invalidation', 'LS', 'Log Start or Switch', 'RW', 'Row Wait', 'SQ', 'Sequence Number', 'TE', 'Extend Table', 'TT', 'Temp Table', a.type) lock_type, decode(a.lmode, 0, 'None', /* Non Lock equivalent */ 1, 'Null', /* N */ 2, 'Row-S (SS)', /* L */ 3, 'Row-X (SX)', /* R */ 3, 'Row-X (SX)', /* R */ 4, 'Share', /* S */ 5, 'S/Row-X (SSX)', /* C */ 6, 'Exclusive', /* X */ to_char(a.lmode)) mode_held, decode(a.request, 0, 'None', /* Mon Lock equivalent */ 1, 'Null', /* N */ 2, 'Row-S (SS)', /* L */ 3, 'Row-X (SX)', /* R */ 4, 'Share', /* S */ 5, 'S/Row-X (SSX)', /* C */ 6, 'Exclusive', /* X */ to_char(a.request)) mode_requested, to_char(a.id1) lock_id1, to_char(a.id2) lock_id2 from v$lock a where (id1,id2) in (select b.id1, b.id2 from v$lock b where b.id1=a.id1 and b.id2=a.id2 and b.request>0); |
( 위의 Query를 실행시키면 다음과 같은 내용이 출력된다.)
SID LOCK_TYPE MODE_HELD MODE_REQUE LOCK_ID1 LOCK_ID2 --- --------------- ---------- ---------- -------- -------- 5 Transaction Exclusive None 262172 90 6 Transaction None Exclusive 262172 90 9 Transaction None Exclusive 262172 90 |
SID 6과 9는 SID 5가 걸고 있는 Lock이 풀리기를 기다리고 있음을 알 수 있다. SID 5번을 죽이고 싶다면 다음과 같이 하면 됩니다.
SELECT sid, serial#, username from v$session where sid = ?? (여기에서는 5) |
위의 값을 가지고 다음과 같이 세션을 Kill 하면 됩니다. ALTER SYSTEM KILL SESSION 'SID, SERIAL#'; (위의 쿼리로 나온 값)
'오래된글 > DataBase' 카테고리의 다른 글
인덱스 컬럼의 매칭율 높이는 방법 (0) | 2018.04.15 |
---|---|
옵티마이저의 Index 선택 기준 (0) | 2018.04.15 |
Oracle - 숫자 함수 (0) | 2018.04.09 |
Oracle - 변환 함수 (0) | 2018.04.09 |
Oracle - 문자 함수 (0) | 2018.04.09 |