iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MongoDB日志是如何工作的
  • 513
分享到

MongoDB日志是如何工作的

2024-04-02 19:04:59 513人浏览 薄情痞子
摘要

mongoDB日志是如何工作的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Good idea, Patrick!那么, Mo

mongoDB日志是如何工作的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Good idea, Patrick!

那么, MongoDB日志是如何工作的呢?

我们用下图表示硬盘上的数据文件和日志文件:

MongoDB日志是如何工作的

当你使用mongod启动MongoDB的时候,数据文件将被加载到共享视图。基本上,操作系统说:“OK,你的数据占用2,000bytes的磁盘空间,我将加载他们到内存地址为1,000,000-1,002,000.所以,如果你读内存地址为1,000,042,你就可以获取这个文件的第42个byte的数据。”(其实,除非你真的存取这些内存地址,否则这些数据没必要加载)

MongoDB日志是如何工作的

这段内存仍然被这个数据文件占有:如果你在这段内存中做修改,操作系统将刷新这个文件,修改数据。这就是mongod不开启日志的工作方式:进程每60秒通知操作系统对这段内存做flush操作。

然而,启用日志,mongod会建立另一个内存映射用作私有视图。这就是为什么需要分配两倍于mongod所占内存的内存量给日志操作的原因。

MongoDB日志是如何工作的

需要注意的是私有视图不直接关联到数据文件,所用操作系统不能通过刷新私有视图来写数据到磁盘。

现在,当你有一个写操作,mongod进程就把这个操作写到私有视图。

MongoDB日志是如何工作的

mongod进程会把这个操作写到日志文件,并描述哪个文件的哪个字节有修改。

MongoDB日志是如何工作的

日志记录每一个修改操作。

MongoDB日志是如何工作的

这个时候,写操作是安全的。如果mongod进程崩溃,日志可以重现此次修改,即使还没有对数据文件做更新操作。

MongoDB日志是如何工作的

然后,mongod进程重新将共享视图映射到私有视图,这样可以防止私有视图过于“dirty”(相对于映射过来的共享视图有太多的修改)。

MongoDB日志是如何工作的

最后,经过一系列漫长的验证,共享视图数据将会被刷新到磁盘。默认情况下,mongod每60秒对OS请求一次刷新操作。

And that’s how journaling works. Thanks to Richard, who gave the best explanation of this I’ve heard (Richard is going to be teaching an online course on MongoDB this fall, if you’re interested in more wisdom from the source).

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网数据库频道,感谢您对编程网的支持。

您可能感兴趣的文档:

--结束END--

本文标题: MongoDB日志是如何工作的

本文链接: https://www.lsjlt.com/news/61260.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MongoDB日志是如何工作的
    MongoDB日志是如何工作的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Good idea, Patrick!那么, Mo...
    99+
    2022-10-18
  • 关于mongodb的journal日志工作方式分析
    1、journal目录结构...
    99+
    2022-10-18
  • Java中的日志系统是如何工作的?
    在软件开发中,日志系统是一个非常重要的组成部分。它记录了应用程序运行期间的信息,包括错误、警告和其他有用的信息。Java中的日志系统是一个非常强大的工具,可以帮助开发人员快速定位和解决问题。在本文中,我们将介绍Java中的日志系统是如何工...
    99+
    2023-06-04
    日志 load 关键字
  • mongodb中如何使用mtools日志分析工具
    这篇文章将为大家详细讲解有关mongodb中如何使用mtools日志分析工具,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。安装过程<pip 安装>...
    99+
    2022-10-18
  • MongoDB如何查oplog.rs集合里的操作日志
    首先需要介绍一下mongodb local库的作用 local库是MongoDB的系统库,记录着时间戳和索引和复制集等信息 test:PRIMARY> use local switched to ...
    99+
    2022-10-18
  • Java中的日志记录是如何工作的?如何提高日志记录的效率?
    在Java应用程序中,日志记录是非常重要的,它能够帮助开发人员在应用程序运行期间获取关键信息,诊断应用程序的问题,并且帮助开发人员进行调试和性能优化。本文将介绍Java中的日志记录是如何工作的,并且探讨一些提高日志记录效率的技巧。 日志记...
    99+
    2023-09-13
    日志 数据类型 打包
  • mongodb如何清理日志文件
    mongodb清理日志文件的方法:1、使用mongodb数据库命令“db.runCommand({logRotate:1})”登录到mongod和mongos实例中;2、然后使用“cat /dev/null > [文件名]”系统命令清...
    99+
    2022-10-22
  • Linux日志文件系统是怎样工作的
    本篇内容介绍了“Linux日志文件系统是怎样工作的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!文件系统要解决的一个关键问题是怎样防止掉电或...
    99+
    2023-06-15
  • 重做日志及归档日志的工作原理解析
    开门见山,先来看张图(PS:这张图是我从网上找的):工作原理:首先lgwr进程将redo log buffer中的重做数据写入到redo log中,此时的redo log分组,每当一个redo log gr...
    99+
    2022-10-18
  • mongodb日志扩容的方法是什么
    MongoDB的日志扩容可以通过以下步骤实现:1. 检查当前的日志大小和使用情况,可以使用命令`db.runCommand({log...
    99+
    2023-09-06
    mongodb
  • 详解MongoDB Go Driver如何记录日志
    目录引言背景ClientOptions.Monitor字段引言 如果你有这些问题: golang 官方的 mongo driver 怎么执行了没有日志输出啊golang mongo driver 如何记录sql,如何打印...
    99+
    2023-08-21
    MongoDB Go Driver记录日志 MongoDB Go Driver
  • 如何解读MySQL的InnoDB引擎日志工作原理
    这篇文章主要介绍了如何解读MySQL的InnoDB引擎日志工作原理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。当你使用UPDATE, IN...
    99+
    2022-10-18
  • 如何利用MongoDB存储Docker日志详解
    前言 日志是系统很重要的一个组成部分,通过日志可以及时发现系统中存在的问题,也可以为修复问题提供线索。Docker提供了多种插件方式管理日志,本文就对使用MongoDB存储Docker日志的过程做个记录。 ...
    99+
    2022-10-18
  • 日志同步:Python和Bash是否可以一起工作?
    日志同步是现代软件开发中非常重要的一个方面。在一个分布式系统中,不同的组件可能会运行在不同的机器上,而它们的日志信息需要被集中起来以便进行分析和监控。Python和Bash都是常用的脚本语言,它们都有着自己的优势和劣势。那么,Python和...
    99+
    2023-07-27
    bash 同步 日志
  • 网站运维工具如何使用iis日志分析工具分析iis日志
    本篇文章给大家分享的是有关网站运维工具如何使用iis日志分析工具分析iis日志,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。对于一个需要长期维护的网站来说,如何让网站长久稳定运...
    99+
    2023-06-14
  • Android中如何使用日志工具
    这篇文章将为大家详细讲解有关Android中如何使用日志工具,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。使用Android的日志工具Log方法:  Android中的日志工具类为Log,这...
    99+
    2023-05-30
    android
  • PHP如何判断是国内的节假日/工作日
    当你在开发一个需要考虑中国节假日和工作日的 PHP 应用程序时,你可能会想知道如何判断一个日期是节假日还是工作日。这个问题看起来很简单,但是实际上要想得到准确的结果是有一定难度的。本文将介绍如何使用 PHP 判断一个日期是否是中国的节假日或...
    99+
    2023-09-08
    php 开发语言 Powered by 金山文档
  • numpy和ASP是如何协同工作的,以便实现重定向和日志记录?
    随着人工智能的发展,数据分析和处理也变得越来越重要。在这个领域中,numpy和ASP是两个非常重要的工具。他们的协同工作可以实现重定向和日志记录,这对于数据分析和处理非常有帮助。 numpy是一种用于数学计算的Python库。它提供了一个强...
    99+
    2023-11-12
    numpy 重定向 日志
  • PHP和HTTP如何协同工作,并记录同步请求的日志?
    在Web开发中,PHP和HTTP是不可分割的。PHP是一种流行的服务器端编程语言,而HTTP是Web应用程序的基本协议。PHP和HTTP的协同工作非常重要,因为它们一起构成了一个完整的Web应用程序。在本文中,我们将学习如何使用PHP和H...
    99+
    2023-09-03
    同步 http 日志
  • php错误日志的作用是什么
    这篇文章主要介绍了php错误日志的作用是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在php中,错误日志用于记录程序运行时的出错信息,可以帮助开发人员或者管理人员查看系...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作