您需要进行备份以在发生数据损坏或数据存储故障等故障时恢复数据。如果您创建了数据存储备份并将其放置在安全位置,则当您的数据存储出于某些原因发生了故障且无法重新启动时,您可以创建新的 ArcGIS Data Store,访问备份文件,然后恢复数据。
注:
务必确保备份文件仅包含数据存储。备份文件不会维护 GIS Server 站点或门户的备份。但当数据存储计算机发生故障或数据损坏时,备份可帮助恢复丢失的数据。如果想要在存储数据的计算机发生故障时也能运行托管要素和场景图层,需要创建额外的数据存储计算机以使得数据存储具有更高的可用性。
如果使用关系或切片缓存数据存储,则可以改用随 Portal for ArcGIS 一起安装的 webgisdr 工具创建备份。使用 webgisdr 工具时,还将创建门户、托管服务器和联合服务器的备份。有关使用此工具的详细信息,请参阅 ArcGIS Enterprise 管理员指南中的 Portal for ArcGIS 备份。
当灾难发生时,例如服务器发生故障或遭到洪水冲毁,备份可以帮助您恢复数据。如果备份位于遭到洪水冲毁的服务器上,则不能恢复数据。因此,您需要将备份文件和数据存储在不同的服务器上。
定义备份位置
当您创建关系数据存储或切片缓存数据存储时,将自动配置备份位置,但它与数据存储位于同一台计算机上。您需要在另一台计算机上为这些类型的数据存储配置安全的共享文件目录。 默认情况下,ArcGIS Data Store 将在 /usr/arcgisdatastore/backups 中创建关系数据存储备份。 也就是说备份文件与关系或切片缓存数据存储存储在同一计算机上。如果数据存储或主机发生故障,则您无法访问备份文件,因此无法恢复托管要素图层以及场景图层数据。为此,您不能将备份存储在默认位置。
您不能将备份文件保留在数据存储所在的计算机上的另一个原因是,这些文件可能迅速占满计算机上的磁盘空间。如果磁盘空间不足,则关系数据存储将处于只读模式以避免数据损坏。在切片缓存和时空大数据存储计算机上,当计算机磁盘空间不足时,数据存储将关闭。
对于关系和切片缓存数据存储,您必须定义一个文件目录以进行自动备份。该文件目录被视为这些数据存储的默认备份位置。由 ArcGIS Data Store 自动创建的备份始终移至默认的备份位置。
从 10.6.1 开始,您可以为关系数据存储定义其他备份位置,包括其他文件共享、Amazon Simple Storage Service (S3) 存储段和 Microsoft Azure Blob 存储容器。这些附加位置可用于存储使用 backupdatastore 实用程序创建的完整备份。
创建时,时空大数据存储没有默认备份位置。必须在注册至少一个备份位置之后,才能创建时空大数据存储备份文件。您可以注册文件共享、Amazon S3 存储段或 Microsoft Azure Blob 存储容器。您还可以为时空大数据存储指定多个备份位置,并将其中一个设置为默认位置。由 ArcGIS Data Store 自动创建的备份始终移至默认的备份位置。您可以将手动完整备份写入到使用 backupdatastore 实用程序创建的其他备份位置。
可以手动创建关系、切片缓存和时空大数据存储备份。要创建时空大数据存储备份,必须注册一个共享网络位置。此外,还必须为切片缓存备份注册一个位置才能创建该备份。为切片缓存数据存储注册共享网络位置为可选操作但强烈建议执行该操作。
注册默认备份位置
注册一个安全、共享默认备份位置,其中ArcGIS Data Store 可以在计划(自动)备份中放置文件。
按照以下步骤配置共享目录以存储数据存储备份文件:
- 在其他计算机上创建用于存储备份文件的共享目录。
- 授予安装 ArcGIS Data Store 的帐户对共享网络目录的读取和写入权限。
- 运行 configurebackuplocation 实用程序以将共享目录指定为数据存储备份的默认输出位置。
创建时,时空大数据存储没有默认备份位置。必须在注册至少一个备份位置之后,才能创建时空大数据存储备份文件。您可以注册文件共享、Amazon S3 存储段或 Microsoft Azure Blob 存储容器。
如果用户在为备份配置推荐的共享目录之前发布了托管要素图层和自动备份位置,configurebackuplocation 实用程序会将现有关系数据存储备份文件从默认备份位置移至共享目录。
由于切片缓存数据存储的大小可能很大,为切片缓存数据存储备份配置新位置时不会复制现有数据。因此,请确保在用户发布任何场景图层之前指定共享备份位置。
在该示例中,关系数据存储的备份位置被更改为:在计算机 sysshare 上名为 ds_backups 的目录。
./configurebackuplocation.sh --operation change --store relational --location /net/sysshare/ds_backups You are going to change the backup location of the data store. Existing backups will be copied to the new location and it could take a few moments. Please do not interrupt the process once it has started. Do you want to continue (Yes or No)? Yes
在此示例中,将为时空大数据存储注册备份位置。该位置为 sysshare 上名为 bigdatabus 的共享目录。
./configurebackuplocation.sh --operation register --store spatiotemporal --location /net/sysshare/bigdatabus
有关完整语法和其他示例(包括配置云存储备份位置的示例),请参阅ArcGIS Data Store实用程序参考。
提示:
如果您的远程备份目录离线几分钟,需在共享备份位置可用后立即执行数据存储的完整手动备份。
注册其他备份位置以进行手动备份
对于时空大数据存储,您可以选择注册其他备份位置。从 10.6.1 开始,您还可以选择注册其他备份位置用于关系数据存储。这些可用于存储通过 backupdatastore 实用程序手动创建的备份。
请注意,您需要 清理手动备份存储位置;ArcGIS Data Store 不会为您删除文件。
按照以下步骤针对时空大数据存储或关系数据存储为您手动创建的备份文件添加另一个位置。
- 为备份文件创建另一个位置。
- 如需注册共享目录,请在另一台机器上创建目录。请确保存储空间足够大以至于能够容纳所有备份文件,并确保连接到该 ArcGIS Data Store 机器运行 backupdatastore 实用程序时使用的登录名具有对此目录的写入权限。如果您正在为时空大数据存储创建另一个共享目录,则在同一 ArcGIS Data Store 部署的所有时空大数据机器都必须有权访问此共享目录。
- 要注册 S3 存储段,请在您的 AWS 帐户下创建存储段。选择可容纳备份文件的存储段大小。
- 要注册 Azure Blob 存储容器,请在您的 Azure Blob 存储帐户下创建容器。
- 运行 configurebackuplocation 实用程序并通过 register 操作来注册这一额外的备份位置。
自动备份
默认情况下, ArcGIS Data Store 每四天会创建一个完整备份,但您可以通过运行 updatebackupschedule 实用程序更改数据存储创建完整备份的频率。
更改备份频率
如果用户将发布和编辑大量托管要素图层,则您应提高创建完整关系数据存储备份的频率。如果用户将发布大量场景图层,则您应提高创建切片缓存数据存储备份的频率。如果 ArcGIS GeoEvent Server 站点存档大量流数据或许多用户频繁运行 GeoAnalytics 工具,则您应提高时空大数据存储备份的频率。
注:
默认情况下,关系数据存储禁用了增量备份。如果启用时间点恢复,则将在每五分钟或不足五分钟但日志文件已满时(以较先者为准)创建增量备份。数据库可控制增量备份的创建;您无法控制增量备份的创建频率。
备份位置必须具有足够的空间来存储所有备份文件。备份大小取决于数据量的多少,但如果您使用默认备份设置,备份将包含两个完整备份和 7 天的增量备份文件。这些文件的大小将取决于数据量及其大小。默认情况下,如果重新启用关系数据存储的时间点恢复,备份也将包括七天的增量备份文件。
请注意,没有自动清除切片缓存或时空大数据存储备份文件。如果您提高这些数据存储的备份频率,则您可能还需要更频繁地清理备份位置。
如果决定手动创建备份并希望禁用自动备份,则将备份频率设置为 0。如果禁用自动备份,则您必须自行创建备份,以防止发生机器故障或其他数据灾害时的数据丢失。
updatebackschedule 实用程序安装在 <ArcGIS Data Store installation directory>/datastore/tools 目录下。
- 打开 shell 命令。
- 运行 updatebackschedule 实用程序以指定所需的备份频率。
运行此实用程序的语法如下:
updatebackupschedule [--store relational|tileCache|spatiotemporal] [--starttime <local server time>] --frequency <number of days>
例如,输入以下内容以计划在上午 3:00 进行完整关系数据存储备份 (本地服务器时间)每天:
./updatebackupschedule.sh --store relational --starttime 03:00:00 --frequency 1
在此示例中,时空大数据存储的备份计划在晚上 11:30 进行 (本地服务器时间)每 3 天:
./updatebackupschedule.sh --store spatiotemporal --starttime 23:30:00 --frequency 3
更改保留自动关系数据存储备份文件的时间
默认情况下,备份目录将保留关系数据存储备份文件 7 天。这表示如果您保留默认备份频率(每 4 天)和保留计划(7 天),备份目录将包含 2 个完整备份。如果重新启用时间点恢复,备份目录还将包含 7 天的增量备份文件。这些文件的大小将取决于数据量及其大小。存储备份的计算机必须要有足够的磁盘空间以存储所有这些文件。如果提高备份频率,则需考虑缩短备份文件的保留期间。在前一部分已将备份频率增加到每天。要防止备份目录过大,请缩短备份文件保留期间。
运行 updatebackupretaindays 实用程序的语法如下:
updatebackupretaindays <number of days>
在接下来的示例中,会将备份文件保留时间更改为 4 天:
./updatebackupretaindays.sh 4
手动备份
即使您使用了自动备份,有时您也可能希望为常规备份计划之外的特定目的而创建备份,例如在升级系统之前或在其他位置创建一个备用的完全备份。
如果您禁用了自动备份,则应定期创建手动备份。
所有您手动创建的备份文件,甚至用于关系数据存储的文件都必须手动删除。
运行实用程序以创建数据存储备份
您可以使用 backupdatastore 实用程序对数据存储中的要素图层数据进行完整备份。对数据存储进行大量更改前或升级数据存储前,您可能想要手动创建完整备份。或者您可能想要创建备份以保存特定状态的数据副本,例如,项目第一个阶段的末尾。
首次运行 backupdatastore 实用程序进行切片缓存数据存储时,备份副本由所有现有的切片缓存数据存储数据库构成。同样,第一次为时空数据存储运行 backupdatastore 实用程序时,将创建完整备份。由于这两种类型的数据存储可能非常大,第一次之后每次运行 backupdatastore 实用程序时,该实用程序将仅为上次运行该实用程序时创建的数据创建备份副本。
用于连接至数据存储计算机以运行 backupdatastore 实用程序的登录帐户必须具有对数据存储备份位置的读写权限。
运行 backupdatastore 实用程序的语法如下:
backupdatastore [<backup name>] [--store {relational|tileCache|spatiotemporal}] [--location <backup_arguments>] [--prompt <yes | no>]
该 --location 参数支持时空大数据存储和关系数据存储。该参数的参数如下且必须用分号 (;) 隔开:
- type=:有效类型为 fs(文件共享)、s3(AWS S3 存储段)或 azure(Azure Blob 存储容器)。
- name=:如果已向为时空大数据存储配置的备份位置分配名称,则可使用该位置名称来指定在运行备份数据存储实用程序时创建备份文件的位置。
- location=:如果没有指定备份位置名称,则必须指定备份的 type 和 location。如需共享文件,请提供文件路径。如存储在 S3 存储段,请提供存储段名称。如存储在 Azure Blob 存储容器,请提供容器名称。
为文件提供一个有意义的备份名称,这样在您希望恢复该数据时可以找到它。如果未指定名称,实用程序将向该文件分配一个默认名称。默认名称的格式为“数据存储名称-时间戳”。例如,如果将数据存储命名为 corpds 且您是在 2014 年 7 月 10 日 14:25:49:554 UTC 创建的备份,则备份文件名称是 corpds-20140710142549554。
您需要确认是否希望创建备份。输入是或 y 继续执行备份创建。
提示:
如果希望将手动备份(包括禁止确认提示符的标记)改写为脚本,则请按以下示例操作:
backupdatastore --store tilecache --prompt no
在本示例中,数据存储将生成备份文件名称。为确保备份文件名称唯一,需要在脚本中执行此操作。
删除数据存储手动备份
如果不再需要保留使用 backupdatastore 实用程序创建的数据存储备份文件,则可以运行 listbackups 实用程序获取特定备份文件的名称,然后运行 deletebackup 实用程序移除不需要的文件。例如,升级数据存储且确认所有图层按预期执行后,可以删除升级之前创建的数据存储备份。
本示例中已删除数据库 preupgrade1104_bu:
./listbackups.sh --store relational Backup_Name Status Backup_Time Mode ==================================================================================== phase1proj_bu BackupComplete 2014-03-08 14:12 manual phase2proj_bu BackupComplete 2014-06-21 11:43 manual preupgrade_bu BackupComplete 2014-10-04 09:30 manual ds_gdt1oomh-20141103160748082 BackupComplete 2014-11-01 03:00 scheduled /deletebackup preupgrade1104_bu You are attempting to delete backup 'preupgrade1104_bu'. This operation is irreversible. Do you wish to continue (Yes or No)?yes Operation completed successfully