如果您无法访问数据存储中的数据(例如,ArcGIS Data Store 计算机出现故障或编辑者从托管要素图层中删除了错误数据),则可以使用备份文件恢复数据。
如果数据存储中的一台或多台计算机发生故障且无法恢复,请在新计算机上安装 ArcGIS Data Store 并使用 restoredatastore 实用程序将最新的可用完整备份恢复到该新计算机。
注:
要查找可以用于还原的备份文件,请运行 listbackups 实用程序。
具体操作方式将有所不同,具体取决于数据存储的类型以及要更换的计算机数量或类型。 以下是其中一些差异的示例:
- 如果替换切片缓存(集群)、时空大数据存储或对象存储中的所有计算机,则需要运行两次 restoredatastore 实用程序以容纳所有数据。
- 如果关系数据存储配置为时间点恢复,若要将托管要素图层数据恢复至指定的时间点,则需在现有关系数据存储顶部进行恢复并指定要恢复到的日期和时间。
- 更换切片缓存数据存储集群中的计算机并将数据恢复到新计算机后,即可重新分发场景缓存数据。
关于恢复数据存储的重要信息
请记住以下有关 ArcGIS Data Store 恢复的信息:
- 您必须通过在开发或测试部署上测试备份和恢复过程来确保它们正常工作。 当需要恢复生产部署时,您不希望发现工作流中的缺陷。
- 已压缩用于恢复的备份文件。 恢复数据后,必须将这些文件解压到暂存位置。 这表示您需要具有可兼容此数据的暂存位置。 默认情况下,这些文件将暂存在 ArcGIS Data Store 数据目录中。 如果关系或切片缓存数据存储中存在大量数据,则可以设置单独的暂存位置并针对数据存储恢复指定该位置以暂存文件。 可以使用 changestaginglocation 实用程序指定单独的暂存位置。
- 在运行 restoredatastore 实用程序之前,请确保没有用户在进行图层的发布或编辑操作。 这些新服务和编辑内容将会丢失,因为它们没有包括在您准备恢复的备份文件中。
- 当您恢复数据时,客户端和服务无法访问数据存储中的现有数据。
- 如果在本地部署 ArcGIS Enterprise,但数据存储备份文件位于云存储中,则与备份文件存储在本地文件共享中相比,创建备份以及从这些备份中进行恢复所需的时间更长。
发生故障后恢复关系数据存储、图谱存储或切片缓存数据存储(主-备用模式)
对于单机关系数据存储、切片缓存数据存储(以主-备用模式运行)或图谱存储,如果硬件停止运行,或者数据存储不可用且无法恢复在线,请在新计算机上安装 ArcGIS Data Store,然后使用 restoredatastore 实用程序将备份文件应用到新安装。 这将在新计算机上重新创建数据存储,并会保留注册到现有 GIS Server 站点的数据存储。
提示:
如果关系数据存储、图谱存储或切片缓存数据存储的主-备用部署中的主计算机出现故障,则备用计算机将成为主计算机。 请从部署中移除出现故障的计算机。 然后,可以在新计算机上安装 ArcGIS Data Store 并将其配置为备用计算机。 无需从备份文件进行恢复,因为数据将从主计算机复制到备用计算机。 同样,如果备用计算机出现故障且无法恢复,则无需恢复数据。 可以从部署中移除备用计算机,在新计算机上安装 ArcGIS Data Store,然后将其配置为备用计算机。
- 在新计算机上安装 ArcGIS Data Store。
请勿继续进行配置。 关闭在安装结束时打开的数据存储配置向导。
- 打开 shell 命令。
- 运行 restoredatastore 中的 <ArcGIS Data Store installation directory>\datastore\tools 实用程序以恢复关系、图形或切片数据存储的最近备份。
请参阅实用程序参考或在语法的命令行中输入 --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 命令。
- 运行 restoredatastore 中的 <ArcGIS Data Store installation directory>\datastore\tools 实用程序以将数据恢复至特定时间点。
将关系数据存储恢复到特定时间点的语法如下:
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 validate 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 设置为只读模式,请将其恢复为读写模式。
- 再次运行 validate 命令,确保所有场景缓存具有两个副本。
在所有计算机丢失后恢复数据存储
如果您必须替换切片缓存、时空大数据存储或对象存储中的所有计算机(例如,洪水破坏了您的数据中心,或者您必须恢复到旧版本的 ArcGIS Enterprise),请按照以下步骤恢复数据存储:
- 在新计算机上安装 ArcGIS Data Store。
请勿继续进行配置。 关闭在安装结束时打开的数据存储配置向导。
- 打开 shell 命令。
- 从 restoredatastore 中运行 <ArcGIS Data Store installation directory>\datastore\tools 实用程序且将 --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 选项指定的目录不存在,数据存储将会创建该目录。 如果目录存在,您必须对其具有写入访问权限,且该目录必须为空。 否则,恢复操作将失败。
要加载切片缓存数据存储的数据,您需要使用前一个示例中的 --store tilecache 操作来指定 --source-loc 和切片缓存备份位置。
- 在其他计算机上安装 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 将数据分发并复制到其他计算机。
将关系或切片缓存数据存储恢复至不同的 OS
可以使用备份文件将关系或切片缓存数据存储恢复至运行不同操作系统的计算机上。
例如,如果切片缓存数据存储正在 Microsoft Windows 服务器上运行,但您的信息技术部门将切换到 Linux 服务器,则可使用 ArcGIS Data Store 服务器上的 Windows 安装创建的备份文件,在 Linux 服务器上恢复切片缓存数据存储。
- 在新服务器上安装 ArcGIS Data Store。
请勿继续进行配置。
- 如果还没有现有关系或切片缓存数据存储的完整备份,请使用 backupdatastore 实用程序进行创建。
- 将备份文件放在可由新 ArcGIS Data Store 安装访问的共享位置。
- 运行 restoredatastore 实用程序以将数据恢复至新计算机。 恢复数据时,请使用 --server-url 操作以指定门户现有托管服务器(GIS Server 站点)的 URL,以便现有托管要素和场景图层将继续运行。
在此例中,将恢复切片缓存数据存储并将其注册到 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