ubuntu – 是否有可能从.ns和.0,.1 ,.恢复MongoDB数据库. ……文件?

前端之家收集整理的这篇文章主要介绍了ubuntu – 是否有可能从.ns和.0,.1 ,.恢复MongoDB数据库. ……文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Ubuntu 12.10上安装了MongoDB 2.0.4.最近我从外面连接到数据库时遇到了一些问题,并且发现有些东西阻止了MongoDB正确启动.正如几个来源(参见StackOverflow)所建议的,我删除了/var/lib/ mongodb/ mongodb.lock并运行了mongod –repair.这并没有解决问题,MongoDB不会运行并继续创建锁定文件,之后它不需要删除.通过查看日志,我意识到它无法访问一些名为$tmpSomething的文件夹,所以(因为名称提示了一个临时文件夹)我删除了它,之后它全部工作了……除了我只有这个事实有一个我以前的数据库,而其他数据库仍在那里,因为我的/ var / lib / mongodb /文件夹仍然充满了.ns .0 .1 .n文件,这些文件非常重要.有没有办法将它们恢复到数据库中? (我曾尝试使用mongorestore,但正如我所料,它不处理这些文件).

谢谢

.ns .0 .1等文件是数据文件本身.如果您启动了一个mongod实例,其中–dbpath参数指向该文件夹,或者您将内容移动到其他位置并使用该选项指向那里,mongod将尝试正常读取它们.

由于您的问题建议破坏和/或启动mongod的其他一些问题(您应该发布启动消息日志文件,可能在单独的问题中解决该问题),然后有其他选择.作为参考,最常见的问题是权限相关,特别是当人们尝试手动(如他们自己)或使用sudo(作为root)启动mongod并在各种目录中创建有问题的权限时.

你是正确的mongorestore不能直接使用这些数据文件,但是mongodump可以读取它们并将数据从它们转储到mongorestore期望的BSON文件中.

你想要的选项是dbpath.你提到你的路径是/ var / lib / mongo,所以你可以运行这样的东西:

mongodump --dbpath /var/lib/mongo -d <database name> -o /path/to/put/files

或者你可以在这里使用–repair来修复损坏以及在极端情况下的查询选项来绕过损坏的部分(很少,如果有的话,需要). mongodump页面上描述了各种选项:

http://docs.mongodb.org/manual/reference/mongodump/

一旦转出文件,就可以使用mongorestore将它们重新导入另一个mongod实例.

猜你在找的Ubuntu相关文章