mongodb日志文件过大

【1】登录重新生成日志解决(在线无需重启)

MongoDB日志增长的非常快,/var所在的空间立即就占满了,即便换到还有一个磁盘分区保存日志。日志还是增长的非常快。磁盘眼看要告磬。

MongoDB在使用一段时候后,发现服务器的存储占到了90%左右,排查内存使用情况后,发现是mongodb的日志文件占用太大,达到了40G之多

  

原因是:MongoDB的日志文件在设置 logappend=true 的情况下,会不断向同一日志文件追加的,时间长了,自然变得非常大。

  

解决:

use admin //切换到admin数据库
db.runCommand({logRotate:1})

这样会使mongo关闭当前日志文件,重启一个新的日志文件,不需要停止mongodb服务。

 

【2】无需登录的办法(实操可用,在线无需重启)

有一个好办法,就是使用旋转日志。

  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
root@jstc:/etc/init.d# kill -SIGUSR1 723
root@jstc:/etc/init.d# cd /home/mongodb/log/
root@jstc:/home/mongodb/log# ls
mongodb.log  mongodb.log.2014-05-18T12-23-51
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

然后就可以安心删除20G的带日期的日志文件了。

 

posted @ 2023-05-25 10:04  郭大侠1  阅读(527)  评论(0编辑  收藏  举报