使降级的主要站点重新上线
故障转移后,可以回到降级的主要站点以恢复您的原始配置。这个过程包括两个步骤:
- 将旧的主要站点变成次要站点。
- 将次要站点提升为主要站点。
如果您对本网站数据的一致性有任何疑问,我们建议您从头开始设置。
将之前的主要站点配置为次要站点
由于之前的主要站点与当前的主要站点不同步,所以第一步是更新之前的主要站点。请注意,当使以前的主要站点重新同步时,不会重复存储在磁盘上的数据(如仓库和上传文件)的删除,这可能会导致磁盘使用量增加。 或者,您可以设置一个新的次要极狐 GitLab 实例 来避免这种情况。
更新前主要站点:
- SSH 进入已经落后的前主要站点。
- 如果存在,请删除
/etc/gitlab/gitlab-cluster.json
。
如果要重新添加为次要站点的站点是使用 gitlab-ctl geo promote
命令提升的,那么它可能包含一个 /etc/gitlab/gitlab-cluster.json
文件。例如,在 gitlab-ctl reconfigure
期间,您可能会注意到如下输出:
The 'geo_primary_role' is defined in /etc/gitlab/gitlab-cluster.json as 'true' and overrides the setting in the /etc/gitlab/gitlab.rb
如果是这样,则必须从站点中的每个 Sidekiq、PostgreSQL、Gitaly 和 Rails 节点中删除 /etc/gitlab/gitlab-cluster.json
,以使 /etc/gitlab/gitlab.rb
成为唯一的真实来源。
-
确保所有服务都已启动:
sudo gitlab-ctl start
如果您在灾难恢复过程中更改了此站点的 DNS 记录,在此过程中,您可能需要阻止对该站点的所有写入。 -
设置数据库复制。在这种情况下,次要站点是指之前的主要站点。
- 如果 PgBouncer 在当前次要站点(当它是主要站点时)上启用,请通过编辑
/etc/gitlab/gitlab.rb
禁用它,并运行sudo gitlab-ctl reconfigure
。 - 然后,您可以在次要站点上设置数据库复制。
- 如果 PgBouncer 在当前次要站点(当它是主要站点时)上启用,请通过编辑
如果您丢失了原来的主要站点,请按照设置说明,设置新的次要站点。
将次要站点提升为主要站点
当初始复制完成并且主要站点和次要站点紧密同步时,您可以执行计划的故障转移。
恢复次要站点
如果您的目标是再次拥有两个站点,您还需要通过重复第一步(将前主要站点配置为次要站点),使您的次要站点重新上线。