使用--nojournal选项启动mongod会删除现有的日志文件吗?

时间:2015-11-05 03:39:54

标签: mongodb journaling

我的MongoDB因尝试附加到日志文件时发生内存不足错误而崩溃。 在那个例子中,我的mongod.lock文件是空的。我没有任何选择重新启动mongod。它通常接受连接。然后我运行了mongo.exe,但无法连接到db。它坚持“连接到测试”但从未成功连接。

我结束了这个过程,我用--nojournal选项重新启动了mongod。但这也没有帮助。

但现在我看到mongod.lock文件非空。此外,我的所有日​​记帐分录都将被删除。

问题是, - noJournal选项是否删除了现有的日记帐分录?还有,有办法恢复日记帐分录吗?

1 个答案:

答案 0 :(得分:1)

崩溃后恢复

首先,请阅读这篇文章:

Recover Data after an Unexpected Shutdown

崩溃后,您有两种选择:

  • 如果是独立实例,请使用mongod选项运行--repair;
  • 如果实例是副本集的一部分,请擦除所有数据并从备份还原或从另一个副本集成员执行初始同步。

--nojournal选项

运行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重新启动它。

我相信这就是你的情况。您不需要尝试恢复日记文件,因为它们已经应用于您的数据。