데이터베이스 필수 업그레이드 중단점
GitLab v19.4요약
이 페이지에서는 어떤 데이터베이스 변경이 GitLab 업그레이드 중단 지점을 필요로 하는지 설명합니다. 필수 중단 지점은 이제 마이너 버전 X.2, X.5, X.8, X.11에 일관되게 배치됩니다. 마이그레이션에 오랜 시간이 걸리면 많은 고객이 업그레이드 도중 타임아웃을 겪을 수 있습니다.
이 페이지에서는 어떤 데이터베이스 변경이 GitLab 업그레이드 중단 지점을 필요로 하는지 설명합니다. 원인의 전체 목록은 필수 중단 지점의 원인을 참고합니다.
필수 중단 지점은 이제 마이너 버전 X.2, X.5, X.8, X.11에 일관되게 배치됩니다. 사용자에게 예측 가능한 업그레이드 경로를 보장하기 위해서입니다. 중단 지점이 필요한 데이터베이스 변경은 이 릴리스들을 활용할 수 있습니다. 아래 지침은 필수 업그레이드 중단 지점을 추가할 때 사용합니다.
중단 지점이 필요한 일반적인 데이터베이스 변경#
장시간 실행 마이그레이션의 마무리 처리#
마이그레이션에 오랜 시간이 걸리면 많은 고객이 업그레이드 도중 타임아웃을 겪을 수 있습니다. 이에 따라 지원 문의가 늘면 필수 중단 지점을 도입하게 될 수 있습니다. 어떤 백그라운드 마이그레이션이든 규모가 특히 큰 고객에게는 이런 문제를 일으킬 수 있지만, 영향이 광범위한 경우에만 중단 지점을 도입하는 것이 일반적입니다.
- 원인: 업그레이드가 1시간을 넘기면 omnibus가 타임아웃됩니다.
- 완화 방안: 마무리 처리를 다음 필수 중단 지점 이후의 첫 마이너 버전으로 일정을 잡습니다. 다음 필수 중단 지점까지 기다리면, 필수 중단 지점 사이를 건너뛰는 고객이 백그라운드에서 마이그레이션을 실행해 서비스를 계속 운영할 기회를 확보할 수 있습니다. 그렇지 않고 필수 중단 지점에서 마이그레이션을 마무리하면 이전 필수 중단 지점에서 올라오는 업그레이드 도중 동기 실행이 강제되며, 마이그레이션 실행 시간이 유지 보수 기간을 넘기면 다운타임이 발생합니다.
잘못 마무리된 백그라운드 마이그레이션#
다음 경우에는 완화를 위해 필수 중단 지점을 도입해야 할 수 있습니다.
- 백그라운드 마이그레이션이 마무리되지 않았고,
- 그 백그라운드 마이그레이션에 의존하는 마이그레이션이 작성된 경우.
- 원인: 백그라운드 마이그레이션이 완료되지 않으면 이에 의존하는 마이그레이션이 실패할 수 있습니다.
- 완화 방안: 의존하는 마이그레이션을 작성하기 전에 모든 백그라운드 마이그레이션이 마무리됐는지 확인합니다.
마이그레이션 제거#
마이그레이션을 제거하는 경우, 고객이 필요한 변경을 놓치지 않도록 필수 중단 지점을 도입해야 할 수 있습니다.
- 원인: 필요한 마이그레이션이 제거되어 이에 의존하는 마이그레이션이 실패하거나 애플리케이션이 동작하지 않을 수 있습니다.
- 완화 방안: 마이그레이션은 계획된 필수 중단 지점에 포함된 뒤에만 제거되도록 합니다.
마이그레이션 타임스탬프가 지나치게 오래된 경우#
마이그레이션 타임스탬프가 지나치게 오래되면(3주 초과, 또는 마지막 중단 지점 이전), 다음과 같은 문제가 생길 수 있습니다.
- 해당 마이그레이션이 더 최신 타임스탬프를 가졌지만 필수 중단 지점 이후 이전 릴리스에 도입된 다른 마이그레이션에 의존하는 경우, 새 마이그레이션이 선행 마이그레이션보다 먼저 순차 실행되어 실패할 수 있습니다.
- 마이그레이션 타임스탬프 ID가 마지막 중단 지점보다 앞서면, 팀이 필수 중단 지점의 다른 마이그레이션을 스쿼시할 때 의도치 않게 함께 스쿼시될 수 있습니다.
- 원인: 이전 버전에 도입된, 더 늦은 타임스탬프를 가진 마이그레이션에 의존하면 해당 마이그레이션이 실패할 수 있습니다. 또는 필수 중단 지점 이후 의도치 않게 스쿼시될 수 있습니다.
- 완화 방안: 마이그레이션 타임스탬프가 릴리스 기간 안에 들어오도록 하고, 마지막 필수 중단 지점보다 앞선 날짜가 되지 않도록 합니다.
마이그레이션 관련 도구의 버그#
드물게 마이그레이션 관련 도구의 버그 때문에 중단 지점을 도입한 사례가 있습니다. 테스트 단계에서 이를 방지하려 하지만 그럼에도 발생하는 경우가 있습니다.
- 원인: 여러 원인이 있었으며, 모두 뒤늦게 파악된 사례였습니다.
- 완화 방안: 보통 마이그레이션 수정 사항을 백포트하려 하지만, 그럴 수 없는 경우도 있습니다.
필수 중단 지점 추가#
위 시나리오 중 하나에 해당하는 변경을 도입할 계획이라면 필수 중단 지점 추가를 참고합니다.