mongod.lock 不是零字节文件,但 mongod 还是启动了
mongod.lock was not a zero-byte file but mongod started anyway
我在我的本地机器上使用 MongoDB 运行 的单个实例,并且想编写一个自动修复例程,因为数据库将与我当前工作的用户应用程序捆绑在一起上。
docs 说有一个 mongod.lock
文件表明数据库需要修复:
If the mongod.lock
file in the data directory specified by dbPath,
/data/db
by default, is not a zero-byte file, then mongod will refuse
to start, [...]
我的 mogod
进程开始时很顺利,但我的修复例程告诉我数据库需要修复。修复例程只是寻找 mongod.lock
的文件大小,它是 5 个字节并且 cat mongod.lock
给出了以下内容:
9817
所以根据上面的文档引用,我想知道即使 mongod.lock
文件绝对 不是 零字节文件,MongoDB 怎么可能无论如何开始。
文档参考了 运行 Mongo 没有日记的情况。如果您开启了日记功能,那么 Mongo 将尝试自行修复。
您在 .lock 文件中看到的数字是进程 ID。如果进程不是 运行,那么端口可能未被使用,如果数据文件没有损坏,Mongo 可能会成功重启进程。
我在我的本地机器上使用 MongoDB 运行 的单个实例,并且想编写一个自动修复例程,因为数据库将与我当前工作的用户应用程序捆绑在一起上。
docs 说有一个 mongod.lock
文件表明数据库需要修复:
If the
mongod.lock
file in the data directory specified by dbPath,/data/db
by default, is not a zero-byte file, then mongod will refuse to start, [...]
我的 mogod
进程开始时很顺利,但我的修复例程告诉我数据库需要修复。修复例程只是寻找 mongod.lock
的文件大小,它是 5 个字节并且 cat mongod.lock
给出了以下内容:
9817
所以根据上面的文档引用,我想知道即使 mongod.lock
文件绝对 不是 零字节文件,MongoDB 怎么可能无论如何开始。
文档参考了 运行 Mongo 没有日记的情况。如果您开启了日记功能,那么 Mongo 将尝试自行修复。 您在 .lock 文件中看到的数字是进程 ID。如果进程不是 运行,那么端口可能未被使用,如果数据文件没有损坏,Mongo 可能会成功重启进程。