本文介绍当迁移的目标库类型为 MongoDB(如火山引擎版 MongoDB 或自建 MongoDB)时,支持的数据库以及使用限制详情。
源库 | 目标库 | 支持版本 | 迁移类型 | 同步类型 |
---|---|---|---|---|
|
|
|
|
|
说明
单节点的 MongoDB 实例不支持增量数据迁移和增量数据同步。
类型 | 说明 |
---|---|
源库限制 | 带宽要求:源库所属的服务器需具备足够出口带宽,否则将影响数据迁移速率。 |
待迁移的集合需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标库中出现重复数据。 | |
如迁移对象为集合级别,且需进行编辑(如集合的名称映射),则单次迁移任务仅支持迁移至多 1000 个集合。当超出数量限制,任务提交后会显示请求报错,此时建议您拆分待迁移的集合,分批配置任务。 | |
如需进行增量迁移,源端 Oplog 设置需满足以下要求:
| |
用于数据迁移的账号需具备以下权限:
| |
源库的操作限制:
| |
其他限制 | 建议源库和目标库的 MongoDB 的数据库版本保持一致,或者从低版本迁移到高版本以保障兼容性。如为高版本迁移至低版本,可能存在数据库兼容性问题。 |
不支持迁移 admin 和 local 库中的数据。 | |
不保留事务信息,即源库中的事务迁移到目标库时会转变为单条的记录。 | |
执行数据迁移前需评估源库和目标库的性能,同时建议在业务低峰期执行数据迁移。否则全量数据迁移时 DTS 占用源库和目标库一定读写资源,可能会导致数据库的负载上升。 | |
由于全量数据迁移会并发执行 INSERT 操作,导致目标库的集合产生碎片,因此全量迁移完成后目标库的集合存储空间会比源库的集合存储空间大。 | |
目标 MongoDB 数据库的存储空间须大于源 MongoDB 数据库占用的存储空间。 | |
请确认 DTS 对数据类型为 FLOAT 或 DOUBLE 的列的迁移精度是否符合业务预期。DTS 会通过 ROUND(COLUMN,PRECISION) 来读取这两类列的值。如果没有明确定义其精度,DTS 对 FLOAT 的迁移精度为 38 位,对 DOUBLE 的迁移精度为 308 位。 | |
特殊情况 | 当源库为自建 MongoDB 时,在迁移时,如果源库进行主备切换,将会导致任务失败。 |