您需要进行备份以在发生数据损坏或数据存储故障等故障时恢复数据。 如果您创建了数据存储备份并将其放置在安全位置,则当您的数据存储出于某些原因发生了故障且无法重新启动时,您可以创建新的 ArcGIS Data Store,访问备份文件,然后恢复数据。
阅读 ArcGIS Data Store 备份注意事项,然后使用其他部分中的信息来配置和管理 ArcGIS Data Store 备份。
ArcGIS Data Store 备份注意事项
在对数据存储实施备份和恢复策略时,请注意以下几点:
- 当灾难发生时,例如服务器发生故障或遭到洪水冲毁,备份可以帮助您恢复数据。 如果备份位于遭到洪水冲毁的服务器上,则不能恢复数据。 因此,您需要将备份文件存储在与数据存储不同的服务器上,如果可能,还应存储在与数据存储不同的物理位置上。
- ArcGIS Data Store 备份文件仅包含关系、切片缓存或时空大数据存储。 备份文件不包含 GIS Server 站点的备份、您的门户或您注册到 GIS Server 站点的用户管理的数据存储。 您必须单独创建这些组件的备份。
如果使用关系或切片缓存数据存储(或两者),则可以使用随 Portal for ArcGIS 一起安装的 webgisdr 工具创建备份。 使用 webgisdr 工具时,还将创建门户、托管服务器和联合服务器的备份。 有关使用此工具的详细信息,请参阅 ArcGIS Enterprise 备份。 您仍需要为您注册到 GIS Server 站点的用户管理数据存储以及时空大数据存储创建单独的备份。
- 当 ArcGIS Data Store 计算机发生故障或数据损坏时,ArcGIS Data Store 备份可帮助恢复丢失的数据。 这些计算机的可用性并不高。 如果您希望即使单台 ArcGIS Data Store 计算机发生故障,仍可继续使用托管要素、时空和场景图层,则请向每个数据存储添加计算机,以提高其可用性。 可以将多台计算机添加到切片缓存和时空大数据存储。
- 由于基础存储机制和 ArcGIS 软件发生变更,您使用旧版 ArcGIS Data Store 创建的数据存储备份将无法用于恢复新版 ArcGIS Data Store 的数据。 因此,在升级 ArcGIS Data Store 后,请始终为每个数据存储创建一个完整的备份。
- 如果在本地部署 ArcGIS Enterprise,但数据存储备份文件位于云存储中,则与备份文件存储在本地文件共享中相比,创建备份以及从这些备份中进行恢复所需的时间更长。
定义备份位置
备份位置和行为可能有所不同,这取决于数据存储的具体类型。 请阅读您所管理的数据存储类型的相关信息。
- 关系数据存储
当您创建关系数据存储时,系统将在与数据存储相同的计算机上自动配置备份位置。 默认情况下,ArcGIS Data Store 将在 /usr/arcgisdatastore/backup/relational 中创建关系数据存储备份。 如果主数据存储计算机发生故障,则您无法访问备份文件,因此无法恢复托管要素图层数据。
您不能将备份文件保留在数据存储所在的计算机上的另一个原因是,这些文件可能迅速占满计算机上的磁盘空间。 如果磁盘空间不足,则关系数据存储将处于只读模式以避免数据损坏。
因此,请在其他计算机上的安全共享文件目录中定义要自动备份的文件目录,而不要在默认位置进行定义。 此文件目录将被视为默认备份位置。 由 ArcGIS Data Store 自动创建的备份始终移至默认的备份位置。 您可以通过 configurebackuplocation 实用程序的 change 操作来更改默认备份位置。
您可以为关系数据存储注册其他备份位置,包括其他文件共享、Amazon Simple Storage Service (S3) 存储段和 Microsoft Azure Blob 存储容器。 这些附加位置可用于存储使用 backupdatastore 实用程序创建的完整备份。
- 切片缓存数据存储
创建切片缓存数据存储时,不存在默认备份位置。 必须在注册至少一个备份位置之后,才能创建切片缓存数据存储备份文件。 您可以注册文件共享、Amazon S3 存储段或 Microsoft Azure Blob 存储容器。 您还可以为切片缓存数据存储指定多个备份位置,并将其中一个设置为默认位置。 由 ArcGIS Data Store 自动创建的备份始终移至默认的备份位置。
您可以将手动完整备份写入到使用 backupdatastore 实用程序创建的其他备份位置。 要进行此操作,您必须注册另一个备份位置。
在 ArcGIS Data Store 10.7.1 及更早版本中,切片缓存数据存储确实已配置默认备份位置。 如果未更改默认备份位置并添加了备用切片缓存数据存储,请确保备用计算机在升级 ArcGIS Data Store 之前可以访问备份位置。 如果未执行此操作,则必须在升级后注册默认备份位置。
- 时空大数据存储
创建时,时空大数据存储没有默认备份位置。 必须在注册至少一个备份位置之后,才能创建时空大数据存储备份文件。 您可以注册文件共享、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实用程序参考。
提示:
如果您的远程备份目录离线几分钟,需在共享备份位置可用后立即执行数据存储的完整手动备份。
注册其他备份位置
您可以选择注册其他备份位置。 这些可用于存储通过 backupdatastore 实用程序创建的备份。
注:
您需要清理手动备份存储位置;ArcGIS Data Store 不会为您删除文件。
请按照以下步骤为备份文件添加其他位置:
- 为备份文件创建另一个位置。
- 如需注册共享目录,请在另一台机器上创建目录。 请确保存储空间足够大以至于能够容纳所有备份文件,并确保连接到该 ArcGIS Data Store 机器以运行 backupdatastore 实用程序时使用的登录名具有对此目录的写入权限。 如果您正在为切片缓存或时空大数据存储创建另一个共享目录,则在同一 ArcGIS Data Store 部署的所有切片缓存或时空大数据机器都必须有权访问此共享目录。 如果要为关系数据存储备份创建其他共享目录,则备用计算机必须能够访问共享目录。
- 要注册 S3 存储段,请在您的 Amazon Web Services 帐户下创建存储段。 选择可容纳备份文件的存储段大小。
- 要注册 Azure Blob 存储容器,请在您的 Azure Blob 存储帐户下创建容器。
- 运行 configurebackuplocation 实用程序并通过 register 操作来注册这一额外的备份位置。
管理自动备份
默认情况下,ArcGIS Data Store 每四天会创建一个完整备份,但您可以通过运行 updatebackupschedule 实用程序更改数据存储创建完整备份的频率。
更改备份频率
如果您的组织成员发布并编辑了大量的托管图层,或者您存档了大量的流数据,则需要提高备份的频率。
注:
默认情况下,关系数据存储禁用了增量备份。 如果启用时间点恢复,则将在每五分钟或不足五分钟但日志文件已满时(以先到者为准)创建增量备份。 数据库可控制增量备份的创建;您无法控制增量备份的创建频率。
备份位置必须具有足够的空间来存储所有备份文件。 备份大小取决于数据量的多少,但如果您使用默认备份设置,备份将包含两个完整备份和 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(本地服务器时间)进行:
./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 file name>] [--store {relational | tileCache | spatiotemporal}] [--location <backup_arguments>] [--prompt {yes | no}]
--location 参数的参数如下且必须用分号 (;) 隔开:
- type= - 有效类型为 fs(文件共享)、s3(Amazon Simple Storage Service (S3) 存储段)或 azure(Microsoft Azure Blob 存储容器)。
- name= - 如果已向为数据存储配置的备份位置分配名称,则可使用该位置名称来指定在运行 backupdatastore 实用程序时创建备份文件的位置。
- 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