IT/Database
[Oracle / Tibero] Lock 걸린 테이블 확인
성준하이
2023. 11. 26. 09:27
반응형
불특정한 다양한 이유로 Database는 Lock이 걸릴수 있고,
만약 그 Lock 이 DeadLock일 경우에는 멈춰버리는 상황이 생겨
최악으로는 프로세스를 내렸다가 다시 실행해야하는 상황이 생길수도 있다.
다시 실행하면 그만이 아닌 어떤 쿼리에서 어떤 이유로 , 왜 락이 걸렸는지 등등 확인해봐야한다.
아래 쿼리를 참고 하면 된다.
락 걸린 테이블 확인 | select * from v$locked_object vo , dba_objects do where vo.object_id = do.object_id; |
장기실행 또는 락걸린 SQL 확인 | select distinct vo.session_id ,vss.serial# ,do.object_name ,vss.machine ,vss.terminal ,vss.program ,vsql.address ,vsql.piece ,vsql.sql_text from v$locked_object vo ,v$session vss ,v$sqltext vsql ,dba_objects do where 1=1 and vo.session_id = vss.sid and vo.object_id = do.object_id and vss.sql_address = vsql.address order by vsql.address, vsql.piece; |
이렇게 확인이 가능하고 해결하려면 아래와 같다.
테이블 세션 kill | alter system kill session 'sid, serial#'; alter system kill session '1954, 63611'; |
반응형