数据传输服务(DTS)所提供的数据同步功能可以帮助您实现不同数据源之间的实时数据同步。该功能可以捕获源数据库的数据变更,并将其实时地同步至目标数据库,广泛应用于版本升级、数据拆分或扩容、异地多活、异地灾备、跨境同步、查询报表分流以及构建实时数据仓库等业务场景。通过使用DTS,可以有效避免手动管理数据流所带来的复杂性、易错性及实时性保障的难度,从而使您能够专注于业务本身,而非数据管道的维护。
核心概念
同步类型
DTS同步任务由三种可选的同步类型组合而成,以满足不同业务需求。
选项建议
首次同步:推荐同时勾选库表结构同步、全量同步和增量同步,实现从零到一的完整数据同步。
已有基线数据:若已通过其他方式在目标库准备好数据,可仅选择增量同步,但需确保两端数据位点的一致性,此操作较为复杂,需进行谨慎评估。
同步类型 | 说明 |
库表结构同步 | 目的:在目标库中自动创建与源库匹配的结构。 DTS将源库中待同步对象的结构定义(例如表、视图、触发器、存储过程、索引等)同步至目标库。如果目标库为空,勾选此项可省去您手动创建的步骤。 重要 部分同步链路不支持库表结构同步。在配置数据同步任务之前,您需根据源库中待同步对象的结构定义,在目标库中创建相应的数据库、数据表与视图等。 |
全量同步 | 目的:迁移源库的历史数据。 DTS将源库中待同步对象的全部存量数据复制到目标库,为后续的增量同步建立数据基线。 |
增量同步 | 目的:持续保持源库与目标库的数据同步。 DTS持续获取源库中待同步对象的增量变更操作语句(例如,从MySQL数据库中的Binlog获取增量变更语句),并根据目标库的类型进行相应转换,随后在目标库中执行该语句,以实现将增量数据实时同步至目标库。 |
同步拓扑
DTS支持两种核心的数据同步拓扑结构。更多信息,请参见数据同步拓扑介绍。
同步拓扑 | 说明 | 适用场景 |
单向同步 | 数据从一个源库单向流向一个或多个目标库。 | 数据拆分或扩容、查询报表分流与构建实时数仓等。 |
双向同步 | 数据在两个数据库之间双向流动,任意一方的变更都会同步给对方。 | 异地多活、异地灾备与跨境同步等。 |
双向同步包含正向和反向同步任务,在配置或重置双向同步任务时,DTS为保证数据不循环,有严格限制:
初始化规则:仅允许一个方向的任务(例如A→B)执行库表结构同步和全量同步。另一个方向的任务(B→A)只能配置增量同步。
避免数据环路:从A同步到B的数据,不会再作为B的源数据同步回A。
重置风险:若您需要重置其中一个任务(例如正向任务)并进行重新配置,建议同时重置正向和反向两个任务,然后重新配置任务。否则,在正向任务进行库表结构同步和全量同步阶段时,系统将自动移除反向任务中已配置的同步对象,从而将导致双向同步任务的结果不符合预期。
使用限制
配置前,请确认环境和业务场景满足以下条件。
通用限制
限制项 | 说明 |
网络配置 |
|
业务负载 |
|
其他限制
跨账号同步:是否支持创建跨账号同步任务,取决于具体的数据库类型和接入方式。详情参见配置跨阿里云账号的任务。
跨境数据同步:该功能未默认开放。需先提交申请跨境数据同步权限并通过审核后方可使用。
常见问题
附录:同步链路支持矩阵
下述汇总了DTS支持的各类数据库同步链路。开始配置前,可快速确认源库和目标库组合是否受支持。请在页面右侧的本页导读中,单击相应的源库同步方案,以快速定位到对应区域,来查看支持的版本、同步类型和配置步骤。
源为自建MySQL或RDS MySQL
PolarDB-X 1.0中的数据库须基于RDS MySQL创建,DTS暂不支持基于PolarDB MySQL版创建的数据库。
PolarDB-X 1.0为目标时不支持结构同步以及结构初始化,PolarDB-X 2.0为目标时均支持。
PolarDB-X 2.0实例的版本建议为5.4.11及以上,升级方式请参见查看和升级实例版本。
源库 | 目标库 | 同步类型 | 同步拓扑 | 配置文档 |
|
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 双向同步 | |
PolarDB MySQL版 所有版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 双向同步 | ||
Oracle(RAC或非RAC架构) 版本为9i、10g、11g、12c、18c、19c | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
PolarDB-X 1.0 | 全量数据同步 增量数据同步 | 单向同步 | ||
PolarDB-X 2.0 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云原生数据仓库 AnalyticDB MySQL 版 2.0、3.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云原生数据仓库 AnalyticDB PostgreSQL 版 4.3、6.0、7.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云数据库ClickHouse集群 20.8及以上版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
DataHub | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
Elasticsearch 5.5、5.6、6.x、7.x、8.x版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
MaxCompute | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云数据库Tair(兼容Redis)实例(集群架构、标准架构或读写分离架构) 4.0、5.0、6.0、7.0版本 | 全量数据同步 增量数据同步 | 单向同步 | ||
表格存储(Tablestore) | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
函数计算FC 2.0版本 | 全量数据同步 增量数据同步 | 单向同步 | ||
云数据库SelectDB版 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云原生多模数据库Lindorm | 全量数据同步 增量数据同步 | 单向同步 | ||
Doris 1.2及以上版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云消息队列 RocketMQ 版 4.x和5.x系列 | 全量数据同步 增量数据同步 | 单向同步 |
源为PolarDB MySQL版
PolarDB-X 1.0中的数据库须基于RDS MySQL创建,DTS暂不支持基于PolarDB MySQL版创建的数据库。
PolarDB-X 1.0为目标时不支持结构同步以及结构初始化,PolarDB-X 2.0为目标时均支持。
PolarDB-X 2.0实例的版本建议为5.4.11及以上,升级方式请参见查看和升级实例版本。
源库 | 目标库 | 同步类型 | 同步拓扑 | 配置文档 |
PolarDB MySQL版 所有版本 | PolarDB MySQL版 所有版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 双向同步 | |
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 双向同步 | ||
PolarDB-X 1.0 | 全量数据同步 增量数据同步 | 单向同步 | ||
PolarDB-X 2.0 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云原生数据仓库 AnalyticDB MySQL 版 2.0、3.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云原生数据仓库 AnalyticDB PostgreSQL 版 4.3、6.0、7.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
DataHub | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云数据库ClickHouse集群 20.8及以上版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
Elasticsearch 5.5、5.6、6.x、7.x、8.x版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
MaxCompute | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
Oracle(RAC或非RAC架构) 版本为9i、10g、11g、12c、18c、19c | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云数据库SelectDB版 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
Doris 1.2及以上版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云原生多模数据库Lindorm | 全量数据同步 增量数据同步 | 单向同步 |
源为PolarDB PostgreSQL版
源库 | 目标库 | 同步类型 | 同步拓扑 | 配置文档 |
PolarDB PostgreSQL版 11、14、15、16、17版本 |
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 双向同步 | |
PolarDB PostgreSQL版 11、14、15、16、17版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 双向同步 | ||
云原生数据仓库 AnalyticDB PostgreSQL 版 4.3、6.0、7.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云数据库SelectDB版 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 |
源为PolarDB-X
PolarDB-X 1.0中的数据库须基于RDS MySQL创建,DTS暂不支持基于PolarDB MySQL版创建的数据库。
PolarDB-X 1.0为目标时不支持结构同步以及结构初始化,PolarDB-X 2.0为目标时均支持。
PolarDB-X 2.0实例的版本建议为5.4.11及以上,升级方式请参见查看和升级实例版本。
源库 | 目标库 | 同步类型 | 同步拓扑 | 配置文档 |
PolarDB-X 1.0 | PolarDB-X 1.0 | 全量数据同步 增量数据同步 | 单向同步 | |
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
PolarDB MySQL版 所有版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云原生数据仓库 AnalyticDB MySQL 版 3.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
DataHub | 库表结构同步 增量数据同步 | 单向同步 | ||
云原生数据仓库 AnalyticDB PostgreSQL 版 4.3、6.0、7.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
Elasticsearch 5.5、5.6、6.x、7.x、8.x版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
PolarDB-X 2.0 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
PolarDB-X 2.0 | PolarDB-X 2.0 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 双向同步 | |
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
PolarDB MySQL版 所有版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云原生数据仓库 AnalyticDB MySQL 版 3.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
DataHub | 库表结构同步 增量数据同步 | 单向同步 | ||
MaxCompute | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云原生数据仓库 AnalyticDB PostgreSQL 版 4.3、6.0、7.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
Elasticsearch 5.5、5.6、6.x、7.x、8.x版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
Oracle(RAC或非RAC架构) 版本为9i、10g、11g、12c、18c、19c | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
表格存储(Tablestore) | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
PolarDB-X 1.0 | 全量数据同步 增量数据同步 | 单向同步 | ||
云数据库SelectDB版 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 |
源为PolarDB PostgreSQL版(兼容Oracle)
源库 | 目标库 | 同步类型 | 同步拓扑 | 配置文档 |
PolarDB PostgreSQL版(兼容Oracle) 所有版本 | PolarDB PostgreSQL版(兼容Oracle) 所有版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 双向同步 | |
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云原生数据仓库 AnalyticDB MySQL 版 3.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | PolarDB PostgreSQL版(兼容Oracle)集群同步至云原生数据仓库 AnalyticDB MySQL 版 3.0 |
源为Oracle
仅支持在新版控制台配置。
建议目标PolarDB-X 2.0实例的版本为5.4.11及以上,升级方式请参见查看和升级实例版本。
源库 | 目标库 | 同步类型 | 同步拓扑 | 配置文档 |
自建Oracle(RAC或非RAC架构) 9i、10g、11g、12c、18c、19c版本 | 云原生数据仓库 AnalyticDB PostgreSQL 版 4.3、6.0、7.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | |
DataHub | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
PolarDB-X 2.0 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
PolarDB MySQL版 所有版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
MaxCompute | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
PolarDB PostgreSQL版(兼容Oracle) 所有版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
阿里云消息队列Kafka版 0.10.1.0~2.x版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 |
源为自建PostgreSQL或RDS PostgreSQL
源库暂不支持RDS PostgreSQL Serverless实例,目标库支持。
源库 | 目标库 | 同步类型 | 同步拓扑 | 配置文档 |
|
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 双向同步 | |
PolarDB PostgreSQL版 11、14、15、16、17版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 双向同步 | ||
云原生数据仓库 AnalyticDB PostgreSQL 版 4.3、6.0、7.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
PolarDB PostgreSQL版(兼容Oracle) 所有版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云数据库SelectDB版 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 |
源为自建SQL Server或RDS SQL Server
源库支持的自建SQL Server需为Enterprise、Developer、Enterprise Evaluation、Standard、Web版本。
目标库支持的自建SQL Server需为Enterprise、Developer、Enterprise Evaluation、Standard、Web版本。
已支持SQL Server Cluster或SQL Server AlwaysOn High Availability Group。
Azure SQL Database作为源库时,SQLServer增量同步模式需选择轮询查询CDC实例做增量同步。
源库不支持自建SQL Server为2005版本或源RDS SQL Server为2008、2008 R2版本。
在混合式日志解析模式下(即SQLServer增量同步模式为非堆表用日志解析增量同步,堆表用CDC增量同步(混合式日志解析)的实例),支持的源库(包含RDS SQL Server和自建SQL Server)有:
Enterprise或Enterprise Evaluation版:2012、2014、2016、2019或2022版本。
Standard版:2016、2019或2022版本。
Web版本的SQL Server为源库时,SQLServer增量同步模式仅支持解析源库日志做增量同步(不支持堆表)。
源库 | 目标库 | 同步类型 | 同步拓扑 | 配置文档 |
|
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | |
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
PolarDB MySQL版 所有版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云原生数据仓库 AnalyticDB MySQL 版 3.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云原生数据仓库 AnalyticDB PostgreSQL 版 4.3、6.0、7.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
RDS PostgreSQL 9.4、10、11、12、13、14、15、16、17版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
DataHub | 库表结构同步 增量数据同步 | 单向同步 |
源为MariaDB
源库 | 目标库 | 同步类型 | 同步拓扑 | 配置文档 |
|
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | |
RDS MySQL | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
RDS PostgreSQL 9.4、10、11、12、13、14、15、16、17版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 |
源为自建MongoDB或云数据库MongoDB
源库 | 目标库 | 同步类型 | 同步拓扑 | 配置文档 |
副本集架构
| 副本集或分片集群架构
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | |
分片集群架构
| 副本集或分片集群架构
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | |
云数据库MongoDB(分片集群架构) 4.0、4.2、4.4、5.0、6.0、7.0版本 | 云数据库MongoDB(分片集群架构) 4.0、4.2、4.4、5.0、6.0、7.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 双向同步 | |
云数据库MongoDB(副本集架构) 4.0、4.2、4.4、5.0、6.0、7.0版本 | 云数据库MongoDB(副本集架构) 4.0、4.2、4.4、5.0、6.0、7.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 双向同步 | |
副本集或分片集群架构
| 函数计算FC 2.0版本 | 增量数据同步 | 单向同步 | |
云原生多模数据库Lindorm | 全量数据同步 增量数据同步 | 单向同步 | ||
云原生数据仓库 AnalyticDB PostgreSQL 版 4.3、6.0、7.0 | 全量数据同步 增量数据同步 | 单向同步 | ||
云原生数据仓库AnalyticDB MySQL版 3.0 | 全量数据同步 增量数据同步 | 单向同步 | ||
| 全量数据同步 增量数据同步 | 单向同步 | ||
PolarDB MySQL版 所有版本 | 全量数据同步 增量数据同步 | 单向同步 | ||
| 全量数据同步 增量数据同步 | 单向同步 |
源为自建Redis或云数据库Tair(兼容Redis)
Redis属于NoSQL数据库,无需库表结构同步。
仅支持Tair(企业版)实例间的双向同步。
源库为自建Redis或云数据库Tair(兼容Redis)实例时,支持全量数据同步和增量数据同步,合并显示为增量同步。
最高支持11版本的RDB(对应于Redis 7.2)。
源库 | 目标库 | 同步类型 | 同步拓扑 | 配置文档 |
|
| 全量数据同步 增量数据同步 | 单向同步 | |
| 全量数据同步 增量数据同步 | 单向同步 | ||
云数据库Tair(兼容Redis)企业版/Tair实例(集群架构、标准架构或读写分离架构) | 云数据库Tair(兼容Redis)企业版/Tair实例(集群架构、标准架构或读写分离架构) | 全量数据同步 增量数据同步 | 双向同步 |
源为TiDB
源库 | 目标库 | 同步类型 | 同步拓扑 | 配置文档 |
TiDB | 云原生数据仓库 AnalyticDB MySQL 版 3.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | |
PolarDB-X 2.0 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | 文档准备中 |
源为Db2 for LUW
Db2 for LUW在控制台显示为DB2 LUW。
建议目标PolarDB-X 2.0实例的版本为5.4.11及以上,升级方式请参见查看和升级实例版本。
源库 | 目标库 | 同步类型 | 同步拓扑 | 配置文档 |
Db2 for LUW 9.5、9.7、10.1、10.5、11.1、11.5版本 |
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | |
PolarDB MySQL版 所有版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
PolarDB-X 2.0 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
云原生数据仓库 AnalyticDB PostgreSQL 版 4.3、6.0、7.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | ||
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 |
源为Db2 for i(AS/400)
Db2 for i在控制台显示为DB2 iSeries(AS/400)。
源库 | 目标库 | 同步类型 | 同步拓扑 | 配置文档 |
Db2 for i 7.3、7.4版本 |
| 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | 文档准备中 |
PolarDB MySQL版 所有版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | 文档准备中 |
源为AnalyticDB MySQL 3.0
源AnalyticDB MySQL版 3.0集群的内核版本需为3.2.1.0或以上版本。
源库 | 目标库 | 同步类型 | 同步拓扑 | 配置文档 |
云原生数据仓库 AnalyticDB MySQL 版 3.0版本 | 云原生数据仓库 AnalyticDB MySQL 版 3.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 |
源为AnalyticDB PostgreSQL版
源AnalyticDB PostgreSQL版实例的内核版本需为7.2.1.4或以上版本。
源库 | 目标库 | 同步类型 | 同步拓扑 | 配置文档 |
AnalyticDB PostgreSQL版 7.0版本 | AnalyticDB PostgreSQL版 7.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 | |
AnalyticDB PostgreSQL版 7.0版本 | 阿里云消息队列Kafka版 0.10.1.0~2.x版本 | 全量数据同步 增量数据同步 | 单向同步 |
源为数据管理DMS逻辑库
DMS逻辑库需基于多个PolarDB MySQL版实例的分库建立。
源库 | 目标库 | 同步类型 | 同步拓扑 | 配置文档 |
数据管理DMS逻辑库 | 云原生数据仓库 AnalyticDB MySQL 版 3.0版本 | 库表结构同步 全量数据同步 增量数据同步 | 单向同步 |
源为AWS平台数据库
源库 | 目标库 | 同步类型 | 同步拓扑 | 配置文档 |
AWS平台数据库 | 以控制台为准 | |||