MongoDB必须注意信息
不要使用Kill -9
在关闭进程时, 可以使用pkill killall 但是不能使用kill -9 一旦使用该命令, 可能导致mongo再也起不来了,造成锁文件.
如果不小心使用了Kill -9
到Mongo的data目录下放置数据库文件的地方, 也有可能在其他路径. 查找mongod.lock的锁文件. 删除即可.
错误问题收集
今天在Ubuntu中启动mongo
/usr/bin/mongod --dbpath=data --logpath=log/mongo.log --fork
发生错误:
ERROR: child process failed, exited with error number 100
虽然子进程启动失败了, 但是日志正常输出了.
通过查看./log/mongo.log的错误内容
发现一行ERROR:
mongo ERROR: Insufficient free space for journal files
解决错误:
在启动命令加上--smallfiles
/usr/bin/mongod --dbpath=data --logpath=log/mongo.log --smallfiles --fork
即使用,使用较小的默认文件大小.
或修改配置文件
smallfiles = true
原因:
因为journal至少以2G的数量进行增长,当磁盘空间不足时,会报错Insufficient free space for journal files.
比如非法关闭的时候第二次启动mongo.lock文件报lock is not empty错.原因是MongoDB的文件锁防重复启动机制
主要通过删除锁文件, 使用--repair 启动参数修复.
--repair参数官方解释
通过丢弃无效或损坏的数据重新构建数据库和索引,这些数据可能由于意外的系统重新启动或崩溃而出现。
案例:
rm /安装目录/mongodb/mongo.lock && ./mongod --repair