繁体   English   中英

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

[英]Starting mongod with --nojournal option deletes existing journal files?

我的MongoDB因尝试附加到日志文件时发生的内存不足错误而崩溃。 在那种情况下,我的mongod.lock文件为空。 我重新启动了mongod,没有任何选择。 它正常地接受连接。 然后我运行mongo.exe,但无法连接到数据库。 它陷入了“连接测试”的困境,但从未成功连接。

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

但是现在我看到mongod.lock文件不为空。 另外,我的所有日​​记帐分录都被删除了。

问题是,--noJournal选项是否删除现有日记帐分录? 另外,有没有办法恢复日记帐分录?

崩溃后恢复

首先,请阅读这篇文章:

意外关闭后恢复数据

发生崩溃后,您有两种选择:

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

--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

如果随后运行不带--nojournal选项的mongod ,它将应用保存在日志文件中的所有更改并删除这些文件。 只有这样,您才能使用--nojournal重新启动它。

我相信这就是您的情况。 您无需尝试还原日志文件,因为它们已经应用于数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM