如果有人意外删除了MongoDB数据库但执行了db.dropDatabase(),他怎么能恢复数据库呢?
删除MongoDB中的数据库很简单,命令db.dropDatabase()不会删除它上面的所有数据,而是将其标记为要删除,因此使用drop命令后数据库的大小不会改变,我认为应该有一些方法来删除待删除的标记。有人能指出我怎么做?
答案 0 :(得分:5)
我试图重现你做过的事情。在我备份之后,我使用db.dropDatabase()杀死了一个数据库:-) db名称是'gacheater'。在删除mongodb文件夹之前包含3个文件(db非空):
消失了。因此,我认为 mongodb确实删除了您的数据。
所以你唯一的选择就是尝试从文件系统中恢复文件
PS:MacOS 10.5,MongoDB 1.8.2
答案 1 :(得分:3)
AFAIK大多数系统只是通过标志将文件标记为已删除,而不是实际覆盖它。可以使用标准工具恢复文件...
http://www.cyberciti.biz/tips/linuxunix-recover-deleted-files.html
这些可能更容易使用
http://extundelete.sourceforge.net/
指出无法替代备份。