반응형
LOCK 조회
lock 걸린 테이블 조회
SELECT t.relname,
l.locktype,
page,
virtualtransaction,
pid,
mode,
granted
FROM pg_locks l,
pg_stat_all_tables t
WHERE l.relation = t.relid
ORDER BY relation ASC;
현재 수행중인 sql 전체 조회
select datname,
pid,
usename,
application_name,
client_addr,
client_port,
backend_start,
query_start,
wait_event_type,
state,
backend_xmin
query
from pg_stat_activity;
해당 유저명 db에서 수행중인 sql 조회
SELECT * FROM pg_stat_activity where usename ='DB명';
조회 후 state, wait event 컬럼 확인
state (상태 정보)
active : 쿼리 실행중
idle : 새로운 명령 대기중
idle in transaction : 트랜잭션은 있지만 현재 실행중인 쿼리 없음
idle in transaction (aborted) : 트랜잭션은 있고 실행중인 쿼리는 없으나 트랜잭션에 오류가 발생
fastpath function call : 함수 실행중
disabled : track_activities 무효
해당 작업 종료
pid 중지
SELECT pg_cancel_backend(pid);
pid와 연계된 모든 상위 쿼리 프로세스 종료 (강제 종료)
SELECT pg_terminate_backend(pid) FROM pg_stat_activity;
pg_cancel_backend로 해당 작업이 종료 되는지 확인 후, 중지 되지 않는다면
pg_terminate_backend를 수행하여 해당 프로세스를 종료 시도