问题标签 [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.
mongodb - 如何在 MongoDB 中的节点上设置所有数据库的限制大小?
我有以下情况:
- Linux机器
- 使用 WiredTiger 存储引擎安装的 MongoDB 3.4.4
我怎样才能在这台机器上设置一个限制,使得所有数据库大小不得超过 500GB,任何数据库不得超过 150GB?我希望这个设置可以在mongod.conf
文件中完成。
mongodb - 使用 Mongo Cache 替代 redis
目前,我正在将数据写入 redis,每 2 分钟减少为 mongo。我想知道我是否可以在这里使用 Mongo Cache 而不是 redis。这将在生产中节省 2 个 dbs 的成本。此外,mongodb 页面说:
WiredTiger 缓存存储未压缩的数据并提供类似内存的性能
我想对其进行测试,但我找不到任何有关使用 WiredTiger Cache 的文档。
注意:Wiredtiger 是默认的 mongo 存储引擎。
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 用户等仍然可以访问。
有没有可能解决这个问题?
问候,托拜厄斯
c - ... 在 c 代码中是什么意思
我正在阅读Wiredtiger的代码。我看到一个函数定义为
WT_CURSOR::set_key(WT_CURSOR * cursor, ...)
'...' 在这里是什么意思?编译器如何编译这样的代码?
谢谢
node.js - MongoDB 失败,因为键太大而无法索引
我一直在尝试保存一个 MongoDB 文档,并且收到一个关于键太大而无法索引的奇怪错误。我在下面提供了一个功能文档的示例,以及一个会产生错误的示例:
功能:
非功能性:
在创建restrictions
对象之前,刮板按预期运行,所以我相信错误可以缩小到那里。但是,我不清楚在哪里有任何键“太大”而无法编入索引。如果我的猜测是正确的,为什么 Mongo 将其视为关键,我该如何补救这种情况?
编辑:响应db.Section.getIndexes();
如下所示:
mongodb - 如何使 MongoDB `repairDatabase` 和 `compact` 命令与副本集一起使用?停机时间没问题
我们需要释放一些 MongoDB 空间,并且我们确定了可以从集合中安全删除的 100Gb 以上的文档。
因此,我们将它们从具有以下设置的测试环境中删除:
- MongoDB 3.0.1 版
- 没有分片
- 1 个节点,无副本
- 有线老虎引擎
完成后,我们发现磁盘上的空间仍在使用,需要回收。我们找到了这篇文章,它帮助了我们:在运行两者之后
和
我们释放了 100Gb +。
然后我们继续生产,忘记了设置是不同的,因为我们有 1 个副本节点:
- MongoDB 3.0.1 版
- 没有分片
- 1个主节点,1个副本节点
- 有线老虎引擎
删除文件后,我们运行
并收到OK消息(过了一会儿,10 分钟 +)。我们试着跑步
并得到这个错误:
不会在活动副本集主节点上运行紧凑,因为这是一个缓慢的阻塞操作。使用 force:true 强制
所以我们跑
并收到OK消息(几乎立即),但空间磁盘仍在使用,它没有被释放。
我们搜索了使用副本集运行repairDatabase
andcompact
命令的解决方案,但建议的重点是避免停机,好像这是唯一的问题。但是,我们可以安排停机时间,而我们的问题是命令不能按预期工作,因为空间实际上并没有被回收。
我们做错了什么?
mongodb - MongoDB `count` 返回的实体数少于 `find` 结果中的实体数
我的测试看起来像
这怎么可能?我试图重新索引,但没有任何帮助。我使用的是 Wired Tiger 存储引擎,没有分片/复制。
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%)
有趣的。:)
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
到配置的任何帮助?
相同的过程适用于另一台服务器,但不适用于该服务器