You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MongoDB数据库从一台Linux服务器迁移到另一台Linux服务器

mongodump 工作原理

mongodump是MongoDB官方推出的原生数据导出工具,属于MongoDB Database Tools套件的标准组件,专为数据备份、跨实例迁移场景设计,核心工作逻辑如下:

  • 直接读取MongoDB实例存储层的BSON格式数据,导出产物包含完整的集合结构、文档数据、索引配置、校验规则等元信息,不会对源库的原有数据产生任何修改
  • 默认导出产物会存放在当前执行命令的路径下的dump目录中,每个数据库对应独立子目录:集合的业务数据存储为.bson文件,集合的元数据(索引、分片规则等)存储为.metadata.json文件
  • 支持全量实例备份、单库备份、单集合备份三种模式,也支持通过查询条件过滤导出部分数据,适配不同迁移需求
  • 注意:默认状态下mongodump不会导出local系统库的内容,如果你有存储在local库的数据需要迁移,需要手动指定该库导出
跨Linux主机MongoDB全量迁移操作步骤

迁移前需确认:源端和目标端安装的mongodump/mongorestore工具版本尽量和对应MongoDB服务版本一致,大版本差不要超过2个,避免出现兼容性问题。

  • 第一步:源端执行全量导出
    登录部署源MongoDB的Linux虚拟机,执行备份命令,若实例未开启身份鉴权,可删除-u、-p、--authenticationDatabase三个参数:
    mongodump -u [源库管理员用户名] -p [源库密码] --port [MongoDB服务端口,默认27017] --authenticationDatabase admin -o ./mongodb_full_bak
    其中-o参数用于指定备份文件的输出目录,避免覆盖默认dump目录的历史备份。

  • 第二步:传输备份包到目标虚拟机
    可以通过scp命令直接将备份目录传输到目标Linux虚拟机,执行命令时替换对应的目标机用户名、IP、存储路径:
    scp -r ./mongodb_full_bak [目标机用户名]@[目标机IP]:/data/mongobak/

  • 第三步:目标端执行全量导入
    确认目标端MongoDB服务正常运行后,执行mongorestore命令导入备份数据,无鉴权可删除对应身份校验参数:
    mongorestore -u [目标库管理员用户名] -p [目标库密码] --port [目标MongoDB端口] --authenticationDatabase admin /data/mongobak/mongodb_full_bak
    若目标端已存在同名数据库需要覆盖,可额外添加--drop参数,导入前会先删除目标库中已存在的同名集合,避免数据冲突。
    导入完成后可登录目标MongoDB实例,执行show dbs、db.[对应集合名].countDocuments({})等命令核对数据量、集合结构是否和源端完全一致。

官方核心说明

mongodump与配套的mongorestore是MongoDB官方首推的跨实例全量迁移工具,兼容MongoDB 4.0及以上所有正式版本。
单实例数据量大于100G的场景下,可添加--numParallelCollections参数指定并行导出的集合数量,可大幅提升导出、导入的执行效率。

内容的提问来源于stack exchange,提问作者Amrit R Asher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 20:36:02