{{< details >}}
- Tier: 专业版,旗舰版
- Offering: 私有化部署
{{< /details >}}
{{< alert type=”warning” >}}
暂停和恢复复制仅支持使用 Linux 软件包管理数据库的 Geo 安装。不支持外部数据库。
{{< /alert >}}
在某些情况下,比如在升级或计划切换期间,暂停主站和从站之间的复制是可取的。
如果您计划在升级期间允许用户在您的从站网站上进行活动,请不要暂停复制以进行零停机升级。暂停期间,从站网站会越来越过时。一个已知的影响是越来越多的 Git 获取会被重定向或代理到主站。可能还有其他未知的影响。
例如,暂停使用单独 URL 的从站网站可能会导致在从站网站的 URL 上无法登录。您会进入主站的根 URL,而不会在从站网站的 URL 上获得新的会话。
暂停和恢复
暂停和恢复复制是通过从从站网站的特定节点使用命令行工具完成的。根据您的数据库架构,这个操作会针对 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