mongodb

【mongoDB】MongoDB的 4种日志

2022-09-13  本文已影响0人  Bogon

任何一种数据库都有各种各样的日志,MongoDB也不例外。

MongoDB中有4种日志:分别是系统日志(log)、Journal日志、主从日志(oplog)、慢查询日志等。

这些日志记录着MongoDB数据库不同方面的踪迹。

  1. 系统日志

系统日志在MongoDB数据库中很重要,它记录着MongoDB启动和停止的操作,以及服务器在运行过程中发生的任何异常信息。

配置系统日志的方法比较简单,在启动mongod时指定logpath参数即可

mongod  -logpath=/path/to/mongod.log   -logappend

系统日志会向logpath指定的文件持续追加。

  1. Journal日志

journaling日志功能则是 MongoDB 里面非常重要的一个功能 ,

它保证了数据库服务器在意外断电 、 自然灾害等情况下数据的完整性。

它通过预写式的redo日志为MongoDB增加了额外的可靠性保障。

开启该功能时,MongoDB会在进行写入时建立一条Journal日志,其中包含了此次写入操作具体更改的磁盘地址和字节。

因此一旦服务器突然停机,可在启动时对日记进行重放,从而重新执行那些停机前没能够刷新到磁盘的写入操作。

WiredTiger使用检查点以提供磁盘上数据的一致视图,并允许MongoDB从最后一个检查点恢复。
但是,如果MongoDB在检查点之间意外退出,则需要日记来恢复上一个检查点之后发生的信息。

从MongoDB 4.0开始,对于使用WiredTiger存储引擎的副本集成员,不能指定—nojournal选项或storage.journal.enabled:false。
使用日志记录的恢复过程:

1.在数据文件中查找最后一个检查点的标识符

2.在日记文件中搜索与最后一个检查点的标识符匹配的记录

3.从上一个检查点开始,将操作应用于日志文件。
  1. 主从日志oplog

Replica Sets复制集用于在多台服务器之间备份数据。

MongoDB的复制功能是使用操作日志oplog实现的,操作日志包含了主节点的每一次写操作。

oplog是主节点的local数据库中的一个固定集合。备份节点通过查询这个集合就可以知道需要进行复制的操作。

  1. 慢查询日志

MongoDB中使用系统分析器(system profiler)来查找耗时过长的操作。

系统分析器记录固定集合system.profile中的操作,

并提供大量有关耗时过长的操作信息,

但相应的mongod的整体性能也会有所下降。

因此我们一般定期打开分析器来获取信息。

参考

mongoDB 参考 > 存储 > 日志记录 > 管理日记
https://mongodb.net.cn/manual/tutorial/manage-journaling

MongoDB中有几种日志?
https://www.cnblogs.com/leoyang63/articles/12023731.html
https://www.cnblogs.com/duanxz/p/4375252.html

MongoDB日志记录
https://mongoing.com/archives/76040
https://mongodb.net.cn/manual/core/journaling

MongoDB 使用规范及最佳实践
https://mongoing.com/archives/82633

一文读懂如何查询 MongoDB 文档
https://mongoing.com/archives/82302

上一篇 下一篇

猜你喜欢

热点阅读