本文介绍数据传输服务 (DTS) 的使用限制。

数据迁移

以下各表详细介绍了数据迁移功能的使用限制。

表 1. 源库为SQL Server
使用限制 超出限制产生的影响
不支持以下数据类型:sql_variant、hierarchyid、geometry、cursor和rowversion。
  • 对以下数据类型的值所做的更改不会写入日志:image、text、ntext和xml。 DTS只能确保这些数据类型的值在源数据库和目标数据库之间是一致的。
  • 如果源数据库中使用了不支持的数据类型,则不会迁移这部分数据。
不支持堆表(heap table)。 这些表不会被迁移。
不支持包含非聚簇索引的表。 这些表不会被迁移。
表 2. 源库为Oracle
使用限制 超出限制产生的影响
不支持以下数据类型:URI、UDT、BFile和UROWID。 数据迁移失败。
表 3. 源库为Db2
使用限制 超出限制产生的影响
不支持AIX一体机版本。
仅支持以下数据类型:
  • SMALLINT、INTEGER、BITINT、DECIMAL、CHAR、VARCHAR、DECFLOAT和DOUBLE REAL。
  • GRAPHIC或VARGRAPHIC(存储格式为双字节字符串, 无边界检查和正确性校验)、DECFLOAT(数据范围较大, 某些数据库不支持此数据类型, 只能截断数值。)
数据迁移失败。
主备切换逻辑仅支持SYNC、NEARSYNC和ASYNC三种同步模式。
说明 在ASYNC模式下,如果在主库和备库不同步的情况下进行强制切换,备库上可能会丢失数据。 在主备库同步后进行切换则为非强制切换。
如果使用SUPERASYNC进行同步,DTS将无法保证程序在主备切换时的连续性。
表 4. 源库为MongoDB
使用限制 超出限制产生的影响
暂不支持直接迁移集群架构的MongoDB数据库。 您需要迁移分片集群中的每个Shard节点。 暂不涉及。
不保留事务信息。 当事务迁移到目标数据库时,它们会被转换为单条记录。
表 5. 目标库为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操作,将导致数据迁移失败。
表 6. 目标库为DRDS
使用限制 超出限制产生的影响
DRDS实例中的数据库须基于RDS MySQL(5.x版本)实例创建。 DTS暂不支持基于RDS MySQL(8.0版本)实例或PolarDB MySQL集群创建的数据库。 无法配置数据迁移任务。
无法同步DDL操作。 数据迁移失败。
表 7. 目标库为SQL Server
使用限制 超出限制产生的影响
增量数据迁移阶段,仅支持同步以下DDL操作:
  • CREATE TABLE(如果CREATE TABLE操作用于创建分区表或包含函数的表,则不能同步该操作)
  • ALTER TABLE
    说明 ALTER TABLE操作仅包括ADD COLUMN、DROP COLUMN和RENAME COLUMN。
  • CREATE INDEX、DROP TABLE、RENAME TABLE和TRUNCATE TABLE
数据迁移失败。
表 8. 目标库为Oracle
使用限制 超出限制产生的影响
增量数据迁移阶段,仅支持同步以下DDL操作:
  • CREATE TABLE(如果CREATE TABLE操作用于创建分区表或包含函数的表,则不能同步该操作)
  • ALTER TABLE
    说明 ALTER TABLE操作仅包括ADD COLUMN、DROP COLUMN、RENAME COLUMN和ADD INDEX。
  • CREATE INDEX、DROP TABLE、RENAME TABLE和TRUNCATE TABLE
数据迁移失败。
表 9. 目标库为PostgreSQL
使用限制 超出限制产生的影响
增量数据迁移阶段无法同步DDL操作。 数据迁移失败。
表 10. 目标库为Db2
使用限制 超出限制产生的影响
增量数据迁移阶段无法同步DDL操作。 数据迁移失败。
表 11. 目标库为Redis
使用限制 超出限制产生的影响
在执行全量数据迁移时,需要保证目标Redis库(如Redis社区版、阿里云Redis社区版)中没有数据。 源数据库和目标数据库中的集合类型或数据不一致。
表 12. 目标库为MongoDB
使用限制 超出限制产生的影响
不支持写入事务。 DTS只保证源库和目标库的最终一致性。
表 13. 目标库为分析型数据库MySQL版
使用限制 超出限制产生的影响
最多可迁移1024张表。 数据迁移失败。
分析型数据库MySQL版 在处理一些无效值方面与MySQL不兼容。 数据迁移失败。
默认情况下,列的最大长度为16 MB。 数据迁移失败。

数据同步

以下各表详细介绍了数据同步功能的使用限制。

表 14. 目标库为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操作,将导致数据同步失败。
表 15. 目标库为Redis
使用限制 超出限制产生的影响
如果Redis数据库部署在集群架构中,数据同步过程中不能执行FLUSHDB、FLUSHALL或SWAPDB命令。 源数据库和目标数据库中的数据不一致。
在执行全量数据初始化时,需要保证目标Redis库(如Redis社区版、阿里云Redis社区版)中没有数据。 源数据库和目标数据库中的集合类型或数据不一致。
表 16. 目标库为分析型数据库MySQL版
使用限制 超出限制产生的影响
最多可同步1024张表。 数据同步失败。
仅支持同步以下DDL操作:CREATE TABLE、DROP TABLE、RENAME TABLE、TRUNCATE TABLE、ADD COLUMN和DROP COLUMN。 数据同步失败。
每个待同步的表必须包含一个主键。 主键的值不能为NULL。 数据同步失败或数据同步任务启动失败。
分析型数据库MySQL版 在处理一些无效值方面与MySQL不兼容。 数据同步失败。
默认情况下,列的最大长度为16 MB。 数据同步失败。
表 17. 目标库为MaxCompute
使用限制 超出限制产生的影响
仅支持同步以下DDL操作:ALTER TABLE和ADD COLUMN。 数据同步失败。