InfoGrab DocsInfoGrab Docs

데이터베이스 필수 업그레이드 중단점

GitLab 업그레이드 시 데이터베이스 변경으로 인해 필수 중단점이 필요한 경우와 필수 중단점을 추가하는 방법을 설명합니다.

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