MongoDB进程如果直接kill掉进程或机器突然断电等都会可能MongoDB造成数据损坏,所以在停止MongoDB服务的时候,不要用kill -9 或 killall -9 直接干掉MongoDB的进程·

要安全停止可以有两种信号:sigint 信号,或者 sigterm信号

如何安全kill停止:

kill -2 `ps -ef | grep mongod| awk 'NR==1 {print $2}'`    #直接查找出mongodb的pid进程号并发送sigint信号kill
 $ kill -2 8888 其中 8888 为mongod进程号,该进程号可以通过 ps -axu |grep mongo 获取; -2 表示向mongod进程发送sigint信号
$ kill -4 8888 其中 8888 为mongod进程号 ,该进程号可以通过 ps -axu |grep mongo 获取; -4 表示向mongod进程发送sigterm信号

mongod进程收到sigint信号或者sigterm信号,会做一些处理:关闭所有打开的连接,将内存数据强制刷新到磁盘,当前的操作执行完毕后在安全停止服务。

推荐停止方法:登录控制台使用mongod命令shutdown的安全停止方式

/usr/local/mongodb/bin/mongo -host 127.0.0.1 -port 30000
> use admin;                     --使用管理员数据库
> db.shutdownServer();           --安全关闭MongoDB

MongoDB启动方式:

/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf

mongodb.conf配置文件参数:

dbpath=/data/mongodb_data
fork=true
rest=false
auth=true
logpath=/data/mongodb_data/mongodb.log
port=30000
pidfilepath=/data/mongodb_data/30000.pid
maxConns=52428

设置开机启动:

echo 'su mongodb -c "/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf"' >> /etc/rc.d/rc.local
带符号 * 的表示必填项