MongoDB之rotate log

MongoDB的默认日志增长可能导致磁盘占用和性能影响。通过admin库的logRotate命令或SIGUSR1信号可触发日志切换。rename方式会重命名并创建新日志,而reopen配合logappend和外部工具如logrotate实现按大小轮转。在生产环境中,常用定时任务(如crontab)结合脚本进行每日日志切换。
摘要由CSDN通过智能技术生成

当mongodb实例启动时指定logpath或systemLog.path参数,mongod和mongos实例将向日志文件中持续的记录数据库的活动日志。

而MongoDB默认情况下不会自动的切换日志的,这将会导致服务日志日渐增大,在业务繁忙的场景,日志的增长量会非常大。持续增长的日志文件,不仅占用系统磁盘,并且还会拖慢服务器的运行速度。所以我们需要能对服务日志进行日志切换。

在MongoDB中,切换日志的触发条件有两种:

1、admin库下执行logRotate命令。

use admin    
db.runCommand({logRotate:1})

2、mongod或者mongos进程从操作系统接收SIGUSR1信号。

这种方法对linux或类UNiX系统有效。对于基于Linux和unix的系统,可以使用SIGUSR1信号来切换单个进程的日志。

假设mongod的进程号为7393,如下命令将会为该实例轮转日志。

kill -SIGUSR1 7393

执行上述rotate log的两种方法,会触发mongod切换日志,但是如何进行切换,取决于systemLog.logRotate参数或--logRotate选项设置。

rename

当systemLog.logRotate或--logRotate设置为rename时,mongod将会归档当前日志文件,并启动一个新的日志文件,形式是以ISODate格式在文件名中附加UTC时间戳,重命名当前日志文件,并打开一个新的日志文件,关闭旧的日志,并将新的日志条目发送到新的日志文件。

(base) ackkky@ackkkydeMacBook-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值