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

时间:2014-07-16 08:15:16

标签: 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. 是否需要记录我的数据库?

  4. 请帮助我

    由于

2 个答案:

答案 0 :(得分:3)

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

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

其他情况如果db意外存在,您将无法知道原因

docs开始明确指出

  

如果没有日志,如果mongod意外退出,您必须假设您的数据处于不一致状态,并且您必须运行修复或,   优选地,从副本集的干净成员重新同步。同   启用日记功能,如果mongod意外停止,程序可以   恢复写入日志的所有内容,数据保留在   一致的状态。默认情况下,丢失写入的最大程度,   即那些没有在期刊上发表的,是那些在过去100年制作的   毫秒。有关的更多信息,请参见commitIntervalMs   默认值。

答案 1 :(得分:0)

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

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

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

没有日记

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

使用日记

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

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

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