복제 일시 중지 및 재개

Tier: Premium, Ultimate Offering: Self-Managed
caution
복제 일시 중지 및 재개는 Geo 설치에서만 지원되며 Linux 패키지 관리 데이터베이스를 사용합니다. 외부 데이터베이스는 지원되지 않습니다.

upgrades이나 계획된 장애 조치(failover) 중과 같은 특정 상황에서는 주(primary)와 보조(secondary) 간의 복제를 일시 중지하는 것이 바람직합니다.

업그레이드 중에 보조 사이트에서 사용자 활동을 허용할 계획이라면 제로 다운타임 업그레이드를 위해 복제를 중지하지 마십시오. 일시 중지 상태에서 보조 사이트는 점점 더 오래된 데이터가 됩니다. 결과 중 하나는 Git fetch가 점점 더 기본(primary) 사이트로 리디렉션되거나 프록시되는 것입니다. 추가적으로 알려지지 않은 효과가 있을 수 있습니다.

복제 일시 중지 및 재개는 보조 사이트의 특정 노드에서 명령줄 도구를 사용하여 수행됩니다. 데이터베이스 아키텍처에 따라 이는 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

재개 방법: (보조 사이트에서)

```shell gitlab-ctl geo-replication-resume