mongodb
高洛峰
高洛峰 2017-04-27 09:02:59
0
1
600

大家好,为什么mongodb存入的数据,第二天启动mongo的时候,删掉mongod.lock然后数据全没了,是什么原因?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
黄舟

解决办法

首先,mongod.lockmongo服务端启动后在硬盘中创建的一个锁文件,如果你正常退出mongod服务,该文件即使还存在,也不会影响下一次启动mongod服务的。同时,这个文件还会记录mongod在运行过程中的一些状态,以便在正常重新启动服务时能够获取异常信息提示。

注意:一般只有在非正常退出mongod服务时,才需要删除mongod.lock文件。正常退出,无需删除。

现在数据丢失,应该是非正常退出,即数据库崩溃,如果没有开启journal,那么就没办法保证数据的完整性了。

所以在生产环境中一般都会开启journal

如果数据没有备份,只能试试使用mongod内置的修复,运行mongod加上--repair选项:

mongod --dbpath /path/to/corrupt/data --repair

是否要删除mongod.lock文件?

当正常关闭mongod时,会清除mongod.lock文件,下次启动时知道上次是完全关闭的。相反,如果lock文件没有被清除,mongod没有正常的关闭。

如果mongod检测到没有正常的关闭,不会让你再次启动,启动时会打印上次异常关闭的信息,需要你复制一份数据。然而,有些人已经意识到,可以通过删除这个lock文件来绕过这个检查。所以就有了删除这个文件的原因。在启动时删除lock文件意味着你不知道或不关心你的数据是否已经损坏。如果无法启动mongod,请修复你的数据,而不是删除lock文件。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!