使降级的主要站点重新上线

故障转移后,可以回到降级的主要站点以恢复您的原始配置。这个过程包括两个步骤:

  1. 将旧的主要站点变成次要站点。
  2. 次要站点提升为主要站点。
caution如果您对本网站数据的一致性有任何疑问,我们建议您从头开始设置。

将之前的主要站点配置为次要站点

由于之前的主要站点与当前的主要站点不同步,所以第一步是更新之前的主要站点。请注意,当使以前的主要站点重新同步时,不会重复存储在磁盘上的数据(如仓库和上传文件)的删除,这可能会导致磁盘使用量增加。 或者,您可以设置一个新的次要极狐 GitLab 实例 来避免这种情况。

更新前主要站点:

  1. SSH 进入已经落后的前主要站点。
  2. 如果存在,请删除 /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 成为唯一的真实来源。

  1. 确保所有服务都已启动:

    sudo gitlab-ctl start
    
    note如果您永久禁用主要站点,您现在需要撤消这些步骤。对于带有 systemd 的发行版,例如 Debian/Ubuntu/CentOS7+,您必须运行 sudo systemctl enable gitlab-runsvdir。对于没有 systemd 的发行版,例如 CentOS 6,您需要从头开始安装极狐GitLab 实例,并按照设置说明将其设置为次要站点,在这种情况下,您无需执行下一步。
    note如果您在灾难恢复过程中更改了此站点的 DNS 记录,在此过程中,您可能需要阻止对该站点的所有写入
  2. 设置数据库复制。在这种情况下,次要站点是指之前的主要站点。

    1. 如果 PgBouncer当前次要站点(当它是主要站点时)上启用,请通过编辑 /etc/gitlab/gitlab.rb 禁用它,并运行sudo gitlab-ctl reconfigure
    2. 然后,您可以在次要站点上设置数据库复制。

如果您丢失了原来的主要站点,请按照设置说明,设置新的次要站点。

次要站点提升为主要站点

当初始复制完成并且主要站点和次要站点紧密同步时,您可以执行计划的故障转移

恢复次要站点

如果您的目标是再次拥有两个站点,您还需要通过重复第一步(将前主要站点配置为次要站点),使您的次要站点重新上线。