【赵渝强老师】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的数据更新。

《MongoDB架构原理与高性能实战》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵渝强老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值