任何一种数据库都有各种各样的日志,MongoDB也不例外。
MongoDB中有4种日志:分别是系统日志(log)、Journal日志、主从日志(oplog)、慢查询日志等。
这些日志记录着MongoDB数据库不同方面的踪迹。
下面分别介绍这几种日志:
1. 系统日志
系统日志在MongoDB数据库中很重要,它记录着MongoDB启动和停止的操作,以及服务器在运行过程中发生的任何异常信息。
配置系统日志的方法比较简单,在启动mongod时指定logpath参数即可
mongod -logpath=/data/log/mongodb/serverlog.log -logappend
系统日志会向logpath指定的文件持续追加。
2. Journal日志
journaling日志功能则是 MongoDB 里面非常重要的一个功能 ,
它保证了数据库服务器在意外断电 、 自然灾害等情况下数据的完整性。
它通过预写式的redo日志为MongoDB增加了额外的可靠性保障。
开启该功能时,MongoDB会在进行写入时建立一条Journal日志,其中包含了此次写入操作具体更改的磁盘地址和字节。
因此一旦服务器突然停机,可在启动时对日记进行重放,从而重新执行那些停机前没能够刷新到磁盘的写入操作。
3. 主从日志oplog
Replica Sets复制集用于在多台服务器之间备份数据。
MongoDB的复制功能是使用操作日志oplog实现的,操作日志包含了主节点的每一次写操作。
oplog是主节点的local数据库中的一个固定集合。备份节点通过查询这个集合就可以知道需要进行复制的操作。
4. 慢查询日志
MongoDB中使用系统分析器(system profiler)来查找耗时过长的操作。
系统分析器记录固定集合system.profile中的操作,
并提供大量有关耗时过长的操作信息,
但相应的mongod的整体性能也会有所下降。
因此我们一般定期打开分析器来获取信息。