使用热补丁升级
您可以使用热更新将 GitHub Enterprise Server 升级为最新的补丁版本,它不需要维护时间窗,通常不需要重启。 您可以使用热更新来升级到更新的补丁版本,但不能升级到功能版本。 例如,您可以从 2.10.1
升级到 2.10.5
,因为它们属于相同的功能系列,但不能从 2. 0.9
升级到 2.11.0
,因为它们处于不同的功能系列中。 热补丁安装脚本可在集群中的每个节点上安装热补丁,并按正确顺序重新启动服务以避免停机。
- 使用 GitHub Enterprise Server 备份实用程序 备份数据。
- 在任何节点的管理 shell 中,使用
ghe-cluster-hotpatch
命令安装最新的热补丁。 您可以为热补丁提供 URL,也可以手动下载该热补丁并指定本地文件名。$ ghe-cluster-hotpatch https://HOTPATCH-URL/FILENAME.hpkg
使用升级包升级
使用升级包将 GitHub Enterprise Server 集群升级到最新功能版本。 例如,您可以从 2.11
升级到 2.13
。
准备升级
- 查看要升级到的版本的集群网络配置,并根据需要更新配置。
- 使用 GitHub Enterprise Server 备份实用程序 备份数据。
- 为 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
每个节点。 - 通过运行
ghe-cluster-maintenance -u
,从任何节点的管理 shell 退出维护模式。