如果您无法访问数据存储中的数据(例如,数据存储发生故障或编辑者从托管要素图层中删除了错误数据),则您可以使用备份文件恢复数据。您也可以在替换计算机以重新分配场景缓存数据后恢复切片缓存数据存储。
如果数据存储中的一台或多台计算机发生故障,请在新计算机上安装 ArcGIS Data Store 并使用 restoredatastore 实用程序恢复最近可用的完整备份。
您执行此操作的方式会根据数据存储类型和替换的计算机台数而有所不同。例如,如果您替换了切片缓存(聚类)或时空大数据存储中的所有计算机,您需要运行两次 restoredatastore 实用程序以容纳所有数据。
如果关系数据存储配置为时间点恢复,若要将托管要素图层数据恢复至指定的时间点,则需在现有关系数据存储顶部进行恢复并指定要恢复到的日期和时间。
关于恢复数据存储的重要信息
请记住以下有关 ArcGIS Data Store 恢复的信息:
- 您必须通过在开发或测试部署上测试备份和恢复过程来确保它们正常工作。当需要恢复生产部署时,您不希望发现工作流中的缺陷。
- 已压缩用于恢复的备份文件。恢复数据后,必须将这些文件解压到过渡位置。这表示您需要具有可兼容此数据的过渡位置。默认情况下,在数据目录中过渡文件。因此,如果数据存储中包含了大量数据,则您可能需要设置单独的过渡位置并指定用于数据存储恢复的过渡位置。您可以使用 changestaginglocation 实用程序指定单独过渡位置。
- 在运行 restoredatastore 实用程序之前,请确保没有用户在进行图层的发布或编辑操作。这些新服务和编辑内容将会丢失,因为它们没有包括在您准备恢复的备份文件中。
- 当您恢复数据时,客户端和服务无法访问数据存储中的现有数据。
- 如果在本地部署 ArcGIS Enterprise,但数据存储备份文件位于云存储中,则与备份文件存储在本地文件共享中相比,创建备份以及从这些备份中进行恢复所需的时间更长。
发生故障后恢复关系数据存储或主备用模式切片缓存数据存储
如果硬件停止运行,或者数据存储不可用且无法返回到在线状态,则需要在新计算机上安装 ArcGIS Data Store,然后使用 restoredatastore 实用程序对新安装应用备份文件。这将在新计算机上重新创建数据存储,并会保留注册到现有 GIS Server 站点的数据存储。
- 在新计算机上安装 ArcGIS Data Store。
请勿继续进行配置。关闭在安装结束时打开的数据存储配置向导。
- 打开 shell 命令。
- 运行 <ArcGIS Data Store installation directory>\datastore\tools 中的 restoredatastore 实用程序以恢复关系或切片数据存储的最近备份。
请参阅实用程序参考或在语法的命令行中输入 --help。
本示例会将最近关系数据备份存储从 /net/fortknox/backups/datastore/relational 恢复到 /usr/arcgisdatastore。由于在默认情况下该数据存储仍会受到将其注册到的 GIS Server 站点的限制,因此您无需指定 --bound true,但是需要指定 GIS Server 站点 URL 和管理员凭据。
./restoredatastore --store relational --target most-recent --source-loc /net/fortknox/backups/datastore/relational --data-dir /usr/arcgisdatastore --server-url https://gisserver.domain.com:6443 --server-admin siteadmin --server-password MySApw
如果您使用 --data-dir 选项指定的目录不存在,则该目录将会被创建。如果存在,您必须对其具有写入访问权限,且该目录必须为空。否则,恢复操作将失败。
- 输入 yes 确认希望恢复数据存储。
将现有关系数据存储恢复至特定时间点
如果关系数据存储配置为时间点恢复,可以使用备份文件将关系数据存储恢复至指定的时间点。例如,如果编辑者对托管要素图层中的数据进行了大量编辑,但是在第二天发现这些编辑是错误的,则您可以将关系数据存储恢复至进行编辑前的状态。
指定的时间必须是协调世界时间 (UTC)。
注:
在将关系数据存储恢复至的时间点之后发布到门户的所有要素图层将不再有效,因为这些图层所使用的数据将不再存在于数据存储中。
还需注意的是如果您禁用了自动备份,则无法恢复至指定时间点。
- 打开 shell 命令。
- 运行 <ArcGIS Data Store installation directory>\datastore\tools 中的 restoredatastore 实用程序将数据恢复至特定时间点。
将关系数据存储恢复到特定时间点的语法如下:
restoredatastore --store relational --target <date and time> --server-url <ArcGIS Server URL> --server-admin <ArcGIS Server admin user> --server-password <ArcGIS Server admin password>
例如,键入以下内容将文件中的数据存储恢复至其在 2014 年 3 月 20 日下午 5:00 UTC 的 状态:
./restoredatastore --store relational --target 2014-03-20-17:00:00 --server-url https://gisserver.domain.com:6443 --server-admin siteadmin --server-password MySApw You are going to restore the data store from a data store backup. This process could take a long time, depending on the size of your data. Please do not interrupt the process once it has started. Do you want to continue (Yes or No)? Yes
- 输入 yes 确认希望恢复数据存储。
提示:
如果希望编写 restoredatastore 命令(包括禁止确认提示符的标记)的脚本,则请按以下示例操作:
restoredatastore --store relational --target 2014-03-20-17:00:00 --prompt no
您的托管要素图层数据已恢复至您指定的时间点。
发生故障后恢复聚类切片缓存数据存储以重新分配场景缓存数据
如果在聚类模式下运行的切片缓存数据存储计算机发生故障,且无法恢复在线状态,请在替换丢失的计算机后,恢复切片缓存数据存储。恢复数据时,ArcGIS Data Store 会将场景缓存数据的副本重新分配给数据存储中的所有计算机,包括新的计算机。
按照以下说明检测并替换故障的切片缓存数据存储计算机,恢复并重新分配场景缓存数据以实现高度可用性:
- 如果您怀疑其中一台切片缓存数据存储计算机存在故障,请运行 describedatastore 命令行实用程序来确认是否有计算机无法访问。
- 如果实用程序表明存在故障计算机,请尝试恢复此计算机。
例如,如果网线或电源线断开,请将其插上并启动计算机。
- 如果您能够恢复计算机,请恢复其在线状态,并再次运行 describedatastore 实用程序以确认计算机已恢复在线状态并加入切片缓存数据存储。对场景图层进行一些测试,以确保其可访问。如果一切正常,则可以结束测试。但是,如果无法恢复计算机,请继续执行下一步。
- 使用 --force 选项运行 removemachine 实用程序,以从切片缓存数据存储移除故障的计算机。
在本示例中,计算机 tilecache3 无法访问且无法恢复。由于 ArcGIS Data Store 无法访问计算机,您必须指定 --force true 以从切片缓存数据存储中移除计算机。
./removemachine tilecache3 --store tilecache --force true
- 获取与旧计算机相同操作系统的新计算机。在该计算机上安装 ArcGIS Data Store,然后使用相同的托管 ArcGIS Server 站点对其进行配置,以将其添加到现有切片缓存数据存储。
- 运行 ArcGIS Server 验证 REST 命令,以确保您的现有场景缓存数据高度可用。如果您收到消息提示您一个或多个场景图层缓存只有一个副本,请继续执行其他步骤。
- 请确认您是否已为切片缓存数据存储配置共享备份位置。如果没有,请立即配置。
- 确保没有用户发布或更新任何场景图层或正在构建任何场景缓存。
要检测是否正在构建或重建场景缓存,请登录到托管服务器的 ArcGIS Server Manager,打开站点 > 作业,在服务下拉列表中选择 System/SceneCachingControllers,然后单击查询。如果服务器正在构建场景缓存,则查询时会显示作业状态。请等到缓存作业完成后再继续。如果没有列出场景缓存作业,则可以继续。
为确保没有用户发布新图层或编辑内容,您可以将 ArcGIS Enterprise 设置为只读模式。但请注意,这会影响到所有使用门户的用户。
- 为切片缓存数据存储创建备份。
在本示例中,将创建名为 myscenecachebu 的备份文件,并将其存储在您注册为切片缓存数据存储备份位置的 Amazon Simple Storage Service (S3) 存储段中的备份位置。
./backupdatastore myscenecachebu --store tilecache --location type=s3;location=mys3bucket
- 将 restoredatastore 实用程序的 replicatedata 选项设置为 true,并使用该实用程序覆盖切片缓存数据存储的内容,然后将内容重新分配到所有计算机。
在以下示例中,myscenecachebu 文件用于恢复切片缓存数据存储,replicatedata 选项设置为 true,用于指示 ArcGIS Data Store 切片缓存数据存储中的所有计算机都应分配每个场景缓存的两个副本。
./restoredatastore.sh --store tilecache --target myscenecachebu --serverurl https://gisserver.domain.com:6443 --server-admin myadmin --server-password myAdminPWd! --replicatedata true
- 如果您已将 ArcGIS Enterprise 设置为只读模式,请将其恢复为读写模式。
- 再次运行验证,确保所有场景缓存有两个副本。
在所有计算机丢失后恢复时空大数据存储或切片缓存数据存储
如果您必须替换切片缓存或时空大数据存储中的所有计算机(例如,洪水破坏了您的数据中心,或者您必须恢复到旧版本的 ArcGIS Enterprise),请按照以下步骤恢复您的切片缓存或时空大数据存储:
- 在新计算机上安装 ArcGIS Data Store。
请勿继续进行配置。关闭在安装结束时打开的数据存储配置向导。
- 打开 shell 命令。
- 从 <ArcGIS Data Store installation directory>\datastore\tools 中运行 restoredatastore 实用程序且将 --loaddata 操作设置为 false 以准备恢复时空大数据存储的第一台计算机。
请参阅实用程序参考或在语法的命令行中输入 --help。
本示例会准备新计算机以将最近的时空大数据备份存储从 /net/myserver/backups/spatiotemporal 恢复至 /usr/arcgisdatastore。--loaddata 操作已设置为 false,因此数据还未加载。
./restoredatastore --store spatiotemporal --target most-recent --source-loc /net/myserver/backups/spatiotemporal --data-dir /usr/arcgisdatastore --loaddata false --server-url https://gisserver.domain.com:6443 --server-admin siteadmin --server-password MySApw
如果您使用 --data-dir 选项指定的目录不存在,数据存储将会创建该目录。如果目录存在,您必须对其具有写入访问权限,且该目录必须为空。否则,恢复操作将失败。
要加载切片缓存数据存储的数据,您需要使用前一个示例中的 --source-loc 操作来指定 --store tilecache 和切片缓存备份位置。
- 在其他计算机上安装 ArcGIS Data Store 并在每台计算机上运行数据存储配置向导或者 configuredatastore 实用工具,以将计算机添加至托管服务器。
- 再次运行 restoredatastore 实用工具且不进行 --loaddata 选项或将 --loaddata 设置为 true 以恢复所有数据。
数据将分布在所有切片缓存或时空大数据存储计算机上。
本示例使用相同的备份文件(位于 /net/myserver/backups/spatiotemporal 中),将数据恢复到最新配置的时空大数据存储。--loaddata 选项已默认设置为 true,因此载入数据时无需另行指定。
./restoredatastore --store spatiotemporal --target most-recent --source-loc /net/myserver/backups/spatiotemporal --data-dir /usr/arcgisdatastore --server-url https://gisserver.domain.com:6443 --server-admin siteadmin --server-password MySApw
若目标计算机可以容纳备份文件内的所有数据,则可恢复时空大数据存储
如果用于创建替换时空大数据存储的第一台计算机包含的硬盘空间和内存足以容纳备份文件内的所有数据,或者您希望恢复现有的时空大数据存储计算机,则您仅需运行一次 restoredatastore 实用工具。恢复后,您可以将其他新计算机添加到时空大数据存储中,而 ArcGIS Data Store 会将数据复制到其他计算机上。
- 在新计算机上安装 ArcGIS Data Store。
请勿继续进行配置。关闭在安装结束时打开的数据存储配置向导。
- 打开 shell 命令。
- 从 <ArcGIS Data Store installation directory>\datastore\tools 中运行 restoredatastore 实用程序且将 --loaddata 操作设置为 true 时空大数据存储。
请参阅实用程序参考或在语法的命令行中输入 --help。
本示例会准备新计算机以将最近的时空大数据备份存储从 /net/myserver/backups/spatiotemporal 恢复至 /usr/arcgisdatastore。--loaddata 操作设置为 true,因为新计算机可以容纳备份文件的所有信息。
./restoredatastore --store spatiotemporal --target most-recent --source-loc /net/myserver/backups/spatiotemporal --data-dir /usr/arcgisdatastore --loaddata true --server-url https://gisserver.domain.com:6443 --server-admin siteadmin --server-password MySApw
如果您使用 --data-dir 选项指定的目录不存在,数据存储将会创建该目录。如果目录存在,您必须对其具有写入访问权限,且该目录必须为空。否则,恢复操作将失败。
请注意,在这种情况下由于数据为默认载入,您可以忽略 --loaddata 操作。
如果计算机无法容纳备份文件中的所有数据,恢复操作将失败。
- 在其他计算机上安装 ArcGIS Data Store 并在每台计算机上运行数据存储配置向导或者 configuredatastore 实用工具,以将时空大数据存储计算机添加至托管服务器。
ArcGIS Data Store 将数据分发并复制到其他计算机。
将关系或切片缓存数据存储恢复至不同的操作系统或版本
您可以使用备份文件将关系或切片缓存数据存储恢复至运行不同操作系统或不同版本 ArcGIS Data Store 的计算机上。
例如,如果切片缓存数据存储正在 Microsoft Windows 服务器上运行,但您的信息技术部门将切换到 Linux 服务器, 则可使用 Windows 服务器上的 ArcGIS Data Store 10.5.1 或更高版本安装创建的备份文件,在 Linux 服务器上恢复切片缓存数据存储。
- 在新服务器上安装 ArcGIS Data Store。请勿继续进行配置。
您在新计算机上安装的 ArcGIS Data Store 可与您希望恢复的 ArcGIS Data Store 版本相同,也可以是较新版本。
- 如果还没有现有关系或切片缓存数据存储的完整备份,请使用 backupdatastore 实用工具进行创建。
- 将备份文件放在可由新 ArcGIS Data Store 安装访问的共享位置。
- 运行 restoredatastore 实用工具以将数据恢复至新计算机。恢复数据时需指定 --bound true 和门户现有托管服务器的 URL(GIS Server 站点)。这样,现有托管要素和场景图层将继续工作。
在此例中,将恢复切片缓存数据存储并将其注册到 GIS Server 站点https://mygisserver.domain.com:6443。备份文件位于共享目录 /net/backups/tilecache 中,新计算机上的 ArcGIS Data Store 目录是 /arcgis/datastore。
./restoredatastore.sh --store tileCache --source-loc /net/backups/tilecache --data-dir /arcgis/datastore --server-url https://gisserver.domain.com:6443 --server-admin siteadmin --server-password MySApw