복제 중단 및 재개
일부 경우, 업그레이드 또는 예정된 장애 조치 중에는 기본(primary) 노드와 보조(secondary) 노드 간의 복제를 중단하는 것이 바람직할 수 있습니다.
업그레이드 중 보조 사이트에서 사용자 활동을 허용할 계획이라면, 제로 다운타임 업그레이드를 위한 복제를 중단하지 마십시오. 중단 중에는 보조 사이트가 점점 더 오래된 상태가 됩니다.
이미 알려진 효과 중 하나는 점점 더 많은 Git 가져오기 요청이 기본 사이트로 리디렉션되거나 프록시되는 것입니다. 추가적인 알려지지 않은 효과가 있을 수 있습니다.
복제 중단 및 재개는 보조 사이트의 특정 노드에서 명령줄 도구를 통해 수행됩니다. 데이터베이스 구조에 따라 postgresql
또는 patroni
서비스 중 하나에 대해 타겟팅될 것입니다:
- 보조 사이트에서 모든 서비스를 위한 단일 노드를 사용하는 경우, 이 단일 노드에서 명령을 실행해야 합니다.
- 보조 사이트에 독립 실행형 PostgreSQL 노드가 있는 경우, 이 독립 실행형 PostgreSQL 노드에서 명령을 실행해야 합니다.
- 보조 사이트가 Patroni 클러스터를 사용하는 경우, 이 명령을 보조 Patroni 대기 리더 노드에서 실행해야 합니다.
보조 사이트에서 모든 서비스를 위한 단일 노드를 사용하지 않는 경우, PostgreSQL 또는 Patroni 노드의 /etc/gitlab/gitlab.rb
에 gitlab_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