You need to enable JavaScript to run this app.
导航
使用限制(源库为 MongoDB)
最近更新时间:2024.05.16 16:17:25首次发布时间:2021.11.23 10:18:01

本文介绍当迁移的目标库类型为 MongoDB(如火山引擎版 MongoDB 或自建 MongoDB)时,支持的数据库以及使用限制详情。

支持的数据库

源库
目标库
支持版本
迁移类型
  • 火山引擎版 MongoDB

  • 火山引擎 ECS 自建 MongoDB

  • 公网自建 MongoDB

  • 专有网络 MongoDB

  • 火山引擎版 MongoDB

  • 火山引擎 ECS 自建 MongoDB

  • 公网自建 MongoDB

  • 专有网络 MongoDB

  • MongoDB 3.4
  • MongoDB 3.6
  • MongoDB 4.0
  • MongoDB 4.4
  • MongoDB 5.0
  • 结构迁移

  • 全量数据迁移

  • 增量数据迁移

    说明

    单节点的 MongoDB 实例不支持增量数据迁移。

使用限制

类型说明
源库限制带宽要求:源库所属的服务器需具备足够出口带宽,否则将影响数据迁移速率。
待迁移的集合需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标库中出现重复数据。
如迁移对象为集合级别,且需进行编辑(如集合的名称映射),则单次迁移任务仅支持迁移至多 1000 个集合。当超出数量限制,任务提交后会显示请求报错,此时建议您拆分待迁移的集合,分批配置任务。

如需进行增量迁移,源端 Oplog 设置需满足以下要求:

  • Oplog 日志需开启,否则预检查阶段提示报错,且无法成功启动数据迁移任务。
  • 建议在全量迁移期间,Oplog 日志至少保留 7 天以上,如需调整 Oplog 大小,请参见 Change the Size of the Oplog。或者等到全量迁移完成后,再清理 DTS 任务运行后源库产生的 Oplog 日志。

用于数据迁移的账号需具备以下权限:- 源库待迁移对象 FIND 权限。

  • 源库 Change Stream 权限。
  • 目标库 FIND、INSERT、UPDATE、REMOVE、DROPDATABASE、DROPCOLLECTION 权限。

源库的操作限制:- 在结构迁移和全量迁移阶段,请勿执行库或集合的结构变更,否则数据迁移任务会失败。

  • 如仅执行全量数据迁移,请勿向源库中写入新的数据,否则会导致源和目标数据不一致。
  • 为实时保持数据一致性,建议同时选择结构迁移、全量数据迁移和增量数据迁移。
其他限制建议源库和目标库的 MongoDB 的数据库版本保持一致,或者从低版本迁移到高版本以保障兼容性。如为高版本迁移至低版本,可能存在数据库兼容性问题。
不支持迁移 admin 和 local 库中的数据。
不保留事务信息,即源库中的事务迁移到目标库时会转变为单条的记录。
执行数据迁移前需评估源库和目标库的性能,同时建议在业务低峰期执行数据迁移。否则全量数据迁移时 DTS 占用源库和目标库一定读写资源,可能会导致数据库的负载上升。
由于全量数据迁移会并发执行 INSERT 操作,导致目标库的集合产生碎片,因此全量迁移完成后目标库的集合存储空间会比源库的集合存储空间大。
目标 MongoDB 数据库的存储空间须大于源 MongoDB 数据库占用的存储空间。
请确认 DTS 对数据类型为 FLOAT 或 DOUBLE 的列的迁移精度是否符合业务预期。DTS 会通过 ROUND(COLUMN,PRECISION) 来读取这两类列的值。如果没有明确定义其精度,DTS 对 FLOAT 的迁移精度为 38 位,对 DOUBLE 的迁移精度为 308 位。
特殊情况当源库为自建 MongoDB 时,在迁移时,如果源库进行主备切换,将会导致任务失败。