关于 GitHub Enterprise Server 备份的已知问题
GitHub 针对可能影响 GitHub Enterprise Server 实例的数据备份或还原的以下问题提供了解决方法。 有关详细信息,请参阅 GitHub Enterprise Server 发行说明中的“已知问题”。
还原备份后,用户无法登录
注意****:已在 GitHub Enterprise Server Backup Utilities 3.9.1 中修复这个已知问题。
如果使用 GitHub Enterprise Server Backup Utilities 3.7.0、3.8.0 或 3.9.0 来备份运行 GitHub Enterprise Server3.7或 3.8 系列任何版本的实例,将备份还原到新实例后,用户将无法登录。 虽然用户无法登录,但备份本身不受影响,所有数据保持不变。
还原受此问题影响的现有备份后,可以通过修改新实例上的配置来解决此问题。
从现有备份还原
如果已将现有备份从 GitHub Enterprise Server Backup Utilities 3.7.0、3.8.0 或 3.9.0 还原到新实例,并且用户无法登录,则必须从源 GitHub Enterprise Server 实例输出配置数据,并调整目标实例上的配置。
若要确保用户可以登录到新的目标实例,请确保环境满足以下要求。
- 源 GitHub Enterprise Server 实例必须运行并可通过 SSH 访问。
- 必须具有来自 GitHub Enterprise Server Backup Utilities 3.7.0、3.8.0 或 3.9.0 的现有备份。
- 必须预配了新的目标 GitHub Enterprise Server 实例并还原了备份。 有关详细信息,请参阅“设置 GitHub Enterprise Server 实例”和“在实例上配置备份”。
-
通过 SSH 连接到备份的源 GitHub Enterprise Server 实例。 如果实例包含多个节点,例如,如果配置了高可用性或异地复制,则通过 SSH 连接到主节点。 如果使用群集,则可以通过 SSH 连接到任何节点。 将 HOSTNAME 替换为实例的实际主机名。 有关 SSH 访问权限的详细信息,请参阅“访问管理 shell (SSH)”。
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME
-
若要显示解密密钥的列表,请运行以下命令。
Shell ghe-config secrets.github.encrypted-column-keying-material
ghe-config secrets.github.encrypted-column-keying-material
-
将输出复制到安全的临时位置。
-
若要显示加密密钥的列表,请运行以下命令。
Shell ghe-config secrets.github.encrypted-column-current-encryption-key
ghe-config secrets.github.encrypted-column-current-encryption-key
-
将输出复制到安全的临时位置。
-
通过 SSH 连接到还原备份的目标 GitHub Enterprise Server 实例。 将 HOSTNAME 替换为实例的实际主机名。
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME
-
启用维护模式。 有关详细信息,请参阅“启用和排定维护模式”。
-
若要验证目标实例是否已准备好进行配置,请运行以下命令。 不应显示任何输出。
Shell ghe-config secrets.github.encrypted-column-keying-material ghe-config secrets.github.encrypted-column-current-encryption-key
ghe-config secrets.github.encrypted-column-keying-material ghe-config secrets.github.encrypted-column-current-encryption-key
-
若要更新目标实例上的解密密钥,请运行以下命令。 将 DECRYPTION-KEY-LIST 替换为步骤 1 中的输出。
Shell ghe-config secrets.github.encrypted-column-keying-material "DECRYPTION-KEY-LIST"
ghe-config secrets.github.encrypted-column-keying-material "DECRYPTION-KEY-LIST"
-
若要更新目标实例上的加密密钥,请运行以下命令。 将 ENCRYPTION-KEY 替换为步骤 4 中的输出。
Shell ghe-config secrets.github.encrypted-column-current-encryption-key "ENCRYPTION-KEY"
ghe-config secrets.github.encrypted-column-current-encryption-key "ENCRYPTION-KEY"
-
若要应用配置,请运行以下命令。
Shell ghe-config-apply
ghe-config-apply
-
等待配置运行完毕。
-
若要确保目标实例的配置包含密钥,请运行以下命令 ,并验证输出是否与步骤 1 和步骤 4 匹配。
Shell ghe-config secrets.github.encrypted-column-keying-material ghe-config secrets.github.encrypted-column-current-encryption-key
ghe-config secrets.github.encrypted-column-keying-material ghe-config secrets.github.encrypted-column-current-encryption-key
-
让用户登录到目标实例。 如果出现任何问题,请联系 GitHub Enterprise 支持。 有关详细信息,请参阅“联系 GitHub 支持”。