Skip to main content

此版本的 GitHub Enterprise Server 已于以下日期停止服务 2024-09-25. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

发起到副本设备的故障转移

您可以使用命令行故障转移到 GitHub Enterprise Server 副本设备以进行维护和测试,也可以在主设备发生故障时进行故障转移。

故障转移所需的时间取决于手动升级副本和重定向流量所需的时长。 平均时间范围为 20-30 分钟。

推广副本不会自动为现有设备创建副本。 在推广副本后,如有需要,可以设置从新的主设备复制到现有设备及之前的主设备。

  1. 如果主设备可用,要在切换设备之前允许复制完成,请在主设备上将主设备置于维护模式。

    • 将设备置于维护模式。

      • 若要使用管理控制台,请参阅“启用和排定维护模式

      • 也可使用 ghe-maintenance -s 命令。

        ghe-maintenance -s
        
    • 当活动 Git 操作、MySQL 查询和 Resque 作业数量达到零时,等待 30 秒。

      Note

      Nomad 将始终有作业在运行,即使是在维护模式下,因此你可以安全地忽略这些作业。

    • 若要验证所有复制通道均报告 OK,请使用 ghe-repl-status -vv 命令。

      ghe-repl-status -vv
      
  2. 在所有活动副本设备上启用维护模式。 有关详细信息,请参阅“启用和排定维护模式”。

  3. 在故障转移所至的副本设备上,要停止复制并将副本设备提升为主状态,请使用 ghe-repl-promote 命令。

    ghe-repl-promote
    

    Note

    如果主节点不可用,则可能会出现警告和超时,但可以忽略。

  4. 将 DNS 记录更新为指向副本的 IP 地址。 流量会在经过 TTL 周期后定向到副本。 如果您要使用负载均衡器,请务必将其配置为向副本发送流量。

  5. 通知用户他们可以恢复正常操作。

  6. 如有需要,请设置从新的主设备复制到现有设备和之前的主设备。 有关详细信息,请参阅“关于高可用性配置”。

  7. 您不打算在故障转移之前将复制设置为高可用性配置一部分的设备需由 UUID 从高可用性配置中删除。

    • 在以前的设备上,通过 cat /data/user/common/uuid 获取其 UUID。

      cat /data/user/common/uuid
      
    • 在新的主设备上,使用 ghe-repl-teardown 删除 UUID。 请将 替换为你在上一步中检索到的 UUID。

      ghe-repl-teardown -u UUID
      

延伸阅读