복제 중단 및 재개

Tier: Premium, Ultimate Offering: Self-managed
caution
복제 중단 및 재개는 리눅스 패키지 기반 데이터베이스를 사용하는 Geo 설치에서만 지원됩니다. 외부 데이터베이스는 지원되지 않습니다.

일부 경우, 업그레이드 또는 예정된 장애 조치 중에는 기본(primary) 노드와 보조(secondary) 노드 간의 복제를 중단하는 것이 바람직할 수 있습니다.

업그레이드 중 보조 사이트에서 사용자 활동을 허용할 계획이라면, 제로 다운타임 업그레이드를 위한 복제를 중단하지 마십시오. 중단 중에는 보조 사이트가 점점 더 오래된 상태가 됩니다.

이미 알려진 효과 중 하나는 점점 더 많은 Git 가져오기 요청이 기본 사이트로 리디렉션되거나 프록시되는 것입니다. 추가적인 알려지지 않은 효과가 있을 수 있습니다.

복제 중단 및 재개는 보조 사이트의 특정 노드에서 명령줄 도구를 통해 수행됩니다. 데이터베이스 구조에 따라 postgresql 또는 patroni 서비스 중 하나에 대해 타겟팅될 것입니다:

  • 보조 사이트에서 모든 서비스를 위한 단일 노드를 사용하는 경우, 이 단일 노드에서 명령을 실행해야 합니다.
  • 보조 사이트에 독립 실행형 PostgreSQL 노드가 있는 경우, 이 독립 실행형 PostgreSQL 노드에서 명령을 실행해야 합니다.
  • 보조 사이트가 Patroni 클러스터를 사용하는 경우, 이 명령을 보조 Patroni 대기 리더 노드에서 실행해야 합니다.

보조 사이트에서 모든 서비스를 위한 단일 노드를 사용하지 않는 경우, PostgreSQL 또는 Patroni 노드의 /etc/gitlab/gitlab.rbgitlab_rails['geo_node_name'] = 'node_name' 구성 라인이 포함되어 있는지 확인하세요. 여기서 node_name은 애플리케이션 노드의 geo_node_name과 동일해야 합니다.

중단하려면: (보조 사이트에서)

또한, PostgreSQL이 복제를 중단한 후(VM을 다시 시작하거나 gitlab-ctl restart postgresql로 서비스를 재시작하여) 재시작되면 PostgreSQL은 자동으로 복제를 재개하므로, 업그레이드나 예정된 장애 조치 시나리오에서는 원하지 않는 일입니다.

gitlab-ctl geo-replication-pause  

재개하려면: (보조 사이트에서)

gitlab-ctl geo-replication-resume