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

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

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

本文内容

Did this doc help you?

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 索引。 在这种情况下,可能需要手动重新编制索引。
  • 如果 GitHub Enterprise Server 配置为高可用性,迁移脚本必须在复制仍在进行时运行。 开始升级之前,必须允许更改才能完全复制到其他设备。 如果迁移脚本运行时复制未运行,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

    :如果您有要迁移的 webhook 索引,运行在线迁移后,系统将提示您启用维护模式。

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

Did this doc help you?