MongoDB bson 备份文件完整导入恢复全流程(个人实操复盘版)

MongoDB BSON备份文件完整导入恢复全流程(本机专属环境版)

本机环境固定路径:

  1. MongoDB服务端目录:D:\software\mongo\8.0\bin
  2. Database Tools工具集(mongorestore):C:\Users\25973\AppData\Local\mongodb\mongodb-database-tools-windows-x86_64\bin
  3. BSON备份文件目录:C:\Users\25973\Downloads\上周\mtsp.20251119
  4. 目标恢复数据库名:mtsp

一、前置知识说明

  1. .bsonmongodump 导出的Mongo原生二进制存储文件,不能使用 mongoimport 导入 ,必须依靠 mongorestore 工具执行整库恢复。
  2. MongoDB 8.0及以上服务端压缩包不自带备份工具,需单独下载Database Tools工具包,本机已解压至AppData目录。
  3. 硬性前置条件:MongoDB数据库服务必须提前启动,否则无法写入BSON数据,会报端口连接拒绝。

二、步骤1:启动MongoDB数据库服务(2种方式,推荐Windows系统服务)

方式A:系统服务启动(根治127.0.0.1连接失败问题)

  1. 快捷键 Win+R,输入 service.msc 回车打开系统服务列表
  2. 在列表中找到 MongoDB Server,右键选择【启动】;右键属性将启动类型改为自动,实现开机自启
  3. 校验服务监听27017端口(新开CMD窗口执行)
cmd 复制代码
cd /d D:\software\mongo\8.0\bin
mongosh

正常进入交互命令行、无connection refused报错,代表本地127.0.0.1:27017数据库服务就绪。

方式B:CMD临时手动启动(仅临时调试,关闭窗口服务直接停止)

cmd 复制代码
cd /d D:\software\mongo\8.0\bin
mongod --dbpath D:\software\mongo\8.0\data --logpath D:\software\mongo\8.0\log\mongod.log --port 27017

注意:该CMD窗口必须全程保持打开,关闭即停止Mongo服务。

三、步骤2:确认BSON备份目录标准结构

进入 C:\Users\25973\Downloads\上周\mtsp.20251119,目录结构如下:

plaintext 复制代码
mtsp.20251119
├─ 集合1.bson
├─ 集合1.metadata.json
├─ 集合2.bson
├─ 集合2.metadata.json
└─ ...

整个文件夹为完整单库备份,不要单独导入单个.bson文件,直接恢复整个根文件夹效率最高。

四、步骤3:切换Tools目录,执行超大库恢复命令

  1. 新开独立CMD窗口,切换至工具集bin目录
cmd 复制代码
cd /d "C:\Users\25973\AppData\Local\mongodb\mongodb-database-tools-windows-x86_64\bin"
  1. 273GB大库优化恢复命令(并发提速,覆盖旧数据)
cmd 复制代码
mongorestore --drop --numParallelCollections 8 --numInsertionWorkersPerCollection 8 -d mtsp "C:\Users\25973\Downloads\上周\mtsp.20251119"

参数说明表

参数 功能作用
--drop 导入前清空目标mtsp库全部集合,规避主键重复冲突报错
--numParallelCollections 8 同时并行恢复8个集合,利用多核CPU大幅提速
--numInsertionWorkersPerCollection 8 单个集合开启8条数据并发写入,缩短超大备份耗时
-d mtsp 指定数据恢复到本地名为mtsp的数据库
末尾引号路径 存放全部BSON文件的备份根目录

五、执行过程关键注意事项

  1. 磁盘空间要求 :Mongo数据目录 D:\software\mongo\8.0\data 所在磁盘剩余空间 ≥320GB,防止写入中途磁盘爆满中断恢复。
  2. 耗时参考(273GB备份)
    • 固态硬盘:2~6小时
    • 机械硬盘:6~15小时
  3. 运行期间两个CMD窗口均不可关闭:
    • MongoDB服务运行窗口(mongod)
    • 执行mongorestore恢复命令的窗口

六、步骤4:校验BSON数据是否完整导入成功

  1. 新开CMD,进入Mongo服务端目录连接数据库
cmd 复制代码
cd /d D:\software\mongo\8.0\bin
mongosh
  1. 切换目标库,查看全部集合
shell 复制代码
use mtsp
db.getCollectionNames()
  1. 抽样校验单集合数据量(替换为实际集合名称)
shell 复制代码
db.你的集合名.countDocuments()

正常打印集合列表、返回数据总条数,代表BSON文件全部导入完成。

七、常见报错与踩坑解决方案

报错1:'mongorestore' 不是内部或外部命令

  • 原因:MongoDB服务端bin目录不自带Tools工具,未切换至AppData下的工具目录执行命令
  • 解决:严格执行步骤3第一条cd切换命令,进入tools/bin目录后再运行mongorestore

报错2:connect refused 无法连接 127.0.0.1:27017

  • 原因:service.msc 中MongoDB Server服务未启动
  • 解决:执行步骤1方式A,启动系统Mongo服务后,重新执行恢复命令

报错3:duplicate key error 主键冲突

  • 原因:目标mtsp库已存在同名数据,未添加--drop清空参数
  • 解决:命令追加--drop参数,导入前自动清理库内旧数据

报错4:磁盘空间不足,写入中断

  • 原因:Mongo数据盘剩余空间小于备份文件体积
  • 解决:清理磁盘文件,保证至少预留50GB以上空闲空间再执行恢复

八、拓展:单独导入单个BSON文件(不推荐,特殊场景使用)

cmd 复制代码
cd /d "C:\Users\25973\AppData\Local\mongodb\mongodb-database-tools-windows-x86_64\bin"
mongorestore -d mtsp -c user --drop "C:\Users\25973\Downloads\上周\mtsp.20251119\user.bson"
  • 参数 -c user:指定将该bson导入到mtsp库下的user集合,可按需修改集合名
相关推荐
deli0070072 小时前
JSON 树形查看器:粘贴即解析,折叠展开一目了然
前端·数据库·json·ai编程
国科安芯2 小时前
轨道供电韧性:ASP4644四通道降压架构在低轨卫星平台电源管理中的适用性分析
运维·网络·数据库·嵌入式硬件·架构·状态模式·低轨卫星星座
破土士V2 小时前
MySQL基础知识集合
数据库·mysql
笃行3503 小时前
达梦 VS 金仓:数据库替换项目里,迁移工具的差距体现在哪一层
数据库
笃行3503 小时前
向量数据库之后,一份合同为什么在五个库里对不上
数据库
笃行3503 小时前
数据库迁移工具装在一台笔记本上的年代,该翻篇了
数据库
笃行3503 小时前
一张表底下几千个分片:金仓时序数据库的超表怎么工作
数据库
whcyhhh3 小时前
头歌实践教学平台:数据科学与大数据技术导论(七上)
大数据·数据库·python
夕除4 小时前
redis--007
数据库·分布式
润乾软件4 小时前
CodeBuddy+SQLazy 编写复杂 SQL 详解
数据库·sql·codebuddy·sqlazy