我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

此版本的 GitHub Enterprise 将停止服务 此版本的 GitHub Enterprise 已停止服务 2020-08-20. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

文章版本: Enterprise Server 2.18

将 Elasticsearch 索引迁移到 GitHub Enterprise Server 2.14 或更高版本

要准备升级到 GitHub Enterprise Server 2.14,您需要通过迁移脚本将索引迁移到 Elasticsearch 5.6。

本文内容

GitHub Enterprise Server 2.14 includes an upgrade to Elasticsearch 5.6. Before upgrading to GitHub Enterprise Server 2.14 or later from 2.12 or 2.13, we recommend you download, install, and run the Elasticsearch migration tools, so your largest indices are migrated online while your appliance still has online access.

搜索索引

迁移脚本会在设备在线时先检查任何 search 索引。 迁移 search 索引可能需要几分钟到几天,具体时长视其大小而定。 以大索引为例,需要几天的时间才能将这类索引迁移到测试环境。

admin@ip-172-31-2-141:~$ curl -s http://localhost:9200/_cat/indices?v | sort -n -k 6
green  open   blog-1                     1   0          0            0       144b           144b
green  open   projects-1                 1   0          0            0       144b           144b
green  open   registry-packages-1        1   0          0            0       144b           144b
green  open   showcases-1                1   0          0            0       144b           144b
health status index                    pri rep docs.count docs.deleted store.size pri.store.size
green  open   pull-requests-1            1   0          1            0      9.3kb          9.3kb
green  open   wikis-1                    1   0          2            0        5kb            5kb
green  open   hookshot-logs-2018-05-29   5   0         25            0    124.2kb        124.2kb
green  open   repos-1                    1   0       1638            1      1.4mb          1.4mb
green  open   gists-1                    1   0       3531           64    291.9kb        291.9kb
green  open   audit_log-1-2018-06-1      1   0      11108            0        3mb            3mb
green  open   users-1                    1   0      19866           56      2.7mb          2.7mb
green  open   hookshot-logs-2018-05-31   5   0      20000            0     33.4mb         33.4mb
green  open   hookshot-logs-2018-06-04   5   0      20000            0     32.6mb         32.6mb
green  open   issues-1                   1   0      26405            6     82.8mb         82.8mb
green  open   hookshot-logs-2018-05-30   5   0     119744            0    196.8mb        196.8mb
green  open   audit_log-1-2018-05-1      1   0     191664            0       50mb           50mb
green  open   code-search-1              1   0    6932626           44     42.9gb         42.9gb
green  open   commits-1                  1   0   63753587         1485     45.4gb         45.4gb

search 索引开头为:

  • blog-
  • code-search-
  • commits-
  • gists-
  • issues-
  • labels-
  • marketplace-listings-
  • non-marketplace-listings-
  • projects-
  • pull-requests-
  • registry-packages-
  • repos-
  • showcases-
  • topics-
  • users-

Web 挂钩索引

在迁移脚本在线重建必要的 search 索引后,脚本将检查是否需要重建 webhook 索引。 如果运行使用 GitHub Enterprise Server 2.12 或 2.13 的设备已达到 14 天或更久,那么您很可能不需要重建 webhook 索引,因为 webhook 索引的默认保留政策为七天。 如果您要从 GitHub Enterprise 2.11 或更早版本更新设备,则可能需要重建 webhook 索引。

如果需要重建任何 webhook 索引,则系统会先提示您启用维护模式,然后脚本才能重建 webhook 索引。 尽管迁移 webhook 索引需要一定的停机时间,但不需要较长的维护窗口或停机时间。

webhook 索引以 hookshot-logs- 开头。

可用索引

您可以使用 curl 查看设备上的可用索引。

admin@ip-172-31-2-141:~$ curl -s http://localhost:9200/_cat/indices?v | sort -n -k 6
green  open   blog-1                     1   0          0            0       144b           144b
green  open   projects-1                 1   0          0            0       144b           144b
green  open   registry-packages-1        1   0          0            0       144b           144b
green  open   showcases-1                1   0          0            0       144b           144b
health status index                    pri rep docs.count docs.deleted store.size pri.store.size
green  open   pull-requests-1            1   0          1            0      9.3kb          9.3kb
green  open   wikis-1                    1   0          2            0        5kb            5kb
green  open   hookshot-logs-2018-05-29   5   0         25            0    124.2kb        124.2kb
green  open   repos-1                    1   0       1638            1      1.4mb          1.4mb
green  open   gists-1                    1   0       3531           64    291.9kb        291.9kb
green  open   audit_log-1-2018-06-1      1   0      11108            0        3mb            3mb
green  open   users-1                    1   0      19866           56      2.7mb          2.7mb
green  open   hookshot-logs-2018-05-31   5   0      20000            0     33.4mb         33.4mb
green  open   hookshot-logs-2018-06-04   5   0      20000            0     32.6mb         32.6mb
green  open   issues-1                   1   0      26405            6     82.8mb         82.8mb
green  open   hookshot-logs-2018-05-30   5   0     119744            0    196.8mb        196.8mb
green  open   audit_log-1-2018-05-1      1   0     191664            0       50mb           50mb
green  open   code-search-1              1   0    6932626           44     42.9gb         42.9gb
green  open   commits-1                  1   0   63753587         1485     45.4gb         45.4gb

准备 GitHub Enterprise Server 2.12 或 2.13 设备

如果您在不运行迁移工具的情况下升级到 GitHub Enterprise Server 2.14 或更高版本,现有的 Elasticsearch 索引可能无效并无法正常使用。 要运行 Elasticsearch 迁移脚本,您的 GitHub Enterprise Server 设备必须运行 GitHub Enterprise 2.12 或 2.13。

警告:

  • 使用 GitHub Enterprise Server 备份实用程序 将在恢复后销毁不兼容 5.X 的旧 Elasticsearch 索引。 在这种情况下,可能需要手动重新编制索引。
  • If GitHub Enterprise Server is configured for High Availability, the migration script must run while replication is still running. 开始升级之前,必须允许更改才能完全复制到其他设备。 如果迁移脚本运行时复制未运行,ElasticSearch 索引可能失效。
  1. 使用 SSH 向启用了高可用性的主设备进行身份验证。

  2. 将迁移脚本下载到设备并进行安装:

    $ wget https://github-enterprise.s3.amazonaws.com/util/es-5x-transition-tools.tar.gz
    $ sudo tar -C / -xvf es-5x-transition-tools.tar.gz

    如果您管理 GitHub Enterprise Server 集群,则使用 SSH 向其中一个 ElasticSearch 服务器节点进行身份验证,并在该节点上安装迁移工具。 节点定位方法如下:

    $ ghe-cluster-each -r elasticsearch -p
     ghe-test-data-0
     ghe-test-data-1
     ghe-test-data-2
  3. 运行迁移脚本:

    $ /usr/local/share/enterprise/ghe-es-5x-migration -r

    Note: If you have webhook indices to migrate, after running the online migrations, you'll be prompted to enable maintenance mode.

  4. 如果您要运行 GitHub Enterprise Server 集群,请遵循单 VM 或高可用性环境的官方升级文档或集群升级指南。 更多信息请参阅“升级 GitHub Enterprise Server”或“升级集群”。

问问别人

找不到要找的内容?

联系我们