【问题标题】:mongodb recovery removed recordsmongodb恢复删除记录
【发布时间】:2012-08-23 22:22:19
【问题描述】:

我有一个包含两个成员的副本集,我不小心删除了集合中的所有文档,我不知道我是怎么做到的,但它已经消失了。 是否有可能取回所有数据?

【问题讨论】:

    标签: mongodb collections replication recover


    【解决方案1】:

    除非你有一个backup(总是推荐这种类型的东西),或者其中一个副本正在使用slavedelay,那么我担心删除记录是最终的。如果您在下一次 fsync 到磁盘之前终止进程(类似地,如果您在复制删除之前中断了复制),您可能能够及时强制关闭以将数据保存在磁盘上,但即便如此它也会很棘手。

    【讨论】:

    • 我有一个用于 mac 的时间机器备份,但我不能简单地复制它,因为某些集合已过时。是否可以只恢复一个集合? db目录下有db-0、db-1、db-2、db-ns文件。谢谢
    • 是的 - 如果您可以访问数据文件或将它们复制到其他地方,那么您可以使用 mongodump 直接使用 --dbpath 查询文件 - 无需运行 mongod 进程即可所以。然后只需按照此处的说明转储特定集合:mongodb.org/display/DOCS/…
    • 您也可以采取复制旧文件的方式,启动一个单独的独立 mongod(不同端口,无 replSet 参数)进程,并将其指向旧数据作为其 dbpath。然后您可以从该独立 mongod 中查询或转储集合
    • 有效。谢谢。我也很惊讶 mongo 吃了 2GB 的存储空间,但我的数据只有大约 15MB
    • 这通常是数据之上的日志和 oplog - 如果您只打算使用小数据集来提供帮助,您可以从 --smallfiles 选项开始。 oplog 也可以调整为更小的大小(但需要将其删除并重新创建)。
    猜你喜欢
    • 2013-02-26
    • 2012-05-20
    • 2019-06-18
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    相关资源
    最近更新 更多