'ERROR: deadlock detected ...'라는 로그가 뜨면서
1시간 동안 로그인도 안 되고, 입력한 내용이 저장이 안되는 상황이 발생했다.
디비버를 통하여 오라클 DB를 사용하고 있었기 때문에
아래와 같은 방법으로(락 걸린 세션을 조회하고 kill 하는 방법) 교착상태를 해결하였다.
만약 이 방법도 통하지 않는다면,
최상위 권한을 가진 DBA에 직접 문의하여 해결해야 한다고 한다.
-- 1. 세션을 조회한다.
SELECT SID, SERIAL#, USERNAME, PROGRAM FROM V$SESSION
-- 2. 락 된 세션을 조회한다.
SELECT
V$SESSION.SID,
V$SESSION.SERIAL#,
V$SESSION.USERNAME,
DBA_OBJECTS.OBJECT_NAME,
V$SESSION.SADDR,
V$SESSION.OSUSER,
V$SESSION.PROGRAM
FROM V$LOCKED_OBJECT
LEFT JOIN DBA_OBJECTS ON V$LOCKED_OBJECT.OBJECT_ID = DBA_OBJECTS.OBJECT_ID
LEFT JOIN V$SESSION ON V$LOCKED_OBJECT.SESSION_ID = V$SESSION.SID
ORDER BY
V$SESSION.SID,
DBA_OBJECTS.OBJECT_NAME
-- 3. 세션을 죽인다.
ALTER SYSTEM KILL SESSION 'SID, SERIAL#'
'01. Database' 카테고리의 다른 글
[오라클] 사용자 이름 앞에 c## 안쓰려면 이것을 입력 (0) | 2024.06.27 |
---|---|
[xml] 오라클 CLOB 데이터 화면에 뿌려주기 (0) | 2024.06.27 |
[iBatis 2.0] if-else 조건문 사용법 (0) | 2024.06.27 |
[SQL][Oracle] 엑셀다운로드 시간 단축했던 법 공유 (0) | 2024.06.20 |
[Oracle/오라클] Left outer join과 Left join의 차이? (0) | 2024.06.19 |