문제가 해결되었는지 확인하기 위해 다시 연락드립니다. 추가 정보가 필요하시면 언제든지 답변해 주세요. 제공된 정보가 도움이 되었다면, 다른 커뮤니티 사용자들에게도 도움이 될 수 있도록 "Accept Answer" 를 클릭해 주시면 감사하겠습니다. 감사합니다!
PostgreSQL 동시 인덱스 생성 시 Lock Timeout
장시간 실행되는 트랜잭션으로 CREATE INDEX CONCURRENTLY가 타임아웃됩니다. 장기 실행 쿼리의 PID를 확인하고 인덱스 생성을 재시도하려면 어떻게 해야 하나요?
비즈니스용 Windows | Windows 365 비즈니스
-
Jason Nguyen Tran 28,015 평판 포인트 독립 자문가
2026-10-09T06:28:06.9066667+00:00 안녕하세요.
장시간 실행 중인 트랜잭션이 잠금을 유지하면서 인덱스 생성 작업의 진행을 방해하는 경우가 많습니다. 먼저
pg_stat_activity를 조회하여 장시간 실행 중인 세션의 PID, 트랜잭션 시작 시간, SQL 문을 확인하고, 해당 세션이 인덱스 생성 작업을 실제로 차단하고 있는지 검증하는 것을 권장합니다.필요한 경우 애플리케이션에 미칠 수 있는 영향을 충분히 검토한 후
pg_cancel_backend()를 사용해 차단 중인 쿼리를 취소하거나,pg_terminate_backend()를 사용해 해당 세션을 종료할 수 있습니다.차단 중인 트랜잭션을 정리한 후
CREATE INDEX CONCURRENTLY명령을 다시 실행하면 됩니다. 다만, 동시 인덱스 생성에 실패하여 유효하지 않은 인덱스가 남아 있다면 재시도하기 전에 해당 인덱스를 삭제하거나 다시 생성해야 합니다.pg_stat_activity조회 결과를 검토하는 데 도움이 필요하시면 결과를 공유해 주세요. 추가 분석을 도와드리겠습니다.이 정보가 도움이 되었다면 "Accept Answer" 를 클릭해 주세요. 동일한 문제를 겪는 다른 사용자들도 이 해결 방법을 참고할 수 있습니다.
Jason