유지보수 작업
GitLab v19.1이 페이지에서는 개발과 관련될 수 있는 다양한 데이터베이스 관련 작업을 자세히 설명합니다. 이전에는 이 섹션에서 인덱스를 제거하기 전에 유효하지 않은 상태로 표시하는 절차를 설명했습니다. 인덱스를 제거하기 전에 비활성화하고 싶은 특정 상황이 있을 수 있습니다:
이 페이지에서는 개발과 관련될 수 있는 다양한 데이터베이스 관련 작업을 자세히 설명합니다.
인덱스 비활성화는 안전하지 않습니다#
이전에는 이 섹션에서 인덱스를 제거하기 전에 유효하지 않은 상태로 표시하는 절차를 설명했습니다. 안전하지 않기 때문에 더 이상 권장하지 않습니다.
인덱스를 제거하기 전에 비활성화하고 싶은 특정 상황이 있을 수 있습니다:
-
인덱스가 대용량 테이블에 있어서, 롤백 시 인덱스를 재구축하는 데 오랜 시간이 걸리는 경우.
-
인덱스가 완전히 파악되지 않은 방식으로 사용되고 있는지 여부가 불확실한 경우.
이러한 상황에서는 인프라 팀 및 데이터베이스 팀과 협력하여 "Production Change" 템플릿으로 프로덕션 인프라 이슈를 열고 다음 명령어를 실행하는 방식으로 인덱스를 비활성화했습니다:
-- Disable the index then run an EXPLAIN command known to use the index:
UPDATE pg_index SET indisvalid = false WHERE indexrelid = 'index_issues_on_foo'::regclass;
-- Verify the index is invalid on replicas:
SELECT indisvalid FROM pg_index WHERE indexrelid = 'index_issues_on_foo'::regclass;
-- Rollback the invalidation:
UPDATE pg_index SET indisvalid = true WHERE indexrelid = 'index_issues_on_foo'::regclass;
참고용 인프라 이슈 예시를 확인하세요.