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

如何恢复MongoDB服务器中被误删除的数据?

MongoDB误删数据恢复操作步骤
  • 首先第一时间停止MongoDB服务,禁止对MongoDB所在磁盘做任何新的写入操作,避免已删除的数据块被新数据覆盖导致永久丢失。

已提前做过数据备份的场景

  • 直接使用最新的备份文件恢复即可,MongoDB官方恢复命令为:
mongorestore --uri "你的MongoDB连接串" --dir <本地备份文件所在目录>
  • 如果是云托管的MongoDB实例,直接在控制台选择对应时间点的快照回滚即可。

没有提前备份的场景

场景A:使用WiredTiger存储引擎(MongoDB 3.2及以上版本默认开启)

  1. 找到MongoDB的数据存储目录,可从配置文件的dbPath字段查看,默认路径为/data/db(Linux/macOS)或C:\data\db(Windows)。
  2. 把整个dbPath目录完整复制到其他独立磁盘分区,所有恢复操作都针对复制后的副本执行,避免损坏原始文件。
  3. 使用WiredTiger自带的wt工具扫描数据文件中标记为删除但还未被覆盖的数据块,导出可识别的BSON格式数据,导出后即可用mongorestore命令导回MongoDB。

场景B:MongoDB为副本集部署且开启了oplog

  1. 先导出删除操作执行前的oplog日志,命令如下:
mongodump --uri "你的MongoDB连接串" -d local -c oplog.rs --query '{"ts": {"$gte": Timestamp(删除操作前的时间戳, 0)}}'
  1. 过滤掉删除操作对应的oplog条目后,回放剩余oplog即可将数据恢复到删除前的状态。

注意:如果数据删除后MongoDB持续有写入操作,已删除的数据块大概率已经被新数据覆盖,这种情况没有可行的恢复方案。

内容的提问来源于stack exchange,提问作者Justin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:36:03