본문 바로가기

DB

PostgreSQL Session Lock 해결

운영중인 PostgreSQL에서 pool size x server size 이외에 연결된 session이 있어 확인 해 봤다.

 

1. 현재 접속중인 session과 실행 중인 쿼리를 확인

select * from pg_stat_activity where datname = 'dbname';

 

 

 

2. 연결 중인 PID 중에 락이 걸린 테이블 확인

select *  
from pg_locks,  
     pg_stat_all_tables 
where pg_locks.relation = pg_stat_all_tables.relid
order by relation asc;

 

3. 락 걸린 PID 제거

select pg_terminate_backend(PID) from pg_stat_activity;