问题标签 [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 回答
2334 浏览

mongodb - 如何通过mongodb日志文件恢复数据?

我用“Sublime”打开日志文件“WiredTigerLog.0000000003”,但是内容是乱码。

幸运的是,我可以识别我从乱码内容中删除的数据!</p>

这是 WiredTigerLog 的内容

找了一个下午,还是不知道怎么从Journal文件中恢复数据。非常期待您的回答!</p>

0 投票
0 回答
50 浏览

mongodb - 如何在 MongoDB 中的节点上设置所有数据库的限制大小?

我有以下情况:

  • Linux机器
  • 使用 WiredTiger 存储引擎安装的 MongoDB 3.4.4

我怎样才能在这台机器上设置一个限制,使得所有数据库大小不得超过 500GB,任何数据库不得超过 150GB?我希望这个设置可以在mongod.conf文件中完成。

0 投票
1 回答
304 浏览

mongodb - 使用 Mongo Cache 替代 redis

目前,我正在将数据写入 redis,每 2 分钟减少为 mongo。我想知道我是否可以在这里使用 Mongo Cache 而不是 redis。这将在生产中节省 2 个 dbs 的成本。此外,mongodb 页面说:

WiredTiger 缓存存储未压缩的数据并提供类似内存的性能

我想对其进行测试,但我找不到任何有关使用 WiredTiger Cache 的文档。

注意:Wiredtiger 是默认的 mongo 存储引擎。

0 投票
1 回答
37 浏览

javascript - WiredTiger 在 mongoose 中对密码进行哈希处理时以明文形式记录密码

我实现了我的用户身份验证,包括在 pre-save-hook 中的 mongoose 中的密码散列(参见文章https://www.mongodb.com/blog/post/password-authentication-with-mongoose-part-1)。

一切正常,但我发现了一个安全问题:WiredTiger 在执行钩子之前记录日志,因此我在服务器上获得了一个日志文件,其中包含明文形式的密码。

我启用了文件加密(https://docs.mongodb.com/manual/tutorial/configure-encryption/),但这并不能完全解决这个问题,因为 root 用户等仍然可以访问。

有没有可能解决这个问题?

问候,托拜厄斯

0 投票
1 回答
894 浏览

c - ... 在 c 代码中是什么意思

我正在阅读Wiredtiger的代码。我看到一个函数定义为

WT_CURSOR::set_key(WT_CURSOR * cursor, ...)

'...' 在这里是什么意思?编译器如何编译这样的代码?

谢谢

0 投票
1 回答
1280 浏览

node.js - MongoDB 失败,因为键太大而无法索引

我一直在尝试保存一个 MongoDB 文档,并且收到一个关于键太大而无法索引的奇怪错误。我在下面提供了一个功能文档的示例,以及一个会产生错误的示例:

功能:

非功能性:

在创建restrictions对象之前,刮板按预期运行,所以我相信错误可以缩小到那里。但是,我不清楚在哪里有任何键“太大”而无法编入索引。如果我的猜测是正确的,为什么 Mongo 将其视为关键,我该如何补救这种情况?

编辑:响应db.Section.getIndexes();如下所示:

0 投票
1 回答
4230 浏览

mongodb - 如何使 MongoDB `repairDatabase` 和 `compact` 命令与副本集一起使用?停机时间没问题

我们需要释放一些 MongoDB 空间,并且我们确定了可以从集合中安全删除的 100Gb 以上的文档。

因此,我们将它们从具有以下设置的测试环境中删除:

  • MongoDB 3.0.1 版
  • 没有分片
  • 1 个节点,无副本
  • 有线老虎引擎

完成后,我们发现磁盘上的空间仍在使用,需要回收。我们找到了这篇文章,它帮助了我们:在运行两者之后

我们释放了 100Gb +。

然后我们继续生产,忘记了设置是不同的,因为我们有 1 个副本节点:

  • MongoDB 3.0.1 版
  • 没有分片
  • 1个主节点,1个副本节点
  • 有线老虎引擎

删除文件后,我们运行

并收到OK消息(过了一会儿,10 分钟 +)。我们试着跑步

并得到这个错误:

不会在活动副本集主节点上运行紧凑,因为这是一个缓慢的阻塞操作。使用 force:true 强制

所以我们跑

并收到OK消息(几乎立即),但空间磁盘仍在使用,它没有被释放。

我们搜索了使用副本集运行repairDatabaseandcompact命令的解决方案,但建议的重点是避免停机,好像这是唯一的问题。但是,我们可以安排停机时间,而我们的问题是命令不能按预期工作,因为空间实际上并没有被回收

我们做错了什么?

0 投票
1 回答
71 浏览

mongodb - MongoDB `count` 返回的实体数少于 `find` 结果中的实体数

我的测试看起来像

这怎么可能?我试图重新索引,但没有任何帮助。我使用的是 Wired Tiger 存储引擎,没有分片/复制。

0 投票
1 回答
310 浏览

mongodb - 我的 mongoimport 运行到无穷大

我做了mongorestore一个 gzipped mongodump

但它一直在继续。我离开了它,因为我想如果我现在“只是”关闭它,我的(重要)数据将被破坏。检查百分比:

而且还在继续!

请注意,其他集合已完成。只有这一项超过了 100%。我不明白。

这是mongo 3.2.7在 Mac OSX 上。

很明显是导入的数据量有问题,因为连磁盘空间都没有。

使用的磁盘空间量可能是正确的,因为压缩后的备份大约是 200GB。我不知道这是否会导致压缩后的WiredTiger数据库上的数据量相同。snappy

但是,日志不断显示插入:

更新

磁盘空间仍在消耗。这大约是 2 小时后,大约 30 GB 后:

问题是:进度指示器中是否存在错误,或者是否存在某种循环不断插入相同的文档?

更新

它完成了。

604.0 GB/85.2 GB (1881.8%)

有趣的。:)

0 投票
0 回答
222 浏览

mongodb - /etc/mongod.conf 中的 engine:wiredTiger 不会在 Centos 7.4 上启动 Mongo DB 3.2

我在 Centos 7.4 上新安装了 Mongo DB 3.2,以下是配置

我取消了上面最后一行的注释engine: wiredTiger并使用命令重新启动了 mongodb service mongodb restart,但服务器没有启动并给出以下错误

当我将更改恢复为原始配置时,服务器会重新启动。关于如何添加wiredTiger到配置的任何帮助?

相同的过程适用于另一台服务器,但不适用于该服务器