我的MongoDB因尝试附加到日志文件时发生内存不足错误而崩溃。 在那个例子中,我的mongod.lock文件是空的。我没有任何选择重新启动mongod。它通常接受连接。然后我运行了mongo.exe,但无法连接到db。它坚持“连接到测试”但从未成功连接。
我结束了这个过程,我用--nojournal选项重新启动了mongod。但这也没有帮助。
但现在我看到mongod.lock文件非空。此外,我的所有日记帐分录都将被删除。
问题是, - noJournal选项是否删除了现有的日记帐分录?还有,有办法恢复日记帐分录吗?
答案 0 :(得分:1)
首先,请阅读这篇文章:
Recover Data after an Unexpected Shutdown
崩溃后,您有两种选择:
mongod
选项运行--repair
; 运行mongod --nojournal
将不删除日记文件。事实上,如果存在日志文件,mongod
甚至不会启动。它会给你以下消息并关闭。
Error: journal files are present in journal directory, yet starting without journaling enabled.
It is recommended that you start with journaling enabled so that recovery may occur.
exception in initAndListen: 13597 can't start without --journal enabled when journal/ files are present, terminating
如果您在没有mongod
选项的情况下运行--nojournal
,它将应用日记文件中保存的所有更改并删除文件。只有这样才能使用--nojournal
重新启动它。
我相信这就是你的情况。您不需要尝试恢复日记文件,因为它们已经应用于您的数据。