You need to enable JavaScript to run this app.
导航
MongoDB 数据迁移指南
最近更新时间:2025.03.26 16:40:18首次发布时间:2025.03.25 17:12:48
我的收藏
有用
有用
无用
无用

文档数据库 MongoDB 版支持通过数据库传输服务 DTS 提供的多种数据迁移方案,来满足不同业务场景下 MongoDB 数据迁移的需求。本文介绍 DTS 支持的 MongoDB 数据迁移方案、基本原则以及迁移限速相关建议。

迁移工具介绍

火山引擎数据库传输服务 DTS(Database Transmission Service)提供了集数据迁移和数据同步于一体的数据库数据传输管理服务,支持关系型数据库、非关系型数据库间的数据传输,降低数据库之间数据流通复杂性,可在业务不停服的前提下轻松完成数据库迁移上云。关于 DTS 的更多信息,请参见什么是数据库传输服务

迁移方案概览

源库接入方式源库版本迁移类型操作指南

火山引擎版 MongoDB

  • MongoDB 4.0
  • MongoDB 4.2
  • MongoDB 4.4
  • MongoDB 4.0
  • MongoDB 6.0
  • 结构迁移
  • 全量迁移
  • 增量迁移

火山引擎 MongoDB 迁移至火山引擎 MongoDB

公网自建 MongoDB

  • MongoDB 3.4
  • MongoDB 3.6
  • MongoDB 4.0
  • MongoDB 4.2
  • MongoDB 4.4
  • MongoDB 5.0
  • MongoDB 6.0

公网自建 MongoDB 迁移至火山引擎 MongoDB

专有网络 MongoDB专有网络 MongoDB 迁移至火山引擎 MongoDB

迁移基本原则

  • 正式迁移前,强烈建议先在模拟真实业务的测试场景下进行演练,来评估数据迁移对 MongoDB 性能(重点关注读写 I/O、主备复制延迟等)的影响。
  • 强烈建议在业务低峰期进行数据迁移操作,避免或减少对线上业务的影响。
  • 当文档数据库 MongoDB 版作为源库时,建议优先从 MongoDB 的从节点或只读节点读取数据,并在数据迁移过程中重点关注数据读取操作对业务的影响。
  • 当文档数据库 MongoDB 版作为目标库时,在数据迁移过程中建议重点关注数据写入操作对 MongoDB 中主备延时监控指标,避免因从节点延迟过大,导致从节点进入异常状态无法恢复,进而影响实例整体可用性和数据可靠性。关于 MongoDB 主备延时监控指标的更多说明,请参见监控指标说明
  • 适当限制数据迁移工具的并发度、批次大小等,将数据读取操作影响控制在一个可接受的范围内,避免迁移影响业务。强烈建议先根据实例规格设置一个较低的迁移速率,再根据源库和目标库的读写压力逐步提高速率。更多说明,请参见迁移工具限速建议

迁移工具限速建议

火山引擎数据库传输服务 DTS 提供了针对 MongoDB 数据迁移时全量迁移的速率配置参数,防止迁移速率过高时影响数据库性能,您可以根据源库和目标库的读写压力情况适当调整相关参数。具体参数说明如下表所示。

参数名称参数说明
迁移任务并发数按需设置迁移任务的并发数。默认值 8,取值范围 8~64。
每秒迁移的行数按需开启并设置每秒迁移的行数。默认值 100,000,取值范围 1~100,000。
每秒迁移的数据量按需开启并设置每秒迁移的数据量。默认值 25,000,取值范围 1~25,000,单位:KB。

结合上述限速配置参数,MongoDB 提供了如下迁移限速建议供您参考。

数据库类型迁移限速建议

源库

  • 数据读取对于源库的影响相对可控,建议在迁移演练场景下,使用 DTS 的默认迁移任务并发数(即 8),并记录该并发度下数据迁移对源 MongoDB 实例的读写 I/O、CPU、内存等的影响。
  • 在生产环境中正式进行数据迁移时,再结合源库的实例规格以及业务剩余性能资源,来酌情增减并发度。
      例如,源 MongoDB 实例的规格较小,或源 MongoDB 资源使用率较高时先,可以先从 2 或 4 的并发度开始迁移。

    说明

    若实例当前规格允许的迁移速度无法满足您的迁移要求,您可以尝试升级源 MongoDB 实例规格配置。实例变配的具体操作步骤,请参见副本集实例变配变更分片集群实例配置

目标库

  • 若目标 MongoDB 实例中未写入任何数据,且仅用于数据迁移,那么您可以根据 MongoDB 迁移性能参考的测试结果参考值,为 DTS 迁移任务配置合理的全量迁移速率参数,包括每秒迁移的行数和每秒迁移的数据量。

    注意

    • MongoDB 迁移性能参考中提供的迁移性能参考值,是在无其它任何业务负载的情况下测试得出的,您在实际业务中配置全量迁移速率参数时,需要综合业务当前的实际读写负载情况进行设置。
    • 您可以根据实例的网络输入速率网络输出速率监控指标值,来估算出业务当前读写负载的大致情况。关于网络输入速率和网络输出速率的更多详情,请参见监控指标说明
  • 建议先根据实例规格设置一个较低的迁移速率,再根据源库和目标库的读写压力逐步提高速率。具体操作步骤,请参见调整全量迁移速率
  • 建议在迁移过程中密切关注目标 MongoDB 实例中的主备延时监控指标,关于 MongoDB 主备延时监控指标的更多说明,请参见监控指标说明
  • 迁移过程很可能会在短时间内生产大量的 oplog,若您为目标 MongoDB 配置了 oplog 最短保留期(即 oplogMinRetentionHours)参数,建议您密切关注实例的磁盘空间使用率监控指标,避免在 oplog 生成速度较快时,oplog 占用过多磁盘空间导致实例性能下降的风险。更多详情,请参见 oplog 相关参数设置指南

MongoDB 迁移性能参考

性能测试方法

本文在测试 MongoDB 迁移性能参考值时使用的测试方法详情,请参见测试环境测试工具测试命令

性能测试结果

说明

  • 本文中不同规格实例的测试结果,均为执行 3 次相同压测命令后得到的平均结果。
  • 性能测试结果表中的衡量指标说明如下:
    • 读速率:即客户端每秒从 MongoDB 中读取的数据量,单位:MB/s。
    • 写速率:即客户端每秒从 MongoDB 中写入的数据量,单位:MB/s。
  • 本文提供的迁移性能参考值是在无其它任何业务负载的情况下测试得出的,您在实际业务中配置全量迁移速率参数时,需要综合业务当前的实际读写负载情况进行设置。
  • 您可以根据实例的网络输入速率网络输出速率监控指标值,来估算出业务当前读写负载的大致情况。关于网络输入速率和网络输出速率的更多详情,请参见监控指标说明
规格测试结果参考值
读速率(MB/s)写速率(MB/s)
1 核 2GiB104
2 核 4GiB256
4 核 8GiB5010
4 核 16GiB5510
4 核 32GiB5510
8 核 16GiB6015
8 核 32GiB6015
8 核 64GiB6015
16 核 32GiB6518
16 核 64GiB6518
16 核 128GiB6518
32 核 64GiB6518
32 核 128GiB8518
32 核 256GiB8518