MongoDB的日志增长的很快,/var
所在的空间马上就占满了,即便换到另一个磁盘分区保存日志,日志还是增长的很快,磁盘眼看要告磬。
这时候可以使用旋转日志。
方法一:SGIUSR1
MongoDB的旋转日志有点怪,Linux下mongd服务接受一个kill -SGIUSR1
命令后就立刻将当前日志文件重命名为带日期的文件,然后创建新的日志文件。
不像一般的旋转日志,可以配置旋转策略。不过没关系,经过测试,发送该命令时不会影响到MongoDB的服务。
实例
下面是一个例子,先查找进程id, 然后发送命令。
root@jstc:/etc/init.d# ps -def | grep mongod
mongodb 723 1 48 May04 ? 6-22:23:53 /usr/bin/mongod --config /etc/mongodb.conf
root 22035 22012 0 20:22 pts/2 00:00:00 grep --color=auto mongod
这里可以发现进程的id为723。
root@jstc:/etc/init.d# kill -SIGUSR1 723
root@jstc:/etc/init.d# cd /home/mongodb/log/
root@jstc:/home/mongodb/log# ls -alh
total 20G
drwxrwxrwx 2 root root 4.0K May 18 20:23 .
drwxrwxrwx 4 root root 4.0K Apr 20 21:25 ..
-rw-r--r-- 1 mongodb nogroup 34K May 18 20:24 mongodb.log
-rwxrwxrwx 1 mongodb nogroup 20G May 18 20:23 mongodb.log.2014-05-18T12-23-51
方法二:mongo logRotate 命令方法
不需要重启MongoDB服务的方法重新开启一个新日志文件。
>use admin
>db.runCommand( { logRotate : 1 } )