本文为您列出数据传输服务DTS(Data Transmission Service)的常见问题和相关解答。
热点问题
规格与计费问题
功能特性问题
配置问题
DTS支持哪些数据库?
DTS支持RDBMS、NoSQL、OLAP等数据源间的数据交互,详情请参见支持的数据库。
DTS同时支持将第三方云厂商的数据库迁移或同步至阿里云,相关案例请参见迁移方案概览。
数据迁移、数据同步或数据订阅的工作原理是什么?
详情请参见产品架构及功能原理。
数据迁移和数据同步的区别是什么?
对比项 | 数据迁移 | 数据同步 |
适用场景 | 主要用于上云迁移,例如将本地数据库、ECS上的自建数据库或第三方云数据库迁移至阿里云数据库。 它属于一次性任务,迁移完成后即可释放实例。 | 主要用于两个数据源之间的数据实时同步,适用于异地多活、数据灾备、跨境数据同步、查询与报表分流、云BI及实时数据仓库等场景。 它属于持续性任务,任务创建后会一直同步数据,保持数据源和数据目标的数据一致性。 |
支持的数据库 | 请参见迁移方案概览。 | 请参见同步方案概览。 |
支持的数据库部署位置 |
|
说明 数据同步基于内网传输,可以保证更低的网络延时。 |
功能特性差异 |
|
|
计费方式 | 仅支持按量付费。 | 支持按量付费和包年包月。 |
计费规则 | 仅在增量数据迁移正常运行期间计费(包含增量数据迁移暂停期间),结构迁移和全量数据迁移期间不计费。 |
|
对于某些数据同步不支持的数据库(例如MongoDB实例),您可以通过增量数据迁移的方式来实现数据同步。
同步延迟的计算规则是什么?
同步到目标库最后一条数据的时间戳,与当前时间戳的差值,单位为毫秒。
正常情况的延迟在1000毫秒以内。
如何解决DTS无法连接数据库的问题?
详情请参见源库连接性检查和目标数据库连接性检查。
DTS如何收费?
详情请参见计费概述。
不同的链路规格有什么区别?
详情请参见数据迁移链路规格说明和数据同步链路规格说明。
链路规格是否支持降级?
暂不支持。
为什么数据同步的价格普遍高于数据迁移?
数据同步具有更多的高级特性,例如在线调整同步对象、MySQL双向同步,且数据同步基于内网传输,可以保证更低的网络延时。
是否支持跨云账号的数据迁移或数据同步?
数据迁移:
可直接支持RDS MySQL的跨账号迁移,请参见跨阿里云账号迁移RDS实例。
PolarDB MySQL的跨账号迁移,请参见跨阿里云账号迁移PolarDB MySQL版 。
其他类型的数据库实例(例如DRDS、Redis、MongoDB),可将其作为有公网IP的自建数据库进行跨云账号迁移。
数据同步:当前仅支持RDS MySQL的跨账号同步,详情请参见不同阿里云账号下RDS实例间的数据同步。
说明由于数据同步暂不支持将数据库实例作为有公网IP的自建数据库接入,因此暂不支持除RDS MySQL外的跨账号同步。
源或目标实例位于DTS暂不支持的地区,如何进行数据迁移和同步?
如果是数据迁移任务,您可以为数据库实例(如RDS MySQL)申请公网地址,作为有公网IP的自建数据库接入,实例地区可以选择DTS支持的地区,比如杭州,并需要将对应地区的DTS服务器IP地址段添加到实例的白名单中,请参见添加DTS服务器的IP地址段。
如果是数据同步任务,由于数据同步暂不支持将数据库实例作为有公网IP的自建数据库接入,因此DTS暂不支持这些地区的数据同步。
是否支持只读实例为源的数据迁移、同步或者订阅?
仅全量迁移、结构迁移支持将只读实例(比如RDS只读实例、PolarDB只读实例)为源,增量数据迁移、数据同步或数据订阅不支持。这是由于增量数据迁移、数据同步和订阅是通过读取源实例的增量日志(例如Binlog)来实现的,而只读实例并不记录事务日志。
是否支持同一实例内的数据迁移?
支持,相关案例请参见不同库名间的数据同步或迁移。
是否支持DML或DDL操作的实时迁移或同步?
支持,关系数据库之间的数据迁移或同步,支持的DML操作为INSERT、UPDATE、DELETE,支持的DDL操作为CREATE、DROP、ALTER、RENAME、TRUNCATE。
DTS是否支持分库分表的数据迁移或数据同步?
支持,例如将MySQL、PolarDB MySQL中的分库分表迁移或同步到AnalyticDB for MySQL中,以实现多表归并。
DTS是否支持跨时区或字符集的数据迁移或数据同步?
支持。
是否支持更改数据迁移或数据同步的对象在目标库中的名称?
支持,DTS支持库名、表名、列名的名称映射,详情请参见库表列映射或设置同步对象在目标实例中的名称。
是否支持过滤部分字段或数据?
支持,DTS支持过滤数据表的部分字段或数据,详情请参见过滤待迁移数据或通过SQL条件过滤任务数据。
数据同步是否支持新增或移除同步对象?
数据同步或迁移任务时,目标库修改数据的影响,以及修改是否生效?
目标库修改数据有可能导致DTS任务失败。数据迁移或同步过程中,如果对目标库待迁移或同步的对象执行操作,可能会导致主键冲突,无更新记录等情况,最终DTS任务失败。但是可以执行不会导致DTS任务中断的操作,比如在目标实例创建一个表并执行写入,因为不在该表迁移或同步对象表中,因此不会引导致DTS失败。
由于DTS是读取源实例数据库信息,将其全量数据、结构数据、增量数据迁移或同步到目标实例中,因此任务进行时目标库修改数据可能会被来自源库迁移或同步的数据覆盖。
为什么迁移任务结束后目标实例比源实例的数据量小?
若迁移过程中进行了数据过滤,或者源实例内表碎片较多,迁移完成后目标实例的数据量可能会小于源实例。
如何查看数据迁移或数据同步的性能信息?
详情请参见查看增量迁移链路状态和性能或查看同步链路状态和性能。
如何配置延迟告警及阈值?
DTS提供了监控报警功能,您可以通过控制台对重要的监控指标设置报警规则,让您第一时间了解运行状态,详情请参见配置监控报警。
如何消费订阅的数据?
旧版数据订阅:通过SDK实现订阅数据的消费,详情请参见使用SDK消费订阅数据。
说明当前SDK仅支持Java语言,SDK版本信息请参见下载SDK。
新版数据订阅:通过kafka client实现订阅数据的消费,详情请参见使用Kafka客户端消费订阅数据。