为保障数据迁移任务的正常运行,DTS对不同的数据库存在使用上的限制。

注意事项

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

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

源库为MySQL

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

DTS将在预检查阶段报错并给出相关提示,且无法成功启动数据迁移任务。

Binlog日志应至少保留24小时(建议3天以上)。 如果配置迁移任务时选择了增量数据迁移,当链路由于不可控因素中断,可能由于Binlog的缺失导致链路无法被恢复。
用于数据迁移的账号需具备以下权限:
  • 结构迁移或全量数据迁移:所有待迁移对象的SELECT权限。
  • 增量数据迁移:REPLICATION SLAVER、REPLICATION CLIENT及所有待迁移对象的SELECT权限。

DTS将在预检查阶段报错并给出相关提示,且无法成功启动数据迁移任务。

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

源库为SQL Server

使用限制 超出限制产生的影响
如需执行增量数据迁移,备份模式需设置为Full(完整模式),且已成功执行过全量逻辑备份。

DTS将在预检查阶段报错并给出相关提示,且无法成功启动数据迁移任务。

已执行过数据库日志的备份,且至少保留24小时(建议3天以上)。 如果配置迁移任务时选择了增量数据迁移,当链路由于不可控因素中断,可能由于日志文件的缺失导致链路无法被恢复。
用于数据迁移的账号需具备以下权限:
  • 结构迁移或全量数据迁移:所有待迁移对象的SELECT权限。
  • 增量数据迁移:sysadmin权限。

DTS将在预检查阶段报错并给出相关提示,且无法成功启动数据迁移任务。

一个数据迁移任务只能对一个数据库进行增量数据迁移,如果有多个数据库需要增量数据迁移,则需要为每个数据库创建数据迁移任务。 控制台已限制,无法超出限制。
仅支持基础的数据类型,不支持sql_variant、hierarchyid、geometry、cursor和rowversion。
  • 数据类型(image、text、ntext和xml)对应值的变更不会记录在日志中,DTS只能保证其最终一致。
  • 如果出现不支持的数据类型会导致数据迁移失败。
  • 不支持堆表(heap table)。
  • 不支持包含非聚簇索引的表。
数据迁移失败。

源库为Oracle

使用限制 超出限制产生的影响
数据库所属的服务器需具备足够的出口带宽和CPU资源。 影响数据和日志读取速度和增量数据迁移的延迟。
请勿在链路创建阶段执行库或表结构变更的DDL操作。 数据迁移链路建立失败。
  • 需开启Supplemental Logging,且需开启supplemental_log_data_pk和supplemental_log_data_ui。
  • 需开启ARCHIVELOG(归档模式),且允许归档日志被访问。
  • 在配置迁移任务时选择了增量数据迁移,由于DTS无法解析完整的事务日志,DTS将在预检查阶段报错并给出相关提示,且无法成功启动数据迁移。
  • 如果未选择增量数据迁移则不影响。
归档日志至少保留24小时(建议3天以上)。 如果配置迁移任务时选择了增量数据迁移,当链路由于不可控因素中断,可能由于日志文件的缺失导致链路无法被恢复。
用于数据迁移的账号需具备以下权限:
  • 结构迁移或全量数据迁移:schema的owner权限。
  • 增量数据迁移:DBA权限。

DTS将在预检查阶段报错并给出相关提示,且无法成功启动数据迁移任务。

仅支持基础数据类型,不支持URI、UDT、BFile、UROWID。 数据迁移失败。

源库为PostgreSQL

使用限制 超出限制产生的影响
请勿在数据迁移期间执行主备切换(社区版)。 可能造成增量数据迁移失败。
用于数据迁移的账号需具备以下权限:
  • 结构迁移或全量数据迁移:pg_catalog的usage权限、迁移对象的select权限。
  • 增量数据迁移:superuser权限。

DTS将在预检查阶段报错并给出相关提示,且无法成功启动数据迁移任务。

源库为DB2

使用限制 超出限制产生的影响
不支持AIX一体机版本。

DTS将在预检查阶段报错并给出相关提示,且无法成功启动数据迁移任务。

用于数据迁移的账号需具备以下权限:
  • 结构迁移或全量数据迁移:CONNECT、SELECT权限。
  • 增量数据迁移:DBADM权限。

DTS将在预检查阶段报错并给出相关提示,且无法成功启动数据迁移任务。

仅支持下述数据类型:
  • 支持:SMALLINT、INTEGER,、BITINT、 DECIMAL、CHAR、VARCHAR、DECFLOAT、 DOUBLE REAL。
  • 部分支持:GRAPHIC或VARGRAPHIC(存储格式为双字节字符串,无边界检查和正确性校验)、DECFLOAT(数据范围较大,某些数据库没有相应的类型支持,只能截取数值)。
数据迁移失败。
如需执行增量数据迁移,需开启归档日志且允许被访问,详情请参见主日志归档方法辅助日志归档方法

DTS将在预检查阶段报错并给出相关提示,且无法成功启动数据迁移任务。

在主备切换的逻辑设计方面,仅支持SYNC、NEARSYNC、ASYNC同步格式。
说明 在ASYNC模式下,如果在主备不同步的情况下发生强制(非强制情况下备库将先追平主库然后再切换)切换,备库上将可能产生数据丢失。
如果使用SUPERASYNC同步,DTS将无法保证程序在主备切换时的连续性。

源库为Redis

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

DTS将在预检查阶段报错并给出相关提示,且无法成功启动数据迁移任务。

增量数据迁移的延迟信息无法正常显示且自动修复失败时,DTS会以RDB的方式重新迁移数据。 丢失执行过的删除操作。

源库为MongoDB

使用限制 超出限制产生的影响
暂不支持直接迁移集群架构的MongoDB数据库,需要通过迁移分片集群中的每个Shard节点来实现分片集群数据库的整体迁移。 暂不涉及。
数据迁移的过程中,请勿执行Resharding操作。 目标库和源库的数据不一致。
oplog需保持默认配置,即oplog必须写入到local库的oplog.rs集合中。
  • 在配置迁移任务时选择了增量数据迁移,由于DTS无法获取增量日志,DTS将在预检查阶段报错并给出相关提示,且无法成功启动数据迁移。
  • 如果未选择增量数据迁移则不影响。
用于数据迁移的账号需具备以下权限:
  • 全量数据迁移:待迁移库的read权限。
  • 增量数据迁移:待迁移库、admin库和local库的read权限。

DTS将在预检查阶段报错并给出相关提示,且无法成功启动数据迁移任务。

不保留事务信息。 事务迁移到目标库时会转变为单条的记录。

目标库为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(5.x版本)创建,DTS暂不支持基于RDS MySQL(8.0版本)和PolarDB MySQL创建的数据库。 无法完成数据迁移任务的配置。
不支持DDL语句的同步。 数据迁移失败。

目标库为SQL Server

使用限制 超出限制产生的影响
增量数据迁移阶段,仅支持同步部分DDL语句:
  • CREATE TABLE
    说明 不支持分区表和包含函数的表。
  • ALTER TABLE
    说明 仅包含ADD COLUMN、DROP COLUMN、RENAME COLUMN。
  • CREATE INDEX、DROP TABLE、RENAME TABLE、TRUNCATE TABLE
数据迁移失败。

目标库为Oracle

使用限制 超出限制产生的影响
增量数据迁移阶段,仅支持同步部分DDL语句:
  • CREATE TABLE(不支持分区表和包含函数的表)
  • ALTER TABLE
    说明 仅包含ADD COLUMN、DROP COLUMN、RENAME COLUMN、ADD INDEX。
  • CREATE INDEX、DROP TABLE、RENAME TABLE、TRUNCATE TABLE
数据迁移失败。

目标库为PostgreSQL

使用限制 超出限制产生的影响
增量数据迁移阶段,不支持DDL语句的同步。 数据迁移失败。

目标库为Db2

使用限制 超出限制产生的影响
增量数据迁移阶段,不支持DDL语句的同步。 数据迁移失败。

目标库为Redis

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

目标库为MongoDB

使用限制 超出限制产生的影响
不支持事务写。 只保证最终一致性。

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

使用限制 超出限制产生的影响
最多支持1024张表。 数据迁移失败。
部分非法值处理,分析型数据库MySQL版与MySQL不兼容。 数据迁移失败。
列最大长度默认限制为16MB。 数据迁移失败。