我在AWS上以3个实例的复制模式运行MongoDB。设置已经启动并运行了一年多。定期更新应用程序服务器(运行Node.js代码)。应用程序服务器已运行相同的代码几个月。昨晚所有对数据库的调用都开始失败,当我登录运行主MongoDB的AWS EC2实例时,我找不到mongo shell中的任何集合。这是几个月来一直运行的mongo shell(我使用tmux连接)。
根据文件系统的大小消耗,我记得,我认为数据存在,但我现在还不确定如何访问它。
sudo /usr/bin/mongod --replSet ReplicaSet --port 27017 --dbpath /data/db
以上命令用于启动mongo db,没有任何更改,但数据昨晚消失了。所有3台服务器(主服务器和2副服务器)都是如此
非常欢迎任何帮助......
答案 0 :(得分:2)
如果执行了任何dropDatabase命令,请参阅mongodb日志。 通常是/var/log/mongo/mongo.log。或者请参阅/etc/mongo.conf以获取日志文件位置。
最近,一些暴露的mongoDB遭到黑客攻击以获取赎金。
答案 1 :(得分:0)
我想你现在已经解决了这个问题。对于有类似问题的人,我会给出答案。我不确定您使用MongoDB的经验水平,因此我将尝试布置比您可能需要的更多信息。无论如何,我遇到了类似的问题。我喜欢MongoDB,但它有一个学习曲线,我的是与#34;无限制文件"所发生的事情。如果像我一样,你将MongoDB设置为在崩溃时自动重启,那么除非你检查你的日志,否则你可能永远不会意识到崩溃。如果发生崩溃,甚至是重置,有时候文件会在那里,但会落入未经证实的文件中。类别丢失了。所以......
了解"写下问题"以及它们与数据持久性的关系。一篇帮助我很多的文章是:
https://www.percona.com/blog/2016/07/14/mongodb-data-durability/
确保正在加载conf文件。也许是因为某种原因没有看到你的数据。对于测试,您可以加载mongod.exe并指定直接到数据库进行测试的路径,即:
mongod --dbpath c:\ mongo \ data \ db
答案 2 :(得分:0)
对于debian / ubuntu
$ mongo
> use admin
> db.shutdownServer()
然后
mongod --fork --logpath /var/log/mongodb.log --dbpath /var/lib/mongodb