Skip to main content

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

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

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

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

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

    • 将设备置于维护模式。

      • 若要使用管理控制台,请参阅 AUTOTITLE

      • 你还可以使用该命令。

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

      注意

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

    • 若要验证所有复制通道均有报告,请使用命令。

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

  3. 在您想要故障转移至的副本设备上,停止复制并将该副本设备提升为主状态,请使用相关命令。

    ghe-repl-promote
    

    注意

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

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

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

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

    注意

    如果故障转移前存在多个副本,那么在故障转移过程中未被提升的副本将继续保留在与原主节点关联的高可用组中。 在从新主节点重新建立复制关系之前,必须先将这些副本从旧主节点的高可用配置中移除。 有关详细信息,请参阅“AUTOTITLE”。

  7. 您不打算在故障转移之前将其设置为复制,而是在故障转移前已经是高可用性配置一部分的设备,需要通过 UUID 从高可用性配置中删除。

    • 在以前的设备上,通过 获取其 UUID。

      cat /data/user/common/uuid
      
    • 在新主数据库上,使用 移除 UUID。 请将"XXX"替换为你在上一步中检索到的 UUID。

      ghe-repl-decommission UUID
      

    警告

    如果不打算从新主节点重新建立复制,则必须关闭或删除属于以前高可用性配置的任何设备。 如果这些设备在故障转移期间无法访问,则它们可能会在以后可访问时对新主节点造成意外更改。 为防止配置冲突或数据完整性问题,请始终确保閒置设备已正确退役。

其他阅读材料

  • 自动标题