안녕하세요.
장시간 실행 중인 트랜잭션이 잠금을 유지하면서 인덱스 생성 작업의 진행을 방해하는 경우가 많습니다. 먼저 pg_stat_activity를 조회하여 장시간 실행 중인 세션의 PID, 트랜잭션 시작 시간, SQL 문을 확인하고, 해당 세션이 인덱스 생성 작업을 실제로 차단하고 있는지 검증하는 것을 권장합니다.
필요한 경우 애플리케이션에 미칠 수 있는 영향을 충분히 검토한 후 pg_cancel_backend()를 사용해 차단 중인 쿼리를 취소하거나, pg_terminate_backend()를 사용해 해당 세션을 종료할 수 있습니다.
차단 중인 트랜잭션을 정리한 후 CREATE INDEX CONCURRENTLY 명령을 다시 실행하면 됩니다. 다만, 동시 인덱스 생성에 실패하여 유효하지 않은 인덱스가 남아 있다면 재시도하기 전에 해당 인덱스를 삭제하거나 다시 생성해야 합니다.
pg_stat_activity 조회 결과를 검토하는 데 도움이 필요하시면 결과를 공유해 주세요. 추가 분석을 도와드리겠습니다.
이 정보가 도움이 되었다면 "Accept Answer" 를 클릭해 주세요. 동일한 문제를 겪는 다른 사용자들도 이 해결 방법을 참고할 수 있습니다.
Jason