各种工作流均要求将数据分发至不同的地理数据库,并同步对每个地理数据库中的数据做出的更改。以下提供的指南将帮助您确定如何针对系统充分利用分布式数据、地理数据库复本和同步。
分布式数据简介将为理解地理数据库复制和其他使用分布式数据的方法奠定良好的基础。分布式数据情景还列出了多个可以使用地理数据库复制的常见用例。如果地理数据库复制是最适合您系统的方法,则下一步将创建复本。
创建复本
以下内容可帮您确定为系统创建复本的最佳方法:
- 确定所需复本 - 在某些情况下,您可能只需要创建一个或两个复本,而有时则需要创建多个复本。例如,如果要为外业工作人员分发供移动设备现场使用的数据,则需要创建多个复本。如果要保持两个企业地理数据库同步,可能只需要一个复本。有关复本以及地理数据库内复本工作原理的详细信息,请参阅地理数据库复制架构。
- 确定复制的类型 - 复制类型主题将介绍可用的复制类型。您的系统可能会要求您针对不同的情景使用不同类型的复本。例如,您可能想使用双向复制来与另一个办公室进行同步,而使用单向复制来更新地图发布地理数据库。
- 创建复本 - 可以使用创建复本地理处理工具来创建复本。此工具适用于需要定期创建复本的情况。例如,您可以构建一个模型,用于每天为外业团队各个成员创建检出复本。
- 将复制集成到版本化工作流中 - 在传统版本化的基础上构建地理数据库复制。创建复本时,在父复本和子复本中均定义复本版本。这是您在同步期间发送和接收更改所使用的版本。有关详细信息,请参阅复制和版本化主题。
由于复本版本是同步更改的通道,因此在创建复本前请计划复本版本的使用方式。例如,您可能计划对同步期间收到的更改执行某些验证,然后再集成到主工作流中。可以在同步后分析复本版本的内容,然后进行协调并将其提交到常规工作版本。另外,您还可以使用默认版本作为复本版本。这对于在同步时想将更改直接提交到默认版本的情况非常有用。
- 定义要复制的数据 - 通过地理数据库复制可复制企业级地理数据库中的某些或全部数据集。还允许您使用过滤器和关系类来定义要复制的要素或行。在创建期间,始终会先应用过滤器,然后使用关系类来追加更多要素和行。有关详细信息,请参阅准备要复制的数据。
定义要复制的数据时应考虑您的未来需求。例如,双向和单向复本创建一次即可同步多次。您在创建复本时定义的过滤器也会在同步时应用。随着时间的推移,您可能会需要更大的复本区域。此外,考虑要复制的数据类型也很重要。为了保持数据完整性,在复制复杂数据类型(例如拓扑)时将应用附加规则。以下帮助主题介绍了这些规则并展示了示例:ArcGIS 中的拓扑、关系和 ArcGIS、 ArcGIS Pro 中的影像和栅格、ArcGIS Pro 中的 terrain 数据集以及 什么是网络数据集。有关定义要复制的数据的其他注意事项,请参阅高级地理数据库数据集复制。
- 考虑复本创建选项 - 新增了一些使复本创建过程尽量高效的选项。这些选项专为特殊情况设计,可能适用于您的工作流,也可能不适用。请查看下表确认您能否利用这些选项:
- 重用方案 - 指定目标地理数据库,该地理数据库已经含有您要复制的数据的方案。这可以节省时间,因为在创建复本时可以跳过方案创建。此选项仅适用于检出和检入复本,但建议您尽可能使用此选项。
- 复制相关数据 - 在复本创建期间,将首先应用过滤器,然后处理关系类以确定要复制的数据。您可以选择关闭关系类处理来节省时间。如果选择关闭关系类处理,在创建和同步期间仍会包括关系类,但不会进行处理。创建复本地理处理工具中将提供用于关闭所有关系类处理的选项。
- 使用存档追踪更改 - 使用存档而不是与版本化关联的增量表追踪更改时,不会创建任何系统版本。这样,协调过程、提交过程以及压缩过程就不会受到影响,从而使版本管理和复制管理成为独立的过程。这还可以提高同步计划的灵活性。
注:
此选项不会启用存档,并且要求在启用存档的情况下将数据注册为传统版本化。在使用此选项时,必须根据默认版本创建复本。
- 仅注册现有数据 - 如果要复制大量的数据,最好考虑使用仅注册现有数据选项。此选项允许您绕过复本创建过程的数据复制步骤并注册新复本。要成功使用此选项,在创建副本之前,您必须完成一组特定的要求。
同步复本
创建复本后,可以立即开始在复本地理数据库之间同步更改。为了使系统高效工作,制定同步更改的策略很重要。有关详细信息,请参阅什么是同步。
在确定您的系统的最佳策略时,请考虑以下因素:
- 同步方法 - 首先确定可满足需求的最佳同步方法。以下是一些选项:
- 手动同步 - 如果仅使用少数复本并且仅计划偶尔同步更改,请在 ArcGIS Pro 中使用同步更改地理处理工具。
- 使用代理自动同步 - 在存在多个复本和/或需要频繁同步的系统中,请考虑构建复制代理。复制代理可以自动连接到复制的地理数据库并执行同步。这样,最终用户无需显式同步其数据库,因为同步会自动进行。
- 使用地理处理工具进行同步 - 通过地理处理工具,可以使用本地地理数据库连接或与 Internet 上运行的地理数据服务器对象的连接构建模型以同步复本。您可以将这些模型导出到 Python 脚本并通过 Python 来执行这些模型。可以将用于执行这些脚本的命令添加到计划软件(例如 Windows Scheduler),以便定期运行这些命令。例如,最好计划在每周非高峰时间在两个企业地理数据库之间进行同步。
- 同步和冲突 - 如果对复本数据进行的编辑与从相关复本同步的编辑内容冲突,则必须确定如何解决冲突。可以应用协调策略来自动解决冲突。请参阅同步和版本化以了解您的系统是否存在此问题。
- 要同步的数据 - 对于检出复本,子复本中进行的所有数据更改均会同步。对于双向和单向复本,只有满足过滤器和关系类要求的更改会被应用。可以使用管理复本窗格来确定已应用到每个复制数据集的过滤器和关系类规则。为了保持数据完整性,在同步复杂数据类型(例如拓扑)时将应用附加规则。关系类处理也可能增加要同步的数据。请查看以下主题以熟悉同步不同类型的数据:同步拓扑和同步相关数据。
要复制的数据的元数据在复本创建过程中复制。但是,在复本同步过程中不会应用对元数据所做的更改。
- 数据量 - 进行同步时,只有自上次同步以来所做的更改会被应用。ArcGIS Pro 会过滤出已发送并确认的任何更改。而且更改一旦发送便不会再返回到原始复本。这样,数据量会减少到所需的数量。
计划同步的频率,以便与数据应用更改的频率一致。如果同步频率不能满足更改量的要求,该过程可能比较耗时。此外,建议在非高峰时段进行同步。
- 同步复本的顺序 - 如果要处理多个复本,则它们的同步顺序可能很重要。例如,应考虑从单个企业级地理数据库创建多个双向复本的情况。同步这些复本的一个策略是使每个子复本都与父复本进行双向同步。这样子复本将更改发送到父复本,然后父复本将更改发送到子复本。另一个策略是各个子复本先将其更改发送到父复本。父复本将合并所有更改,然后将更改发送回各个子复本。在第一种情况下,父复本仅发送自己的更改以及从已同步复本收到的更改,而在第二种情况下,父复本还会发送从所有其他复本合并的更改。根据系统要求,其中一个策略可能会比另一个策略更适合。
- 方案更改 - 地理数据库复制支持方案更改。这意味着即使对复制的数据进行方案更改,同步仍可继续进行。一般来说,最好将方案变更保持在最低限度。
- 排除错误 - 在同步过程中有很多原因会导致发生错误。计算机网络可能发生故障,或者您可能尝试同步有冲突的复本。系统均设计为保持一致的状态。系统将回滚更改,并拒绝不正确的数据更改。可以使用复本活动日志来查找已出现的任何错误,并确定进行恢复的措施(如果存在)。大多数情况下,如果您继续同步更改,则系统将自动从错误中恢复。复本还包含生成信息,指示已发送和接收的更改集数目。请参阅复本管理快速浏览了解详细信息。