本文为您列出数据传输服务DTS(Data Transmission Service)的常见问题和相关解答。

DTS支持哪些数据库?

DTS支持RDBMS、NoSQL、OLAP等数据源间的数据交互,详情请参见支持的数据库

说明 DTS同时支持将第三方云厂商的数据库迁移或同步至阿里云,相关案例请参见DTS数据迁移方案概览

数据迁移、数据同步或数据订阅的工作原理是什么?

详情请参见产品架构及功能原理

数据迁移和数据同步的区别是什么?

对比项 数据迁移 数据同步
适用场景 主要用于上云迁移,例如将本地数据库、ECS上的自建数据库或第三方云数据库迁移至阿里云数据库。

它属于一次性任务,迁移完成后即可释放实例。

主要用于两个数据源之间的数据实时同步,适用于异地多活、数据灾备、跨境数据同步、查询与报表分流、云BI及实时数据仓库等场景。

它属于持续性任务,任务创建后会一直同步数据,保持数据源和数据目标的数据一致性。

支持的数据库 详情请参见支持的数据库 详情请参见支持的数据库
支持的数据库部署位置
  • 有公网IP的自建数据库
  • 无公网IP:Port的数据库(通过数据库网关DG接入)
  • 通过云企业网CEN接入的自建数据库
  • ECS上的自建数据库
  • 通过专线/VPN网关/智能接入网关接入的自建数据库
  • ECS上的自建数据库
  • 通过专线/VPN网关/智能接入网关接入的自建数据库
  • 无公网IP:Port的数据库(通过数据库网关DG接入)
  • 通过云企业网CEN接入的自建数据库
说明 数据同步基于内网传输,可以保证更低的网络延时。
功能特性差异
  • 支持库表列三级对象名映射。
  • 支持过滤待迁移的数据。
  • 支持选择同步的SQL操作类型,例如选择仅同步INSERT操作。
    说明 该功能仅在MySQL数据库间的迁移下支持。
  • 支持读取其他阿里云账号下的专有网络,通过该功能可以实现跨阿里云账号迁移专有网络下的自建数据库。
  • 支持库表列三级对象名映射。
  • 支持过滤待同步的数据。
  • 支持在线修改同步对象。
  • 支持MySQL间的双向同步。
  • 支持选择同步的SQL操作类型,例如选择仅同步INSERT操作。
计费方式 仅支持按量付费。 支持按量付费和包年包月。
计费规则 仅在增量数据迁移正常运行期间计费(包含增量数据迁移暂停期间),结构迁移和全量数据迁移期间不计费。
  • 按量付费时,实例完成配置且成功启动后开始计费(包含启动后的暂停期间)。
  • 包年包月时,按照购买时选择的配置和购买量一次性扣费。
说明 对于某些数据同步不支持的数据库(例如MongoDB实例),您可以通过增量数据迁移的方式来实现数据同步。

同步延迟的计算规则是什么?

同步到目标库最后一条数据的时间戳,与当前时间戳的差值,单位为毫秒。

如何解决DTS无法连接数据库的问题?

详情请参见源库连接性检查目标数据库连接性检查

DTS如何收费?

详情请参见产品定价

不同的链路规格有什么区别?

详情请参见数据迁移链路规格说明数据同步链路规格说明

链路规格是否支持降级?

暂不支持。

为什么数据同步的价格普遍高于数据迁移?

数据同步具有更多的高级特性,例如在线调整同步对象、MySQL双向同步,且数据同步基于内网传输,可以保证更低的网络延时。

是否支持跨云账号的数据迁移或数据同步?

源或目标实例位于DTS暂不支持的地区,如何进行数据迁移和同步?

  • 如果是数据迁移任务,您可以为数据库实例(如RDS MySQL)申请公网地址,作为有公网IP的自建数据库接入,实例地区可以选择DTS支持的地区,比如杭州,并需要将对应地区的DTS服务器IP地址段添加到实例的白名单中,请参见迁移、同步或订阅本地数据库时需添加的IP白名单
  • 如果是数据同步任务,由于数据同步暂不支持将数据库实例作为有公网IP的自建数据库接入,因此DTS暂不支持这些地区的数据同步。

是否支持只读实例为源的数据迁移、同步或者订阅?

仅全量迁移、结构迁移支持将只读实例(比如RDS只读实例、PolarDB只读实例)为源,增量数据迁移、数据同步或数据订阅不支持。这是由于增量数据迁移、数据同步和订阅是通过读取源实例的增量日志(例如Binlog)来实现的,而只读实例并不记录事务日志。

是否支持同一实例内的数据迁移?

支持,相关案例请参见不同库名间的数据迁移

是否支持DML或DDL操作的实时迁移或同步?

支持,关系数据库之间的数据迁移或同步,支持的DML操作为INSERT、UPDATE、DELETE,支持的DDL操作为CREATE、DROP、ALTER、RENAME、TRUNCATE。

说明 不同场景下支持的DML或DDL操作有所区别,例如从MySQL同步到AnalyticDB MySQL(2.0)时,DDL仅支持CREATE TABLE、ALTER TABLE、DROP TABLE,DML仅支持INSERT、UPDATE、DELETE,请在DTS数据迁移方案概览DTS数据同步方案概览中选择符合业务场景的链路,在具体链路配置文档中查看支持的DML或DDL操作。

DTS是否支持分库分表的数据迁移或数据同步?

支持,例如将MySQL、PolarDB MySQL中的分库分表迁移或同步到AnalyticDB for MySQL中,以实现多表归并。

DTS是否支持跨时区或字符集的数据迁移或数据同步?

支持。

是否支持更改数据迁移或数据同步的对象在目标库中的名称?

支持,DTS支持库名、表名、列名的名称映射,详情请参见库表列映射设置同步对象在目标实例中的名称

是否支持过滤部分字段或数据?

支持,DTS支持过滤数据表的部分字段或数据,详情请参见过滤待迁移数据通过SQL条件过滤待同步数据

数据同步是否支持新增或移除同步对象?

支持,详情请参见新增同步对象移除同步对象

数据同步或迁移任务时,目标库修改数据的影响,以及修改是否生效?

  • 目标库修改数据有可能导致DTS任务失败。数据迁移或同步过程中,如果对目标库待迁移或同步的对象执行操作,可能会导致主键冲突,无更新记录等情况,最终DTS任务失败。但是可以执行不会导致DTS任务中断的操作,比如在目标实例创建一个表并执行写入,因为不在该表迁移或同步对象表中,因此不会引导致DTS失败。
  • 由于DTS是读取源实例数据库信息,将其全量数据、结构数据、增量数据迁移或同步到目标实例中,因此任务进行时目标库修改数据可能会被来自源库迁移或同步的数据覆盖。

如何查看数据迁移或数据同步的性能信息?

详情请参见查看增量迁移链路状态和性能查看同步链路状态和性能

如何消费订阅的数据?