数据传输服务(DTS)所提供的数据同步功能可以帮助您实现不同数据源之间的实时数据同步。该功能可以捕获源数据库的数据变更,并将其实时地同步至目标数据库,广泛应用于版本升级、数据拆分或扩容、异地多活、异地灾备、跨境同步、查询报表分流以及构建实时数据仓库等业务场景。通过使用DTS,可以有效避免手动管理数据流所带来的复杂性、易错性及实时性保障的难度,从而使您能够专注于业务本身,而非数据管道的维护。
收费策略
DTS数据同步涉及收费。费用详情,请参见计费概述。
同步类型
DTS同步任务由三种可选的同步类型组合而成,以满足不同业务需求。
选项建议
首次同步:推荐同时勾选库表结构同步、全量同步和增量同步,实现从零到一的完整数据同步。
已有基线数据:若已通过其他方式在目标库准备好数据,可仅选择增量同步,但需确保两端数据位点的一致性,此操作较为复杂,需进行谨慎评估。
同步类型 | 说明 |
库表结构同步 | 目的:在目标库中自动创建与源库匹配的结构。 DTS将源库中待同步对象的结构定义(例如表、视图、触发器、存储过程、索引等)同步至目标库。如果目标库为空,勾选此项可省去您手动创建的步骤。 重要 部分同步链路不支持库表结构同步。在配置数据同步任务之前,您需根据源库中待同步对象的结构定义,在目标库中创建相应的数据库、数据表与视图等。 |
全量同步 | 目的:迁移源库的历史数据。 DTS将源库中待同步对象的全部存量数据复制到目标库,为后续的增量同步建立数据基线。 |
增量同步 | 目的:持续保持源库与目标库的数据同步。 DTS持续获取源库中待同步对象的增量变更操作语句(例如,从MySQL数据库中的Binlog获取增量变更语句),并根据目标库的类型进行相应转换,随后在目标库中执行该语句,以实现将增量数据实时同步至目标库。 |
同步拓扑
DTS支持两种核心的数据同步拓扑结构。更多信息,请参见数据同步拓扑介绍。
同步拓扑 | 说明 | 适用场景 |
单向同步 | 数据从一个源库单向流向一个或多个目标库。 | 数据拆分或扩容、查询报表分流与构建实时数仓等。 |
双向同步 | 数据在两个数据库之间双向流动,任意一方的变更都会同步给对方。 | 异地多活、异地灾备与跨境同步等。 |
双向同步包含正向和反向同步任务,在配置或重置双向同步任务时,DTS为保证数据不循环,有严格限制:
初始化规则:仅允许一个方向的任务(例如A→B)执行库表结构同步和全量同步。另一个方向的任务(B→A)只能配置增量同步。
避免数据环路:从A同步到B的数据,不会再作为B的源数据同步回A。
重置风险:若您需要重置其中一个任务(例如正向任务)并进行重新配置,建议同时重置正向和反向两个任务,然后重新配置任务。否则,在正向任务进行库表结构同步和全量同步阶段时,系统将自动移除反向任务中已配置的同步对象,从而将导致双向同步任务的结果不符合预期。
同步方案
DTS支持从以下数据源开始的同步方案,您可以根据业务需求浏览具体方案,查看支持的版本、同步类型和配置步骤。