繁体   English   中英

期刊和非期刊Mongodb数据库有什么区别

[英]What is the difference between journal and non journal Mongodb database

我刚刚安装了mongodb 32位版本,这是当我启动mongodb时在我的终端中打印的消息

Server has startup warnings: 
Wed Jul 16 09:53:43.759 [initandlisten] 
Wed Jul 16 09:53:43.759 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary. 
Wed Jul 16 09:53:43.759 [initandlisten] **       32 bit builds are limited to less than 2GB of data (or less with --journal).
Wed Jul 16 09:53:43.759 [initandlisten] **       Note that journaling defaults to off for 32 bit and is currently off.
Wed Jul 16 09:53:43.759 [initandlisten] **       See http://dochub.mongodb.org/core/32bit
Wed Jul 16 09:53:43.759 [initandlisten] 
>

从这里我注意到或理解了两件事,我的mongodb数据库仅限于存储小于2gb的数据库

它是非日记的,

日记化使空间进一步减少

我在想

  1. 什么是期刊/非期刊mongodb数据库

  2. 期刊数据库优于非期刊数据库的优势是什么,反之亦然?

  3. 是否有必要记录我的数据库?

请帮帮我

谢谢

在MongoDB中,它使用预写日志记录来检查是否执行了write操作,或者编写了一个名为日志记录的crash report

如果no journaling说你在数百万的交易上工作。 如果某些交易可能崩溃或未完全终止。 你无法了解这个问题。 那么怎样才能找到问题发生的位置并将其恢复

其他情况就像是如果db意外存在你将无法知道原因

文档中可以清楚地看到

如果没有日志,如果mongod意外退出,则必须假设您的数据处于不一致状态,并且您必须运行修复,或者最好从副本集的干净成员运行重新同步。 启用日记功能后,如果mongod意外停止,程序可以恢复写入日志的所有内容,并且数据保持一致状态。 默认情况下,丢失写入的最大程度(即未对日志进行的写入)是在最后100毫秒内完成的。 有关默认值的更多信息,请参见commitIntervalMs。

在数据文件中写入数据之前,日记是一种备份的概念。

我们这样做的原因是耐用性。 在生产环境中强烈建议使用日记功能。

使用日志的好处是当出现脏关机或崩溃时,您可能会丢失数据输入操作,一般情况下您可能会丢失数据。

没有日记

发生写入操作时,您的数据将每隔60秒从内存映射共享视图写入数据驱动器。

随着日记

您的写入操作首先每100-200毫秒写入日志文件。 在日志提交之后,它被复制到共享视图,并在60秒后从那里将数据刷新到您的实际数据驱动器。

我们得到什么? 那么这里发生的是

  1. 我们在写入实际数据文件之前备份了您的数据。
  2. 我们将时间从60秒减少到200毫秒。 因此,每隔100 - 200 ms,您的数据操作将记录在日志中,因此在关闭的情况下,我们可以重播这些操作并避免消息丢失。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM