使用热补丁升级
You can upgrade GitHub Enterprise Server to the latest patch release using a hotpatch.
You can use hotpatching to upgrade to a newer patch release, but not a feature release. For example, you can upgrade from 2.10.1
to 2.10.5
because they are in the same feature series, but not from 2.10.9
to 2.11.0
because they are in a different feature series.
Hotpatches do not generally require a reboot. If a hotpatch does require a reboot, the GitHub Enterprise Server release notes will indicate the requirement.
Hotpatches require a configuration run, which can cause a brief period of errors or unresponsiveness for some or all services on your GitHub Enterprise Server instance. You are not required to enable maintenance mode during installation of a hotpatch, but doing so will guarantee that users see a maintenance page instead of errors or timeouts. For more information, see "Enabling and scheduling maintenance mode." 热补丁安装脚本可在集群中的每个节点上安装热补丁,并按正确顺序重新启动服务以避免停机。
- 使用 GitHub Enterprise Server Backup Utilities 备份数据。
- 在任何节点的管理 shell 中,使用
ghe-cluster-hotpatch
命令安装最新的热补丁。 您可以为热补丁提供 URL,也可以手动下载该热补丁并指定本地文件名。$ ghe-cluster-hotpatch https://HOTPATCH-URL/FILENAME.hpkg
使用升级包升级
使用升级包将 GitHub Enterprise Server 集群升级到最新功能版本。 例如,可从 2.11
升级到 2.13
。
准备升级
- 查看要升级到的版本的群集网络配置,并� �据需要更新配置。
- 使用 GitHub Enterprise Server Backup Utilities 备份数据。
- 为 GitHub Enterprise Server 集群的最终用户排定维护窗口,� 为它在升级期间� 法正常使用。 在群集群升级过程中,维护模式会阻止用户访问并防止数据更改。
- 在 GitHub Enterprise Server 下载页面上,将 .pkg 升级文件的 URL 复制到剪贴板。
- 在任何节点的管理 shell 中,将
ghe-cluster-each
命令与curl
结合使用,只需一步即可将发布包下载到每个节点。 使用您在上一步中复制的 URL 作为参数。$ ghe-cluster-each -- "cd /home/admin && curl -L -O https://PACKAGE-URL.pkg" > ghe-app-node-1: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-app-node-1: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 24.2M 0 0:00:20 0:00:20 --:--:-- 27.4M > ghe-data-node-2: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-data-node-2: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 21.3M 0 0:00:23 0:00:23 --:--:-- 25.8M > ghe-data-node-1: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-data-node-1: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 19.7M 0 0:00:25 0:00:25 --:--:-- 25.6M > ghe-app-node-2: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-app-node-2: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 19.8M 0 0:00:25 0:00:25 --:--:-- 17.6M > ghe-data-node-3: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-data-node-3: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 19.7M 0 0:00:25 0:00:25 --:--:-- 25.5M
- 确定主 MySQL 节点,此节点在
cluster.conf
中定义为mysql-master = <hostname>
。 此节点将最后升级。
升级集群节点
- 通过连接到任何集群节点的管理 shell 并运行
ghe-cluster-maintenance -s
,� �据排定的窗口启用维护模式。 - 除了主 MySQL 节点之外,连接到每个 GitHub Enterprise Server 节点的管理 shell。
运行
ghe-upgrade
命令,提供在准备升级的步骤 4 中下载的包文件名:$ ghe-upgrade PACKAGE-FILENAME.pkg > *** verifying upgrade package signature... > 497MB 0:00:04 [ 117MB/s] [==========================================>] 100% > gpg: Signature made Fri 19 Feb 2016 02:33:50 PM UTC using RSA key ID 0D65D57A > gpg: checking the trustdb > gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model > gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u > gpg: Good signature from "GitHub Enterprise (Upgrade Package Key) >
" - 升级过程将在完成后重启节点。 验证是否可在每个节点重启后对其执行
ping
操作。 - 连接到主 MySQL 节点的管理 shell。 运行
ghe-upgrade
命令,提供在准备升级的步骤 4 中下载的包文件名:$ ghe-upgrade PACKAGE-FILENAME.pkg > *** verifying upgrade package signature... > 497MB 0:00:04 [ 117MB/s] [==========================================>] 100% > gpg: Signature made Fri 19 Feb 2016 02:33:50 PM UTC using RSA key ID 0D65D57A > gpg: checking the trustdb > gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model > gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u > gpg: Good signature from "GitHub Enterprise (Upgrade Package Key) >
" - 升级过程将在完成后重启主 MySQL 节点。 验证是否可在每个节点重启后对其执行
ping
操作。 - 连接到主 MySQL 节点的管理 shell 并运行
ghe-cluster-config-apply
命令。 - 当
ghe-cluster-config-apply
完成时,通过运行ghe-cluster-status
检查服务是否处于正常状态。 - 通过运行
ghe-cluster-maintenance -u
,从任何节点的管理 shell 退出维护模式。