MongoDB日志切换(Rotate Log Files)指南

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介:

MongoDB日志切换(Rotate Log Files)指南

 

MongoDB默认情况下不会自动的切换轮转日志的,这将会导致日志日渐增大,在繁忙的业务下,日志增长量非常大的。如此之大的日志文件,查看某天的日志也不太方便。因此,需要对mongodb 日志文件进行切换。

 

日志切换行为

--logRotate <string>

默认值:rename

3.0.0版本新特性:指定logRotate行为。

指定为rename或者reopen。

rename 重命名日志文件。

reopen 关闭并重新打开日志文件遵循典型的Linux/Unix日志切换行为。当使用Linux/Unix logrotate工具时,使用reopen避免日志丢失。

如果指定reopen时,也必须同时使用—logappend

 

默认日志切换行为

默认情况下,MongoDB使用--logRotate rename行为。使用rename,mongod或mongos通过在文件名称末尾添加UTC(GMT)时间戳的方式重命名当前的日志文件,然后打开新的日志文件,关闭之前旧的日志文件,并发送所有新的日志信息到新的日志文件中。

 

1. 启动mongod实例。   

1
mongod – v  –logpath  /var/log/mongodb/server1 .log


你也可以显式指定--logRotate rename

 

2. 列出日志文件。   
在另一个终端中,列出匹配文件:    

1
ls  /var/log/mongodb/server1 .log*


结果将包含一个日志文件,server1.log。

 

3. 切换日志文件。   
在mongo shell下,从admin数据库运行logRotate命令切换日志文件:    

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

 

4. 查看新的日志文件。   
列出新的日志文件,来查看新创建的日志:    

1
ls  /var/log/mongodb/server1 .log*


应该列出两个日志文件:server1.log,它是当日志文件重新打开时mongod或mongos创建的;server1.log.<timestamp>,重命名的原始日志文件。    
切换日志文件不会修改旧的切换日志文件。当你切换日志时,你将通过附加时间戳来重命名server1.log文件,并且一个新的空server1.log文件将会收到所有新的日志输入。

 

使用--logRotate reopen切换日志

3.0.0版本的新特性。

使用--logRotate reopen切换日志,关闭并打开日志文件遵循典型的Linux/Unix日志切换行为。

 

1. 启动mongod实例,指定--logRotate参数值为reopen。   

1
mongod – v  –logpath  /var/log/mongodb/server1 .log –logRotate reopen –logappend


你必须使用带有--logRoate reopen参数的--logappend选项。

 

2. 列出日志文件。   
在另一个终端,列出匹配的文件:    

1
ls  /var/log/mongodb/server1 .log*


结果包含一个日志文件,server1.log。

 

3. 切换日志文件。   
在mongo shell中,从admin数据库执行logRotate命令执行日志文件切换:    

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

 
你应该使用一个外部进程重命名日志文件,遵循典型的Linux/Unix日志切换行为。

 

通过syslog切换日志

2.2版本的新特性。

通过syslog切换日志,mongod发送日志数据到syslog而不是写入到文件。

 

1. 启动mongod实例使用--syslog选项   

1
mongod –syslog


不要包含--logpath。因为--syslog告诉mongod发送日志数据到syslog,所以指定--logpath将导致错误。    
为了指定用于记录信息到syslog的设备级别,使用--syslogFacility选项或者systemLog.syslogFacility配置设置。

 

2. 使用系统默认的日志切换机制存储并切换日志输出。

 

使用SIGUSR1强制日志切换

对于Linux/Unix系统,你可以对于一个单一进程使用SIGUSR1信号来切换日志,如下:

1
Kill –SIGUSR1 <mongod process  id >

 

参考:     
Rotate Log Files: http://docs.mongodb.org/manual/tutorial/rotate-log-files/    
logRotate: http://docs.mongodb.org/manual/reference/command/logRotate/    
Rotate Agent Log Files: https://docs.mms.mongodb.com/tutorial/rotate-agent-log-files/



















本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1620674 ,如需转载请自行联系原作者


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
16天前
|
Java
使用Java代码打印log日志
使用Java代码打印log日志
72 1
|
17天前
|
Linux Shell
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
71 1
|
21天前
|
SQL 关系型数据库 MySQL
MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复
对于MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复。二进制日志是MySQL中记录所有数据库更改操作的日志文件。要进行时间点恢复,您需要执行以下步骤: 1. 确保MySQL配置文件中启用了二进制日志功能。在配置文件(通常是my.cnf或my.ini)中找到以下行,并确保没有被注释掉: Copy code log_bin = /path/to/binary/log/file 2. 在需要进行恢复的时间点之前创建一个数据库备份。这将作为恢复的基准。 3. 找到您要恢复到的时间点的二进制日志文件和位置。可以通过执行以下命令来查看当前的二进制日志文件和位
|
27天前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
48 0
|
23天前
|
XML 运维 监控
【深入探究 C++ 日志库清理策略】glog、log4cplus 和 spdlog 的日志文件管理策略
【深入探究 C++ 日志库清理策略】glog、log4cplus 和 spdlog 的日志文件管理策略
62 0
|
28天前
|
存储 数据库
ALTER MATERIALIZED VIEW LOG :语句来更改现有物化视图日志的存储特征或类型。
`ALTER MATERIALIZED VIEW LOG` 语句用于修改已有的物化视图日志的存储属性或类型。配合示例中的动画图像(由于格式限制无法显示),该语句帮助优化数据库的性能和管理。
44 0
|
3月前
|
Java Spring
【Spring Boot】logback和log4j日志异常处理
【1月更文挑战第25天】【Spring Boot】logback和log4j日志异常处理
|
29天前
|
安全 编译器 API
C++系统日志库精选:深入剖析glog与log4cplus,轻松搭建高效日志系统
C++系统日志库精选:深入剖析glog与log4cplus,轻松搭建高效日志系统
86 0
|
1月前
|
存储
Hudi Log日志文件格式分析(一)
Hudi Log日志文件格式分析(一)
25 1
|
1月前
|
缓存 索引
Hudi Log日志文件写入分析(二)
Hudi Log日志文件写入分析(二)
20 1

热门文章

最新文章