处理方案变更

本主题仅适用于 ArcGIS for Desktop Standard 和 ArcGIS for Desktop Advanced。

创建复本时,会将数据和方案从父地理数据库复制到子地理数据库。数据包括要从数据集复制到复本的行。方案包含用于描述复制数据的字段、属性域、子类型和其他属性。

最初,所有复本上的方案都是相同的,但是随着时间的推移,各个复本方案可能会发生更改。例如,某个复本可能需要附加字段以完成项目,而关系复本可能需要将新属性域应用于现有字段。出现这种情况时,复本的方案将不再相同。

处理复本的方案差异时,可采取以下方式:

保持方案差异 - 可以选择允许对各个复本进行彼此独立的方案变更。地理数据库复制允许复本之间存在大多数方案差异,从而使数据同步过程在大部分情况下能够继续工作。

将方案变更应用于一个复本而不应用于另一个时,您应预先考虑以下问题:

在复本间应用方案变更 - 修改复本方案使其与关系复本的方案相匹配是一个完全独立于数据同步的过程。可以通过三种工具来实现此目的:比较复本方案、导入复本方案和导出复本方案。这些工具位于 ArcMap 的“分布式地理数据库”工具条以及目录树的“分布式地理数据库”右拉式菜单中,并且可以用作地理处理工具。

工具的使用分为两步:第一步是运行“比较复本方案”工具以生成一个包含方案变更的 XML 文件,第二步是使用“导入复本方案”工具导入这些更改。如果在离线环境中工作,首先需要运行“导出复本方案”工具将包含更改内容的方案导出到 XML 文件中。然后,可将该文件传输到介质(如 CD 或 DVD)上,以便输入到“比较复本方案”工具中。

以下是一个方案变更列表,其中指明了是否可以应用某一更改:

添加

更改

删除

字段

Y

Y(属性域)

Y

属性域

Y

Y

Y

表/要素类

Y

Y(属性域,添加/删除字段)

Y

几何网络

N

N

Y

拓扑

N

N

Y

要素数据集

N

N

Y

关系类

N

Y(添加/删除字段,属性域)

Y

此表说明了可对复制数据集执行的方案变更。

无法使用上述工具将要素类或表添加到复本。要实现此操作,需要运行 ArcObjects 代码。查看代码示例

从复本移除数据 - 每个复本中的数据集列表存储在复本地理数据库中。如果删除其中的一个数据集,则会显示一条警告消息。如果选择继续执行删除操作,该数据集将从复本数据集列表中移除。可使用 ArcObjects API 重新将数据添加到复本。还要注意以下几点:

标识方案差异 - 如果想密切监视方案变更,可使用此工具对复本方案加以比较,从而标识差异。“导入复本方案”向导中会列出方案差异。

最佳做法

一般来说,最好不要更改方案。更改方案可能会导致复本不一致,而应用方案变更的额外任务可能会增加性能开销。然而,在某些情况下必须应用方案变更。

下面概述了处理方案变更时的最佳做法:

  1. 锁定系统 - 确保使用系统的人员以相应的权限进行工作。在某些情况下,可能需要编写一些用于阻止某些特定类型的未计划方案变更(如添加或删除列)的应用程序。
  2. 应用定期方案比较 - 由于复制是一种容错操作,因此方案变更很可能不会中断执行同步的系统。一种好的做法是定期运行方案比较以确保不会应用未计划的方案变更。
  3. 完成维护任务后进行同步 - 有时为了完成维护任务而应用临时方案变更是很有必要的。例如,一些组织需要移除几何网络并将其取消版本化,然后重新构建和重新版本化。几何网络重新版本化之前,数据同步将失败。
  4. 应用系统范围的方案变更 - 如果需要应用方案变更,则最好在系统范围上以一种有组织的方式来应用方案变更。例如,您可能希望以一种“自上而下”的方式来应用方案变更,即首先将方案变更应用于根复本,然后向下传播。
方案变更
5/10/2014