Skip To Content

使用 MigrateSceneServices 实用程序迁移托管场景图层缓存

ArcGIS Enterprise 部署升级到 11.5 后,建议您向部署添加对象存储并将托管场景图层缓存迁移到其中。 迁移时,缓存会从 ArcGIS Data Store 切片缓存数据存储移动到对象存储。

MigrateSceneServices 实用程序允许您在迁移之前收集有关服务和缓存的信息。 这包括场景服务的名称及其缓存的大小。 确定需要迁移的内容后,您可以使用 MigrateSceneServices 实用程序自动批量迁移所有托管场景图层缓存,或提供一次要迁移的服务名称列表。 例如,如果您有一两个非常大的缓存,您可以在一夜之间将其迁移,因为它们需要很长时间才能迁移。 完成这些并测试托管场景图层后,再次运行实用程序以迁移剩余的托管场景图层缓存。

迁移时,实用程序将针对每个托管场景图层执行以下操作:

  • 将缓存复制到对象存储。
  • 将图层的缓存复制到对象存储后,将从切片缓存数据存储中删除该缓存。

这意味着场景图层的缓存在两个数据存储中都会存在一小段时间。 如果您在同一台计算机上同时拥有切片缓存数据存储和对象存储(不推荐),则必须考虑这个暂时增加的磁盘空间需求。

迁移到 ArcGIS Data Store 对象存储的缓存将在对象存储上使用与切片缓存数据存储计算机上大致相同的磁盘空间量。

注:

或者,组织管理员或者每个托管场景图层的所有者可以使用门户中场景图层项目页面上的选项来迁移其缓存。 有关说明,请参阅管理场景图层

无论使用哪种方法,迁移图层缓存会在切片缓存数据存储和对象存储计算机上消耗大量 CPU 资源。

迁移托管场景图层的原因

从下一版本开始,将移除对 ArcGIS Data Store 切片缓存数据存储的支持。 因此,您必须将托管场景图层缓存迁移到对象存储。 如果您不迁移现有托管场景图层缓存,则将无法将部署升级到 11.5 以上版本。

迁移的先决条件

在迁移托管场景图层缓存之前,您必须执行以下操作:

  • ArcGIS Enterprise 11.3 或更低版本的部署升级到 11.5
  • 如果 ArcGIS Enterprise 部署尚未配置对象存储,则必须配置一个。

强烈建议您在开始迁移场景图层缓存之前创建备份。 有关创建备份的详细信息,请参阅 ArcGIS Enterprise 备份ArcGIS Data Store backupdatastore 实用程序参考。

MigrateSceneServices 实用程序参数和语法

运行 MigrateSceneServices 实用程序的语法如下:

MigrateSceneServices.so -m <analysis | execution> -s <hosting server URL> -u <administrator username> -p <administrator password> [-t <portal token>] [-r <token referrer>] [--select <list of services to migrate>] [-o <directory>] [-l <log level>] [--num-threads <threads to use>]

以下是每个参数的说明:

参数描述
-m, --mode

支持两种模式。

  • analysis - 这是默认模式。 在 analysis 模式下运行实用程序评估场景图层缓存是否可迁移,然后接收符合迁移条件的服务列表。
  • execution - 确认已配置 ArcGIS Enterprise 可以迁移并确定可迁移的场景图层缓存后,在 execution 模式下运行实用程序,将所有符合条件的托管场景图层缓存移动到切片缓存数据存储的对象存储中。
-s, --server_url

提供托管服务器站点的 URL。

-u, --username

指定与此托管服务器站点关联的 ArcGIS Enterprise 门户中默认管理员角色成员的账户用户名。

-p, --password

提供您使用 -u 参数指定的管理员账户的密码。

-r, --referrer

门户令牌的引荐来源。 使用此功能可进一步限制使用,并指定可以访问服务的特定引荐来源 URL 或 IP。 例如,您可以限制 ArcGIS Enterprise 组织的 URL。

-t, --token

可以生成一个令牌并用其代替用户名和密码。 提供令牌时,它会覆盖提供的任何用户名或密码。

如果指定引荐来源,则必须提供门户令牌。

--select

此可选参数允许您提供要迁移的服务设置列表。 列表必须采用以下格式:

"[servicename1, servicename2, servicename3]"

-o, --output-dir

此可选参数允许您指定将创建实用程序报告文件的目录(当您在分析模式下运行该实用程序时)或将创建日志文件的目录(当您在执行模式下运行该实用程序时)。 如果未定义,则实用程序会将报告或日志文件生成到运行实用程序的计算机上的一个临时目录。

-l, --log_level

使用此可选参数可以设置运行实用程序时生成的日志文件所使用的日志级别。 如果未使用其他值指定此参数,则使用的默认日志记录级别为 info

有效值(从最详细到最不详细列出)如下:

  • trace
  • debug
  • info
  • warning
  • error
  • fatal
--num-threads

覆盖用于迁移的默认线程数。 使用的默认线程数为 16。

如果您注意到缓存迁移期间 CPU 使用率为 100%,且迁移失败或无法完成,请减少实用程序使用的线程数。

当您更改此设置时,建议您将线程数设置为计算机上的核心数。 例如,如果计算机有四个核心,请将 --num-threads 设置为 4

-h, --help

使用此参数返回实用程序的语法。

运行实用程序

将在 ArcGIS Server 计算机上的 <ArcGIS Server installation directory>\tools\MigrateSceneServices 文件夹中安装 MigrateSceneServices 实用程序。

您必须从 ArcGIS Enterprise 门户托管服务器中的其中一台计算机运行实用程序。

在任何一种模式(analysisexecution)下运行 MigrateSceneServices 实用程序时,都会生成一个日志文件。 两种模式都会显示符合迁移条件的服务的计数。

在分析模式下运行实用程序时生成的报告提供了每个缓存的大小。

提示:

如果对象存储与切片缓存数据存储在同一台计算机上运行,请确定最大缓存大小。 确保数据存储计算机上有足够的可用磁盘空间来容纳此最大缓存大小的至少两倍,因为在迁移过程中会有一小段时间,在此期间缓存已在对象存储中创建但尚未从切片缓存数据存储中删除。

execution 模式下,将显示与迁移操作相关的日志条目,以及已迁移的服务计数。

要访问并运行实用程序,请执行以下步骤:

  1. 使用 ArcGIS Server 账户登录或使用具有所有 ArcGIS Server 目录读取权限的登录账户登录到托管服务器站点中的其中一台计算机。
  2. 打开命令窗口并更改为上面列出的 tools 目录。
  3. 在分析模式下运行 MigrateSceneServices 实用程序。

    在以下示例中,实用程序在分析模式下运行,并且日志文件写入名为 analysislogs 的目录中:

    ./MigrateSceneServices.so -m analysis -s https://hostingserver.example.com/waname -u portaladmin -p L00kAway! -o /temp/analysislogs

  4. 如果以分析模式运行实用程序生成的报告表明部署配置为允许迁移且存在要迁移的场景图层缓存,则以执行模式运行实用程序。

    以下示例迁移所有场景图层的缓存:

    ./MigrateSceneServices.so -m execution -s https://hostingserver.example.com/waname -u portaladmin -p L00kAway! -o /temp/migrationlogs -l error

  5. 迁移并测试所有场景图层缓存后,最后一次以分析模式运行实用程序,以确认没有需要迁移的缓存。

测试所有已迁移场景图层以确保其能够正常运行。 当确认所有场景图层均可正常运行时,ArcGIS Data Store 管理员可以运行 disabledatastore 实用程序以删除切片缓存数据存储文件并从托管服务器中取消注册该文件。

示例用法

管理员配置对象存储后,ArcGIS Server 管理员以分析模式运行 MigrateSceneServices 实用程序以确定需要迁移哪些场景服务。

ArcGIS Server 管理员登录到 ArcGIS Server 站点中用作托管服务器的其中一台计算机。 管理员使用安装 ArcGIS Server 的账户。

管理员将打开一个命令窗口,访问 tools 目录并在分析模式下运行命令。 因为报告将与同事共享,所以管理员将指定一个共享目录作为输出位置。

cd /data/arcgis/server/tools/MigrateSceneServices

./MigrateSceneServices.so -m analysis -s https://hostingserver.example.com/hserver -r https://webadaptorhost.example.com/webadaptor/admin -t abcdefg1234567 -u padmin -p 8is2much -o /net/shareddir/utiloutput

实用程序运行并确定四个场景图层仍在切片缓存数据存储中拥有其缓存,并且可以进行迁移。 结果将在命令行处显示,并在 utiloutput 目录中创建的报告中列出。 报告显示 sceneservice1、sceneservice2、sceneservice3 和 sceneservice4 仍在切片缓存数据存储中保留其缓存。

在报告中,列出了每个服务及其缓存大小,如下所示:

{
  "mode":"analysis",
  "messages":[
    "INFO: Started: Fri Aug  2 17:19:58 2024",
    "INFO: Found 4 migratable service(s)",
    "INFO: Largest service: [sceneservice2] (96459081B / ~(91.99MB)",
    "INFO: Ended: Fri Aug  2 17:20:01 2024"
  ],
  "services":[
    {
      "sceneservice1":{
        "messages":[
          "INFO: size: (48887B / ~5.1MB)"
        ]
      },
      "sceneservice2":{
        "messages":[
          "INFO: size: (96459081B / ~91.99MB)"
        ]
      },
      "sceneservice3":{
        "messages":[
          "INFO: size: (722299B / ~11.37MB)"
        ]
      },
      "sceneservice4":{
        "messages":[
          "INFO: size: (61005191B / ~70.11MB)"
        ]
      }
    }
  ]
}

GIS 工作人员检查写入共享位置的报告,并在迁移之前检查每个场景图层。 这使得他们能够比较迁移前后图层的内容和性能。 他们发现 sceneservice3 具有正在编辑的相关要素服务。 因此,在编辑者完成工作之前,sceneservice3 不会被迁移。

ArcGIS Server 管理员运行 MigrateSceneServices 实用程序以移动其他三个场景图层的缓存。

./MigrateSceneServices.so -m execution -s https://hostingserver.example.com/hserver -r https://fully.qualified.domain:6443/arcgis/admin -t abcdefg1234567 --select [sceneservice1,sceneservice2,sceneservice4] -u padmin -p 8is2much -o /net/shareddir/utiloutput -l debug

实用程序完成时,每个符合条件的场景图层缓存都已被迁移。 ArcGIS Server 管理员以分析模式再次运行 MigrateSceneServices 实用程序以确认没有需要迁移的其他场景图层。

所有迁移的场景图层都经过测试并确认可以正常运行后,ArcGIS Data Store 管理员运行 disabledatastore 实用程序从托管服务器取消注册切片缓存数据存储并删除其所有内容。