加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

mongodb日志包括哪几点,你了解几许?

发布时间:2022-04-22 10:41:59 所属栏目:系统 来源:互联网
导读:这篇文章主要给大家介绍MongoDB的日志,关于MongoDB日志,有四种,分别是系统日志、Journal日志、oplog主从日志、慢查询日志。那么它们的用处都是什么呢? 系统日志 系统日志在MongoDB数据库中很重要,它记录着MongoDB启动和停止的操作,以及服务器在运行过
       这篇文章主要给大家介绍MongoDB的日志,关于MongoDB日志,有四种,分别是系统日志、Journal日志、oplog主从日志、慢查询日志。那么它们的用处都是什么呢?
 
       系统日志
       系统日志在MongoDB数据库中很重要,它记录着MongoDB启动和停止的操作,以及服务器在运行过程中发生的任何异常信息。配置系统日志的方法比较简单,在启动mongod时指定logpath参数即可
mongod -logpath=/data/log/mongodb/serverlog.log -logappend
       系统日志会向logpath指定的文件持续追加。
       Journal日志
       journaling(日记) 日志功能则是 MongoDB 里面非常重要的一个功能 , 它保证了数据库服务器在意外断电 、 自然灾害等情况下数据的完整性。它通过预写式的redo日志为MongoDB增加了额外的可靠性保障。开启该功能时,MongoDB会在进行写入时建立一条Journal日志,其中包含了此次写入操作具体更改的磁盘地址和字节。因此一旦服务器突然停机,可在启动时对日记进行重放,从而重新执行那些停机前没能够刷新到磁盘的写入操作。
       MongoDB配置WiredTiger引擎使用内存缓冲区来保存journal记录,WiredTiger根据以下间隔或条件将缓冲的日志记录同步到磁盘
 
上面说的都是针对WiredTiger引擎,对于MMAPv1引擎来说有一点不一样,首先它是每100ms进行刷盘,其次它是通过private view写入journal文件,通过shared view写入数据文件。这里就不过多讲解了,因为MongoDB 4.0已经不推荐使用这个存储引擎了。
从MongoDB 3.2版本开始WiredTiger是MongoDB推荐的默认存储引擎
 
       需要注意的是如果客户端的写入速度超过了日记的刷新速度,mongod则会限制写入操作,直到日记完成磁盘的写入。这是mongod会限制写入的唯一情况。
       固定集合(Capped Collection)
       在讲下面两种日志之前先来认识下capped collection。
       MongoDB中的普通集合是动态创建的,而且可以自动增长以容纳更多的数据。MongoDB中还有另一种不同类型的集合,叫做固定集合。固定集合需要事先创建好,而且它的大小是固定的。固定集合的行为类型与循环队列一样。如果没有空间了,最老的文档会被删除以释放空间,新插入的文档会占据这块空间。
       创建固定集合:
db.createCollection("collectionName",{"capped":true, "size":100000, "max":100})
       创建了一个大小为100000字节的固定大小集合,文档数量为100.不管先到达哪个限制,之后插入的新文档就会把最老的文档挤出集合:固定集合的文档数量不能超过文档数量限制,也不能超过大小限制。
       固定集合创建之后就不能改变,无法将固定集合转换为非固定集合,但是可以将常规集合转换为固定集合。

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读