通过右键单击目录树中的数据集,并单击启用存档,可以对版本化或非版本化数据启用存档。
要一次对多个数据集启用存档,可以使用启用存档地理处理工具。
地理数据库以不同方式管理数据集存档,具体取决于数据集是否已版本化。
启用非版本化数据存档
启用非版本化数据的存档时,地理数据库会在基表中为该数据集创建附加日期属性。这些日期属性是基表中名为 gdb_from_date 和 gdb_to_date 的列,用于记录存档行有效使用期限的时间戳。对数据集进行编辑时,将更新这些属性,随时间推移来维护历史记录。
启用版本化数据存档
启用版本化数据存档类似于将数据集注册为版本。对于每个启用了存档的数据集,都会创建一个新存档类。启用存档时,数据集或对象类的 DEFAULT 版本中的所有属性和所有行都会被复制到存档类中。完成存档类创建所需的时间取决于启用存档的数据集的大小。存档类与原始数据集具有相同的方案,但还包括三个额外的属性,即用于记录存档行的有效使用期限时间戳的附加日期属性 gdb_from_date 和 gdb_to_date,以及用于唯一标识每一行的 gdb_archive_oid 属性。
将存档类表示为独立要素类,而不是管理版本化表的增量表中的历史行,这意味着存档的存在以及大小不会影响数据库的效率。可以将数据集取消注册为版本,而不会影响或删除存档类。如果将数据集取消注册为版本,则存档类会变为对象类或要素类。
启用数据集存档后,保存或提交到 DEFAULT 版本的所有更改还会另外在存档类中进行保存。您无法将历史数据追加到存档类中。手动更改存档类会破坏地理数据库存档过程。
启用存档的提示:
- 如果注册版本化数据集时将编辑内容移动到基表,则无法启用存档。必须将其取消注册,然后在不选择将编辑内容移动到基表选项的情况下将其注册为版本。
- 不能对已启用存档的数据集启用版本化。必须先禁用存档,将数据集注册为版本,然后重新启用存档。
- 只有数据集或类的所有者才能对其启用存档。
- 启用存档不会遍历关系类。如果关系类位于要素数据集容器之外,则必须显式启用对此类的存档。
- 在启用存档阶段,还会在存档类中创建原始类上的索引。
- 通过打开要素类或表的属性对话框,可查看启用存档的时间和日期。右键单击对象并选择“属性”。“版本化”下方的“常规”选项卡上显示了对象启用存档的时间。
- 存档类的默认命名约定是在对象类的名称后加下划线和 H。例如,对于名为 Roads 的对象类,相关存档类的名称则为 Roads_H。
- 存档类会被地理数据库过滤,在 ArcCatalog 中不可见,因此在目录树中也不可见。可使用“地理数据库历史”工具条上的“添加历史存档”命令将存档类添加到 ArcMap 以供查看和分析。
- 要在使用存档类时获得最佳性能,应根据存档类所发生的更改量定期更新数据库统计信息。
- 可以指定存档表的名称以及起始日期和终止日期属性。如果开发者想为归档表提供自己的命名约定,可以参考“软件开发者工具包”中的 IArchiveregistrationinfo 接口。
- 启用存档时,会搜索带有后缀 _ARCHIVE 的原始源的关键字。如果此关键字不存在,则使用数据源的关键字和参数值。
- 对非版本化数据集启用存档时,ArcGIS 会创建一个名为 <数据集名称>_evw 的数据集视图。例如,如果对名为 streets 的非版本化要素类启用存档,则 ArcGIS 会为该要素类创建名为 streets_evw 的视图。如果已存在名为 streets_evw 的视图,则 ArcGIS 会删除该视图。因此,在对 streets 数据集启用存档之前应重命名现有视图。