问题标签 [wiredtiger]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
843 浏览

node.js - WiredTiger、GridFS 和 Mongodb 上传文件和最大文件大小

关于WiredTiger存储和MongoDB的三个问题。

  1. 我需要在可能超过 16MB 大小的数据库中存储(二进制)文件,现在我在 WiredTiger 网站上读到最大文件大小为 512MB,但在 Mongodb插入方法中它说所有文档的最大大小应该是 16MB ,那么我可以在使用 WiredTiger 时存储大于 16MB 的文件吗?

  2. 我需要使用完整的文件而不是其中的一部分(如视频的流式传输部分),是否可以使用 GridFS?

  3. 如何在数据库中插入和查找文件?我找不到有关如何使用 WiredTiger 进行操作的指南...

    我必须从 mongoshell 或 mongofiles 做吗?有没有办法用 node.js 以编程方式做到这一点?

0 投票
1 回答
1284 浏览

mongodb - MongoDB 在 Windows 上随机崩溃,出现 WiredTiger 异常

我在 Windows Server 2008 R2 上安装了 MongoDB 3.2

随机 MongoDB 服务因以下日志而崩溃。我该如何解决这个问题?

这是日志

2016-12-13T10:08:33.497-0800 E STORAGE [thread2] WiredTiger (-28968) [1481652513:490570][2036:2006004608],文件:WiredTiger.wt,WT_SESSION.checkpoint:D:\MongoDB\data\db \WiredTiger.turtle.set 为 D:\MongoDB\data\db\WiredTiger.turtle: file-rename: rename: 该进程无法访问该文件,因为它正被另一个进程使用。

2016-12-13T10:08:33.497-0800 E STORAGE [thread2] WiredTiger (-28968) [1481652513:497570][2036:2006004608],检查点服务器:检查点服务器错误:进程无法访问该文件,因为它正在被另一个进程使用。

2016-12-13T10:08:33.498-0800 E STORAGE [thread2] WiredTiger (-31804) [1481652513:498571][2036:2006004608],检查点服务器:进程必须退出并重新启动:WT_PANIC:WiredTiger 库恐慌 2016- 12-13T10:08:33.498-0800 I - [thread2] 致命断言 28558 2016-12-13T10:08:33.498-0800 I - [thread2]

***在 fassert() 失败后中止

2016-12-13T10:08:33.562-0800 I - [WTJournalFlusher] 致命断言 28559 2016-12-13T10:08:33.562-0800 I -
[WTJournalFlusher]

***在 fassert() 失败后中止

0 投票
1 回答
1005 浏览

mongodb - MongoDB 3.2 WiredTiger 的性能优于 MongoDB 3.4 WiredTiger

在我的本地,我用 mongo 3.2 和 3,4 和wiredTiger运行了iibench-mongodb基准测试。在我的测试中,mongo 3.2wiredTiger 的插入和查询性能似乎都比 mongo 3.4wiredTiger 好。这是意料之中的吗?为什么最新的 mongo 性能比以前的版本差?

环境 -

  • Mac OS X - 10.11.6
  • 处理器 - 2 GHz 英特尔酷睿 i7
  • 内存 - 8GB
  • Mongo 开始为sudo ./mongod --storageEngine wiredTiger --dbpath /tmp/data/mongodb/wired2/
  • /tmp/data/mongodb/wired2/每次测试运行之前删除 mongo 并再次以空启动/tmp/data/mongodb/wired2/
  • iibench-mongodb 的测试参数可以在github中找到。
  • Mongo 版本用于测试 3.4.1 和 3.2.8
  • Java 1.8.0_77

下面是我的测试结果。它代表 3 次运行的平均值:-

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
1008 浏览

mongodb - 如何在没有 mongodump/mongorestore 的情况下以最短的停机时间从 MMAPv1 迁移到 WiredTiger

大多数指南建议使用 mongodump/mongorestore,但对于大型产品数据库,停机时间可能会很长

0 投票
1 回答
490 浏览

mongodb - 如果在 WiredTiger 存储引擎中禁用日志记录,数据何时写入磁盘

我无法从文档中得到明确的答案,即当日志功能被禁用时,数据实际上被保存到 WiredTiger 存储引擎中的磁盘时。

MongoDB 设置检查点在 WiredTiger 中以 60 秒的间隔或在写入 2 GB 的日志数据时发生在用户数据上,以先发生者为准。

自 3.2 起 50 毫秒

它还说

WiredTiger 使用检查点来提供磁盘上数据的一致视图,并允许 MongoDB 从上一个检查点恢复。

但是,当我在禁用日记功能的情况下启动服务器时,尚不清楚数据永久写入磁盘的时间间隔。

0 投票
0 回答
159 浏览

mongodb - WiredTiger 引擎内部缓存的正常使用百分比是多少?

我使用 mongoDB WiredTiger v3.4.1。mongostat 中缓存使用的当前统计为 80%(已使用字段)。这是正常的还是这个值应该更低?

你能告诉我在哪里可以获得所有统计数据的正常值吗?

0 投票
1 回答
2206 浏览

mongodb - 将 Sharded Cluster 从 3.2 升级到 3.4 时读取多数错误的关注级别

我已将具有两个副本集的 MongodDB 分片集群从 3.2 升级到 3.4。当前的存储引擎是 MMAPv1。在成功将所有辅助服务器、主服务器、配置服务器和 mongos 升级到 3.4 后,当我使用以下命令运行配置服务器时。

sudo mongod --configsvr

我不断收到以下错误。

SHARDING [shard registry reload] Periodic reload of shard registry failed :: 由于 :: 115 由于当前存储引擎不支持多数 readConcerns 无法从配置服务器获取更新的分片列表;将在 30 秒后重试

而且我无法将 mongos 与配置服务器连接。当我尝试使用以下命令连接它时

sudo mongos --configdb [ip-of-my-config-server]:27019

它给了我以下错误。

BadValue:configdb 仅支持副本集连接字符串

我想由于配置服务器上的大多数 readConcerns 错误,mongos 无法连接到配置服务器。

MongoDB 手册说“从副本集配置服务器读取时,MongoDB 3.4 使用“多数”的读取关注级别。

并且要使用“多数”的读取关注级别,必须使用 WiredTiger 作为存储引擎。

所以看来我必须切换到 WiredTiger 存储引擎才能使其工作。但是当我打算切换到一个辅助副本集成员的WiredTiger存储引擎时,根据手册

“此过程完全删除辅助副本集成员的数据”

所以我被卡在了一半。情况是

  1. 配置服务器给出关于多数 readConcerns 的错误。
  2. 我必须切换到 WiredTiger 才能摆脱它。
  3. 切换到 WiredTiger 将从次要成员中删除数据。
  4. 由于配置服务器错误,在切换到 WiredTiger 过程期间,数据不会被复制回辅助成员,最终我将丢失所有数据(如果我错了,请更正)。

问题是:

  1. 从副本集配置服务器读取时,我可以让 MongoDB 3.4 使用“本地”的读取关注级别吗?
  2. 如何在我的场景中切换到 WiredTiger 引擎而不丢失数据?
0 投票
2 回答
5428 浏览

linux - 从损坏的 MongoDB 安装中恢复 WiredTiger 集合时出错

我们已经实现了 MongoDB 主从复制和数据库被删除。

extundelete我们使用命令从 Mongo 数据目录中恢复了已删除的文件。

取消删除博客 https://github.com/RIKSOF/development/wiki/Restoring-deleted-files-on-Linux

我们想恢复至少一个我们获得 WT(有线计时器)文件的集合。我们正在尝试使用以下命令恢复该文件,但出现以下错误

从损坏的 MongoDB 安装中恢复 WiredTiger 集合

wget http://source.wiredtiger.com/releases/wiredtiger-2.7.0.tar.bz2 tar xvf wiredtiger-2.7.0.tar.bz2 cd wiredtiger-2.7.0 sudo apt-get install libsnappy-dev build-essential ./configure --enable-snappy make

./wt -v -h ../mongo-bak -C "extensions=[./ext/compressors/snappy/.libs/libwiredtiger_snappy.so]" -R salvage collection-2657--1723320556100349955.wt

错误 -

./wt -v -h ../mongo-bak -C "extensions=[./ext/compressors/snappy/.libs/libwiredtiger_snappy.so]" -R salvage collection-246--7553069514495955510.wt [1488888117:36780][13536:0x7f7b633cd740], file:WiredTiger.wt, connection: read checksum error for 4096B block at offset 12288: block header checksum of 1955562709 doesn't match expected checksum of 3146787951 [1488888117:36809][13536:0x7f7b633cd740], file:WiredTiger.wt, connection: WiredTiger.wt: encountered an illegal file format or internal value [1488888117:36817][13536:0x7f7b633cd740], file:WiredTiger.wt, connection: the process must exit and restart: WT_PANIC: WiredTiger library panic lt-wt: WT_PANIC: WiredTiger library panic

0 投票
0 回答
73 浏览

node.js - 数据损坏导致 MongoDB 服务失败

几个月前,我创建了一个基于 mongodb 的 node/express 网站,这一切都像一个魅力。然后突然,一个月前,我无法启动mongod.exe。我还没有找到答案,所以我希望在这个论坛上得到一个。

不知何故,数据文件夹中的文件已损坏。当我从早期状态获取文件或从 mongodb 获取默认文件时,mongod.exe 可以正常启动。

附件中有来自mongod.exe无法启动的数据和错误的图片。有类似的东西:

“WiredTiger 遇到非法的文件格式或内部值。WiredTiger 库崩溃”

mongod.exe 错误的图像:
mongod.exe 错误的图像

mongod.exe 无法启动的 mongodb 集合的数据文件夹:
mongod.exe 无法启动的 mongodb 集合的数据文件夹

0 投票
0 回答
229 浏览

mongodb - 为什么我使用 Wired Tiger 的 mongo 迁移比 MMAP 慢 10 倍?

我有一个非常简单的数据迁移,我们将一些嵌入式文档从一个集合中拆分为它们自己的集合。我们有 140,000 条记录要创建。

在使用 MMAPV1 对本地 mongo 3.4 进行测试时,迁移运行大约需要 20 分钟。

在生产中,迁移需要 4 个多小时才能运行!

我做了一些实验,我将本地存储切换到 WT 并导入数据并再次运行迁移,大约需要 4 个小时,唯一的区别是 WT 存储配置(默认包括 snappy 压缩)。

使用 MMAP 或 WT 加载初始数据集的速度一样快,所以我怀疑压缩不是问题,但我很好奇是否有人知道为什么我会在两种数据存储机制之间得到如此截然不同的结果