为保障数据同步作业的正常运行,DTS对不同的数据库存在使用上的限制。

注意事项

为保障DTS可以正常读取源库的库表信息、连接源和目标库,在配置或修改数据同步作业时,源库和目标库不能处于升级、变配、网络切换、跨可用区迁移等状态,即源库和目标库须处于正常运行的状态。

说明 源库和目标库包括但不限于阿里云数据库、自建数据库或友商云数据库。

源库为MySQL

使用限制 超出限制产生的影响
数据库所属的服务器需具备足够的出口带宽。 影响数据和Binlog读取速度和数据同步的延迟。
请勿在链路创建阶段执行库/表结构变更的DDL操作。 数据同步链路建立失败。
Binlog需是开启状态,并满足以下要求:
  • binlog_format设置为row。
  • binlog_row_image设置为full。

DTS将在预检查阶段报错并给出相关提示,且无法成功启动数据同步作业。

Binlog日志应至少保留24小时(建议3天以上)。 当链路由于不可控因素中断,可能由于Binlog的缺失导致链路无法被恢复。
用于数据同步的账号需具备REPLICATION SLAVER、REPLICATION CLIENT及所有待同步对象的SELECT权限。

DTS将在预检查阶段报错并给出相关提示,且无法成功启动数据同步作业。

源库为自建库时,请勿在数据同步期间执行主备切换。 可能影响主库性能。例如在配置数据同步时,提供的是从库的连接信息,执行主备切换后该从库可能会成为主库,从而影响主库性能。

源库为DRDS

使用限制 超出限制产生的影响
DRDS中的数据库须基于已有的RDS MySQL创建,DTS暂不支持基于私有RDS MySQL和PolarDB MySQL创建的数据库。 无法完成数据同步作业的配置。
数据同步期间,请勿对DRDS实例中的数据库执行扩容或缩容操作。 数据同步失败。
不支持DDL语句的同步。 数据同步失败。

源库为PostgreSQL

使用限制 超出限制产生的影响
请勿在数据同步期间执行主备切换(社区版)。 可能造成数据同步失败。
用于数据同步的账号需具备schema的owner权限。

DTS将在预检查阶段报错并给出相关提示,且无法成功启动数据同步作业。

源库为Redis

使用限制 超出限制产生的影响
数据同步的过程中,请勿执行Resharding操作。 目标库和源库的数据不一致。
数据同步的过程中,请勿执行FLUSHDB、FLUSHALL或SWAPDB命令。 目标库和源库的数据不一致。
请勿大量执行SCRIPT命令。 同步延迟上升。
用于数据同步的账号需具备sync/psync权限。

DTS将在预检查阶段报错并给出相关提示,且无法成功启动数据同步作业。

同步链路延时无法恢复时,会执行RDB的重新同步。 丢失执行过的删除操作。

目标库为MySQL

使用限制 超出限制产生的影响
仅支持同步部分DDL语句:
  • ALTER TABLE、ALTER VIEW
  • CREATE FUNCTION、CREATE INDEX、CREATE PROCEDURE、CREATE TABLE、CREATE VIEW
  • DROP INDEX、DROP TABLE
  • RENAME TABLE
  • TRUNCATE TABLE
如果源库执行了不支持的DDL操作,将导致数据同步失败。

目标库为DRDS

使用限制 超出限制产生的影响
DRDS中的数据库须基于已有的RDS MySQL创建,DTS暂不支持基于私有RDS MySQL和PolarDB MySQL创建的数据库。 无法完成数据同步作业的配置。
DRDS的MySQL版本为8.0时,需要将数据库级参数ENABLE_LOGICAL_INFO_SCHEMA_QUERY的值设置为false,详情请参见参数设置 数据同步失败。
不支持DDL语句的同步。 数据同步失败。

目标库为PostgreSQL

使用限制 超出限制产生的影响
不支持DDL语句的同步。 数据同步失败。

目标库为Redis

使用限制 超出限制产生的影响
在数据同步的过程中,请勿执行FLUSHDB、FLUSHALL或SWAPDB命令(集群架构)。 数据不一致。
在执行全量初始化时,需要保证Redis库中没有数据(Redis社区版、阿里云Redis社区版)。 集合类型数据不一致。

目标库为分析型数据库MySQL版(2.0)

使用限制 超出限制产生的影响
表名不能以下划线(_)开头。

DTS将在预检查阶段报错并给出相关提示,且无法成功启动数据同步作业。

支持同步的DDL语句:仅ADD COLUMN。 数据同步失败。
同步对象不是整库时,源库不可执行Online DDL操作。 数据同步失败(提示某张临时表不存在或者已经存在)。
同步的库或列名不能包含保留的名称,详情请参见保留字 数据同步失败。
待同步的数据表必须具备主键,且主键的值不能为Null。 数据同步失败或无法启动数据同步作业。
源中不能包含分析型数据库MySQL版不支持的非法值。 数据同步失败。
FLOAT类型不支持精度和范围。 同步后的数据不一致。
不支持UNSIGNED定义、不支持Decimal类型、时间类型不兼容MySQL。 数据同步失败。
默认值定义不能与MySQL兼容差距太大。 数据同步失败。
列最大长度默认限制为8MB。 数据同步失败。

目标库为分析型数据库MySQL版(3.0)

使用限制 超出限制产生的影响
最多支持1024张表。 数据同步失败。
支持同步的DDL语句:CREATE TABLE、DROP TABLE、RENAME TABLE、TRUNCATE TABLE、ADD COLUMN、DROP COLUMN。 数据同步失败。
同步对象不是整库时,源库不可执行Online DDL操作。 数据同步失败(提示某张临时表不存在或者已经存在)。
待同步的数据表必须具备主键,且主键的值不能为Null。 数据同步失败或无法启动数据同步作业。
源中不能包含分析型数据库MySQL版不支持的非法值。 数据同步失败。
部分非法值处理,分析型数据库MySQL版(3.0)与MySQL不兼容。 数据同步失败。
列最大长度默认限制为16MB。 数据同步失败。

目标库为Maxcompute

使用限制 超出限制产生的影响
支持同步的DDL语句:ALTER TABLE、ADD COLUMN。 数据同步失败。

目标库为Datahub

使用限制 超出限制产生的影响
数据同步阶段过滤DDL语句,不会将DDL操作同步到目标库。 不涉及

目标库为Kafka

使用限制 超出限制产生的影响
数据同步阶段过滤DDL语句,不会将DDL操作同步到目标库。 不涉及