MongoDB日志太大怎么办

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB日志太大怎么办相关的知识,希望对你有一定的参考价值。

参考技术A MongoDB的日志增长的很快,/var所在的空间马上就占满了,即便换到另一个磁盘分区保存日志,日志还是增长的很快,磁盘眼看要告磬。
有一个好办法,就是使用旋转日志。
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的日志文件挪走或者删除了。
也可以自己先个定时脚本,定期发送命令给mongod服务。

access.log太大怎么办

参考技术A 在squid的配置文件中可以禁止写日志,例如cache_access_log/squid/logs/access.log改为cache_access_lognone则squid不会再生成access日志。如果你没在squid.conf里禁止,squid会写大量的日志文件。你必须周期性的滚动日志文件,以阻止它们变得太大。squid将大量的重要信息写入日志,假如写不进去了,squid会发生错误并退出。可以使用如下命令%squid-krotate来滚动日志记录。例如,如下任务接口在每天的早上4点滚动日志:04***/usr/local/squid/sbin/squid-krotate该命令做两件事。首先,它关闭当前打开的日志文件。然后,通过在文件名后加数字扩展名,它重命名cache.log,store.log,和access.log。例如,cache.log变成cache.log.0,cache.log.0变成cache.log.1,如此继续。其中,crontab是Linux下的定时进程,它会自动按照写入的时间定时执行程序。这个网上有很多资料可以查到它的用法。

以上是关于MongoDB日志太大怎么办的主要内容,如果未能解决你的问题,请参考以下文章

squid日志文件太大,怎样处理

access.log太大怎么办

.sql文件太大无法打开怎么办

数据库的日志文件太大了怎么处理

Log日志文件过大怎么办

SQL备份文件太大 ,该怎么删除日志文件让他缩小,请大虾告知