地理数据库复制基于传统版本化。复本创建期间,系统会将源和目标企业级地理数据库中的版本设置为复本版本。这些复本版本中的更改将在同步过程中进行交换。由于复本版本处于关联状态,因此可将其视为是通过扩展版本树来跨越多个地理数据库的方法。
可将默认版本或任何命名的版本用作父复本或子复本的复本版本。多个复本也可以共用同一复本版本。
单向和双向复本
下图显示了单向复制和双向复制中的复本版本。对于双向复制,父复本将命名的版本 RV1 用作复本版本。单向复制示例中的父复本则将命名的版本 RV2 用作两个单向示例的复本版本。
对于企业级地理数据库中托管的两个子复本,默认版本即为复本版本。除了复本版本将用于复制过程之外,复本版本与其他版本没有任何区别。由于文件地理数据库不支持版本化,因此不会在单向复本的子复本地理数据库中创建复本版本。
注:
也可以使用指定版本作为下图中任一企业级地理数据库中的复本版本。
检出复本
检出/检入复制能够复制版本化和非版本化数据。对于涉及版本化数据的检出复本,将创建一个新的指定版本以用作子复本上的复本版本,前提是子复本为企业级地理数据库。
检出/检入复制同时允许文件地理数据库托管子复本。由于这些地理数据库类型不支持版本管理,因此不会为子复本创建任何复本版本。检出非版本化数据时也是如此。对于此类情况,同步期间将使用附加逻辑来确定要发送的更改。
在检出/检入复制中,将使用复本的名称创建一个新版本。用户名和复本名称的组合必须是唯一的。例如,user1 和 user2 都可以创建一个名为 MyReplica 的复本,因为完整的复本名称是 user1.MyReplica 和 user2.MyReplica。但是,user1 不能创建多个名为 MyReplica 的复本,因为这样会造成复本名称不唯一。
下图显示了检出/检入复本及其复本版本的两个示例。一个父复本将版本 RV1 用作复本版本,而另一个父复本则将版本 RV2 用作复本版本。一个子复本由文件托管,另一个由企业级地理数据库托管。对于托管子复本的企业级地理数据库,创建期间会自动创建 RV2 并将其设置为复本版本。此复本版本的名称 RV2 取自复本的名称。将在此复本版本中对子复本执行编辑以同步回父复本。
抢先版本:
对于检出/检入复本,创建期间会将一个同步版本添加到父复本地理数据库。该同步版本是复本版本的子版本,但因为它只在同步期间使用,因此并未在上图中显示。有关详细信息,请参阅同步和版本管理。
使用存档追踪复本更改
如果只进行单向复制,则可使用版本管理功能而非存档功能来追踪复本更改。对于此选项,父复本地理数据库必须是引用默认版本的企业级地理数据库。以这种方式管理复制的优点是,它可以使协调过程、提交过程以及压缩过程与同步过程分开。
使用版本管理功能追踪更改时,会创建系统版本。由于存在这些系统版本,需要定期进行同步才能实现有效的压缩。而使用存档功能追踪复本更改时,不会创建任何系统版本。这样,协调过程、提交过程以及压缩过程就不会受到影响,从而使版本管理和复制管理成为独立的过程。这还可以提高同步计划的灵活性。
下图显示使用存档在企业级地理数据库之间进行单向“父-子”复制,其中将默认版本用作企业级地理数据库中父复本和子复本的复本版本。由于文件地理数据库不支持版本化,因此不会在子复本文件地理数据库上创建复本版本。
当两个地理数据库都是企业级地理数据库时,也可以使用单向“子-父”复制。在这种情况下,子复本版本必须是默认版本。