当前位置: 首页 > article >正文

【赵渝强老师】MongoDB的Journal日志

在这里插入图片描述

数据是MongoDB的核心,MongoDB通过使用Journal日志保证数据的安全。Journal日志用于记录上一个检查点之后发生的数据更新,并将更新的信息顺序写入Journal日志文件中。通过使用Journal日志能够将数据库从系统异常终止事件中还原到一个有效的状态。通过6.5.1.3小节的介绍了解到,MongoDB使用预写日志机制实现数据的持久化。每个Journal日志文件的大小是100M,并存储在由参数–dbpath指定的下的journal子目录中,如下所示:

tree /data/mydata/journal/

# 输出的信息如下:
/data/mydata/journal/
├── WiredTigerLog.0000000001
├── WiredTigerPreplog.0000000001
└── WiredTigerPreplog.0000000002

提示:在默认情况下,MongoDB已经启用了Journal日志记录,如果没有启用可以通过在启动MongoDB服务器时指定参数–journal来启动Journal日志记录。

视频讲解如下

【赵渝强老师】MongoDB的Journal日志

当MongoDB发生数据丢失时,Journal日志文件可以用于数据的恢复。此时,MongoDB会重新执行从上一个检查点之后发生的数据更新操作,将数据还原到Journal日志记录的一致性状态。数据恢复的过程如下:

  1. 从数据文件中查找上一个检查点发生的标识值。
  2. 在Journal日志文件中搜索匹配上一个检查点的标识值的日志记录。
  3. 重新执行匹配到的所有Journal日志记录以恢复数据。

提示:WiredTiger存储引擎会使用内存缓冲区来存储Journal日志信息,该缓冲区默认大小是128KB。当缓冲区中的日志信息超过了设定的128KB,才会将其写入到Journal日志文件中。这就意味着,如果MongoDB发生异常关机时,使用WiredTiger存储引擎将有可能丢失最大128KB的数据更新。


http://www.kler.cn/a/464794.html

相关文章:

  • 如何恢复已删除的 Telegram 消息 [iOSamp;Android]
  • Hyperbolic dynamics
  • cursor 配置 deepseek 后,无法使用 cursor 的 Composer问题
  • 蓝桥杯备赛:C++基础,顺序表和vector(STL)
  • MySQL 【多表查询】
  • 【ShuQiHere】使用 SCP 进行安全文件传输
  • Elasticsearch: 高级搜索
  • 华为OD E卷(100分)42-矩形相交面积
  • webserver的http实现
  • MATLAB中whitespacePattern函数用法
  • maya 删除 Ctrl + Delete vs Delete
  • Python实现Excel行列转换
  • 算法 class 005 (对数器C语言实现)
  • 第一次作业
  • Java项目常见基础问题汇总(6)
  • 基于Golang的网络安全靶场设计与实现
  • 利用深度学习进行系统健康监控:智能运维的新纪元
  • Vue 中el-table-column 进行循环,页面没渲染成功
  • 并联带阻滤波器带通滤波器对幅值和相位的影响(IIR)
  • C++ 设计模式:组合模式(Composite Pattern)
  • QT----------多媒体
  • HarmonyOS Next ArkUI @State @Prop @Link @Provide @Consume笔记
  • EasyExcel简介和读写操作
  • IoC设计模式详解:控制反转的核心思想
  • PyTorch 中 coalesce() 函数详解与应用示例
  • Linux之ARM(MX6U)裸机篇----6.BSP工程管理实验