PostgreSQL용 운영 체제 업그레이드
PostgreSQL이 실행되는 운영 체제를 업그레이드할 때 데이터베이스 인덱스 손상을 방지하는 세 가지 마이그레이션 방법(백업/복원, 전체 인덱스 재빌드, 영향받은 인덱스만 재빌드)과 Geo 환경에서의 절차를 설명합니다.
Warning Geo 는 한 운영 체제에서 다른 운영 체제로 PostgreSQL 데이터베이스를 마이그레이션하는 데 사용할 수 없습니다. 그렇게 시도하면 보조 사이트가 100% 복제된 것처럼 보일 수 있지만 실제로는 일부 데이터가 복제되지 않아 데이터 손실이 발생할 수 있습니다. 이는 Geo가 이 문서에 설명된 제한 사항이 있는 PostgreSQL 스트리밍 복제에 의존하기 때문입니다. Geo 트러블슈팅 - OS 로케일 데이터 호환성 확인 도 참조하세요. PostgreSQL이 실행되는 운영 체제를 업그레이드하면 로케일 데이터의 변경이 데이터베이스 인덱스를 손상시킬 수 있습니다 . 특히 glibc 2.28로의 업그레이드는 이 문제를 유발할 가능성이 높습니다. 이 문제를 방지하려면 복잡도 순서로 다음 옵션 중 하나를 사용하여 마이그레이션하세요: 권장. 백업 및 복원 . 권장. 전체 인덱스 재빌드 . 영향받은 인덱스만 재빌드 . 마이그레이션을 시도하기 전에 반드시 백업하고, 프로덕션과 유사한 환경에서 마이그레이션 프로세스를 검증하세요. 다운타임 길이가 문제가 될 수 있다면, 프로덕션과 유사한 환경에서 프로덕션 데이터 복사본으로 다른 방법을 시험해 보세요. 스케일 아웃된 GitLab 환경을 실행 중이고 PostgreSQL이 실행되는 노드에 다른 서비스가 없는 경우, PostgreSQL 노드의 운영 체제만 별도로 업그레이드하는 것을 권장합니다. 복잡성과 위험을 줄이기 위해, Puma나 Sidekiq만 실행하는 노드의 운영 체제 업그레이드와 같이 다운타임이 필요하지 않은 변경 사항과 이 절차를 병행하지 마세요. GitLab이 이 문제를 해결하기 위한 계획에 대한 자세한 내용은 에픽 8573 을 참조하세요. 백업 및 복원 # 백업 및 복원은 인덱스를 포함한 전체 데이터베이스를 재생성합니다. 예약된 다운타임 창을 확보합니다. 모든 노드에서 불필요한 GitLab 서비스를 중지합니다: gitlab-ctl stop gitlab-ctl start postgresql pg_dump 또는 GitLab 백업 도구(db를 제외한 모든 데이터 유형 제외) 로 PostgreSQL 데이터베이스를 백업합니다(데이터베이스만 백업됩니다). 모든 PostgreSQL 노드에서 OS를 업그레이드합니다. 모든 PostgreSQL 노드에서 운영 체제 업그레이드 후 GitLab 패키지 소스를 업데이트 합니다. 모든 PostgreSQL 노드에서 동일한 GitLab 버전의 새 GitLab 패키지를 설치합니다. 백업에서 PostgreSQL 데이터베이스를 복원합니다. 모든 노드에서 GitLab을 시작합니다. 장점: 간단명료합니다. 인덱스와 테이블의 데이터베이스 부풀림을 제거하여 디스크 사용량을 줄입니다. 단점: 다운타임은 데이터베이스 크기에 따라 증가하며, 어느 시점에는 문제가 될 수 있습니다. 여러 요소에 따라 다르지만, 데이터베이스가 100GB를 초과하면 약 24시간이 소요될 수 있습니다. Geo 보조 사이트를 이용한 백업 및 복원 # 예약된 다운타임 창을 확보합니다. 모든 사이트의 모든 노드
