【Linux运维入门】MongoDb启动报错:ERROR: child process failed, exited with error number xx

本文主要是介绍【Linux运维入门】MongoDb启动报错:ERROR: child process failed, exited with error number xx,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

解决启动报错问题

今天启动服务器的MongoDb服务时报错

这里写图片描述


出现这种错误的原因:

大部分是因为mongodb 服务的不正常关闭,导致mongod 被锁,想想可能是上次服务器断电维护时,没有手动关闭MongoDb服务造成的。


如何解决这种问题:

①. 删除MongoDb安装目录下的 mongod.lock 文件和日志文件 mongodb.log

②. 使用下面的命令修复MongoDb:

[root@master bin]# ./mongod --repair --dbpath /storage/mongodb/data/ --repairpath /storage/mongodb/tmp/

会执行几分钟的时间,耐心等待执行完成。

③. 修复完成后启动MongoDb

[root@master bin]# ./mongod --dbpath=/storage/mongodb/data/ --port=27017 --logpath=/storage/mongodb/logs/mongodb.log --fork


如何正确关闭MongoDB


非正常关闭MongoDb服务,轻者就像上面,报个错repair一下,再启动即可;严重的可能导致MongoDB瘫痪
出现错误:Error: error doing query: failed

MongoDB使用mmap方式进行数据文件管理,也就是说写操作基本是在内存中进行,写操作会被每隔60秒(syncdelay设定)的flush到磁盘里。如果在这60秒内flush处于停止事情我们进行kill -9那么从上次flush之后的写入数据将会全部丢失。如果在flush操作进行时执行kill -9则会造成文件混乱,可能导致数据全丢了,启动时加了repair也无法恢复。


所以我们要以正确的方式关闭MongoDb,避免这些严重后果

第一种:使用 kill -15,killall mongod 命令关闭MongoDb服务

第二种:登录到MongoDb控制台,use admin,执行db.shutdownServer()

>use admin;
switched to db admin
>db.shutdownServer();
Tue Nov 18 11:03:24.164 DBClientCursor::init call() failed
server should be down...
Tue Nov 18 11:03:24.169 trying reconnect to 127.0.0.1:27017
Tue Nov 18 11:03:24.171 reconnect 127.0.0.1:27017 failed couldn't connect to server 127.0.0.1:27017
> exit
Bye


MongoDb数据可靠性选项(–dur)


在 MongoDB 1.7 版本的最新分支上,就出现了一个新的数据可靠性选项(–dur)的支持。并且在数据文件修复工具上也有了一些改进。如果在启动MongoDB时加上–dur 则MongoDB 会在进行写操作前记一份日志,这和在其他一些数据库中的binlog 类似,在MongoDB 数据文件损坏的情况下,可以使用此日志来进行恢复。这样就会增加数据的安全性。


小结

这篇文章介绍了两点,第一个就是MongoDb启动报错,这个问题在使用MongoDb的过程中经常出现,原因就是未正常关闭导致的。同时也由这一点引出了非正常关闭MongoDb可能导致的严重后果,以及如何正常关闭MongoDb服务。数据无价,对待这些问题一定要谨慎。

这篇关于【Linux运维入门】MongoDb启动报错:ERROR: child process failed, exited with error number xx的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/958132

相关文章

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav

Linux之systemV共享内存方式

《Linux之systemV共享内存方式》:本文主要介绍Linux之systemV共享内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、工作原理二、系统调用接口1、申请共享内存(一)key的获取(二)共享内存的申请2、将共享内存段连接到进程地址空间3、将

MyBatis模糊查询报错:ParserException: not supported.pos 问题解决

《MyBatis模糊查询报错:ParserException:notsupported.pos问题解决》本文主要介绍了MyBatis模糊查询报错:ParserException:notsuppo... 目录问题描述问题根源错误SQL解析逻辑深层原因分析三种解决方案方案一:使用CONCAT函数(推荐)方案二:

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

Spring Boot中JSON数值溢出问题从报错到优雅解决办法

《SpringBoot中JSON数值溢出问题从报错到优雅解决办法》:本文主要介绍SpringBoot中JSON数值溢出问题从报错到优雅的解决办法,通过修改字段类型为Long、添加全局异常处理和... 目录一、问题背景:为什么我的接口突然报错了?二、为什么会发生这个错误?1. Java 数据类型的“容量”限制

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

SpringBoot项目中报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.的问题及解决

《SpringBoot项目中报错ThefieldscreenShotexceedsitsmaximumpermittedsizeof1048576bytes.的问题及解决》这篇文章... 目录项目场景问题描述原因分析解决方案总结项目场景javascript提示:项目相关背景:项目场景:基于Spring

Linux命令之firewalld的用法

《Linux命令之firewalld的用法》:本文主要介绍Linux命令之firewalld的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux命令之firewalld1、程序包2、启动firewalld3、配置文件4、firewalld规则定义的九大

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文