직장생활/DataBase

[ORACLE] ORA-02049: 시간초과: 분산 트랜잭션이 잠금으로 대기중 입니다 해결방법

체리백 2025. 1. 23.
반응형

 

 

[ORACLE] ORA-02049: 시간초과: 분산 트랜잭션이 잠금으로 대기중 입니다 해결방법


금일 항상 놓칠 수 있는 데이터베이스 락이 걸려서 정리하고 넘어가고자 합니다.

"ORA-02049: 시간초과: 분산 트랜잭션이 잠금으로 대기중 입니다" 의 발생 원인과 해결방법입니다.

 

[ORACLE] ORA-02049: 시간초과: 분산 트랜잭션이 잠금으로 대기중 입니다 해결방법

 

ORA-02049 발생 원인

특정 쿼리를 실행 다음 COMMIT 이나 ROLLBACK 을 실행하지 않은 상태에서 Java 프로젝트에서 같은 테이블로의 Update를 실행 하는 경우 발생하며, 본인 같은 경우에는 프로시저가 돌아가는 와중에 다른 작업을 하다가 락이 걸렸습니다.

 

이 오류는 시간이 지나면서 rollback segment의 수치가 낮아지면서 자동으로 테이블 락이 해제되기도 하지만 빠른 해결을 하기위해 다음과 같이진행해 주시면 됩니다.

 

ORA-02049 문제해결

SELECT A.SID, A.SERIAL#, B.TYPE, C.OBJECT_NAME FROM V$SESSION A, V$LOCK B, DBA_OBJECTS C WHERE A.SID=B.SID AND B.ID1=C.OBJECT_ID AND B.TYPE='TM' ;

 

위 명령어를 사용 후 나오는 결과값이 있으면 락 걸린데이터가 있다는 의미

 

alter system kill session '481,33763';

 

SID, SERIAL# 값을 차레대로 콤마(,)로 구분하여 넣어서 실행시켜주고 재 조회시 사라지면 해결~!!

반응형

댓글