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

注意事项

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

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

源库为MySQL

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

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

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

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操作,将导致数据同步失败。

目标库为Redis

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

目标库为分析型数据库MySQL版

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

目标库为Maxcompute

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