[英]Unexpected shutdown of MongoDB. Unable to restart
我的MongoDB在Windows Server2012 R2上运行。 直到今天,MongoDb意外崩溃,我才能够访问它。 错误日志如下:
2015-11-03T06:41:33.057-0800 I JOURNAL [journal writer] error exception in dur::**journal error appending to file** c:\data\db\journal\j._1 8192 8192 errno:112 There is not enough space on the disk.
2015-11-03T06:41:33.080-0800 F JOURNAL [journal writer] **dbexception in journalWriterThread causing immediate shutdown**: 13517 error appending to file c:\data\db\journal\j._1 8192 8192 errno:112 **There is not enough space on the disk.**
2015-11-03T06:41:33.081-0800 I - [journal writer] Invariant failure false src\mongo\db\storage\mmap_v1\dur_journal_writer.cpp 258
2015-11-03T06:41:37.818-0800 I CONTROL [journal writer] mongod.exe ...\src\mongo\util\stacktrace_win.cpp(175) mongo::printStackTrace+0x43
2015-11-03T06:41:37.818-0800 I CONTROL [journal writer] mongod.exe ...\src\mongo\util\log.cpp(135) mongo::logContext+0x97
2015-11-03T06:41:37.820-0800 I CONTROL [journal writer] mongod.exe ...\src\mongo\util\assert_util.cpp(147) mongo::invariantFailed+0xf0
2015-11-03T06:41:37.820-0800 I CONTROL [journal writer] mongod.exe ...\src\mongo\db\storage\mmap_v1\dur_journal_writer.cpp(258) `mongo::dur::JournalWriter::_journalWriterThread'::`1'::catch$0+0x8c
2015-11-03T06:41:37.820-0800 I CONTROL [journal writer] MSVCR120.dll _unDNameEx+0x268
2015-11-03T06:41:37.820-0800 I CONTROL [journal writer] MSVCR120.dll _BuildCatchObjectHelper+0x345
2015-11-03T06:41:37.820-0800 I CONTROL [journal writer] ntdll.dll RtlCaptureContext+0x3c3
2015-11-03T06:41:37.820-0800 I CONTROL [journal writer] mongod.exe ...\src\mongo\db\storage\mmap_v1\dur_journal_writer.cpp(244) mongo::dur::JournalWriter::_journalWriterThread+0x35a
2015-11-03T06:41:37.820-0800 I CONTROL [journal writer] mongod.exe ...\src\third_party\boost\libs\thread\src\win32\thread.cpp(185) boost::`anonymous namespace'::thread_start_function+0x21
2015-11-03T06:41:37.820-0800 I CONTROL [journal writer] MSVCR120.dll beginthreadex+0x107
2015-11-03T06:41:37.820-0800 I CONTROL [journal writer] MSVCR120.dll endthreadex+0x192
2015-11-03T06:41:37.820-0800 I CONTROL [journal writer] KERNEL32.DLL BaseThreadInitThunk+0x22
2015-11-03T06:41:37.820-0800 I CONTROL [journal writer]
2015-11-03T06:41:37.821-0800 I - [journal writer]
***aborting after invariant() failure
我的数据库有大约50GB的数据,并且在不断增长。 日志显示“ 附加到日志文件时出错。磁盘上没有足够的空间 ”。但是,我的C驱动器上仍有大约20GB的可用空间。
我根本无法连接到mongodb。 我什至没有只读权限。 有什么方法可以连接到数据库并还原数据。
我不确定,但这可能是由于日记文件的预分配。 MongoDB通常尝试预分配上次日志使用的空间的两倍。
因此,如果最后一个日记文件的大小为16GB,则可能需要32GB可用空间来启动MongoDB。
您可以尝试使用–nojournal选项启动mongoDB服务器一次,以检查是否有问题。 但是MongoDB不建议在生产环境中以–nojournal选项开头
您可以找到有关日记文件的更多信息https://docs.mongodb.org/manual/tutorial/manage-journaling/
希望能有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.