问题标签 [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 投票
2 回答
1231 浏览

mongodb - MongoDB 3.0 在副本模式下对 oplog 集合的写锁定

在副本模式下,对任何 DB 中的任何集合的每个写入操作,也会写入 oplog 集合。

现在,当并行写入多个 DB 时,所有这些写入操作也会写入 oplog。我的问题:这些写操作需要锁定 oplog 吗?(我正在使用 w:1 写关注)。如果他们这样做了,这有点类似于在所有不同数据库的所有写操作之间有一个全局锁,不是吗?

我很乐意得到这方面的任何提示。

0 投票
1 回答
733 浏览

mongodb - 在 mongodb 3.0 复制中,当辅助节点宕机时如何进行选举

情况:我在两台计算机上有一个 MongoDB 复制集。

  • 一台计算机是拥有主节点和仲裁器的服务器。此服务器是实时服务器,并且始终处于开启状态。复制中使用的本地 IP 是192.168.0.4.
  • 第二个是辅助节点所在的 PC,每天运行几个小时。复制中使用的本地 IP 是192.168.0.5.

我的期望:我希望实时服务器成为我的应用程序数据交互的主要点,无论 PC 的状态如何(是否可达,因为 PC 是辅助的),所以我想确保服务器的节点始终是主要的。

以下是 的结果rs.config()

如果这很重要,我还将存储引擎设置为 WiredTiger。

我实际得到的是什么,以及问题:当我关闭 PC 或终止其 mongod 进程时,服务器上的节点将成为次要节点。

以下是我在连接到主节点的 shell 时杀死 PC 的 mongod 进程时服务器的输出:


我有两个疑问:

  1. 考虑到MongoDB 文档的这一部分

副本集使用选举来确定哪个集成员将成为主要成员。选举在启动副本集之后发生,并且在主节点变得不可用的任何时候发生。

选举发生在主节点不可用时(或在启动时,但这部分与我们的情况无关),但主节点始终可用,所以为什么会发生选举。

  1. 考虑到同一文档的这一部分:

如果大部分副本集不可访问或不可用,则副本集无法接受写入,并且所有剩余成员都变为只读。

考虑到“成员变为只读”部分,我有两个节点向上和一个向下,所以这也不应该影响我们的复制。

现在我的问题是:当 PC 上的节点无法访问时,如何将服务器上的节点保持为主节点?

更新: 这是rs.status().

感谢 Wan Bachtiar,现在这使得行为变得明显,因为无法访问仲裁器。

0 投票
1 回答
590 浏览

mongodb - Mongodb中wiredTiger引擎的zlib压缩

当我包含wiredTiger 引擎的zlib 选项时,Mongod 没有启动。当我禁用它时,它工作得很好。我更新了 mongod.conf 文件中的选项并使用 service mongod start 来启动数据库。它给了我以下错误:“mongod.service 的作业失败。有关详细信息,请参阅 'systemctl status mongod.service' 和 'journalctl -xn'”。以前在 Mongo 3.0 中使用过 zlib 压缩的任何人都可以告诉我发生了什么吗?我认为这可能是配置文件中与 zlib 相关的语法。

0 投票
1 回答
404 浏览

mongodb - mongodb丢失的收藏目录

我们使用 MongoDB 3.0.4,独立模式,wiredTiger,Windows Server 2008 x64。我们有一种情况,MongoDB 丢失了集合的“目录”(我认为)。

我们在 Wildfly 8.2.0.Final 内的 JavaEE 应用程序中使用此数据库。mongo-java-driver 版本是 3.0.0。

查看文件夹中存在所有集合文件(collection-*.wt)和索引文件,但在修复、showCollections 和其他命令中,数据库仅找到 2 个集合(我们有近 20 个)。当服务重新启动时,应用程序“重新创建”了这两个集合。

在 MongoDB 日志中,我们只找到了关闭和启动日志。在日志中我们没有发现任何错误日志。

有人知道这里发生了什么吗?

0 投票
0 回答
92 浏览

mongodb - Ubuntu 15.10文件系统如何识别Wired Tiger的收藏

使用 MMAPv1 时,可以轻松识别数据库的存储位置。例如,这里可以很容易地识别“test”数据库:

"/data/db/test.ns"

通过这种方式,您可以确信这是数据库所在的位置。这对了解很有帮助;例如帮助确保您备份正确的数据库。确认恢复的数据在预期的位置是另一回事。

我想知道当存储引擎是 Wired Tiger 时我是否也可以识别数据库名称。我看过的格式

但是,这不允许我看到集合的实际名称或它们所在的数据库。

我很感激这方面的任何帮助。谢谢,里克法里纳

0 投票
1 回答
1229 浏览

python - 如何在集合级别在 pymongo 中添加wiredTiger?

我正在尝试使用wiredTiger 引擎在MongoDB 3.0 中启用数据压缩。压缩在服务器级别工作正常,我可以为 mongo 服务器配置文件中的所有集合提供全局压缩算法,如下所示:

我想在集合级别启用此压缩,这可以通过在 mongodb shell 中使用以下代码来完成:

如何使用 pymongo 驱动程序执行此操作?

0 投票
0 回答
99 浏览

mongodb - 与 mmap 相比,wiredTiger 中的索引大小更大

我只是在评估 MongoDB。出于测试目的,我在 mongoDB 集合中插入了 500 个文档,其中一个带有wiredTiger 存储引擎,另一个带有 mmap。

在进行统计查询_id_时,wiredTiger 中的索引大小比 mmap 更大。由于压缩,wiredTiger 中的整体文档大小较小。

为什么wiredTiger中的索引大小更大?

Mongo verion 3.0 安装在 Windows 7 上

0 投票
2 回答
741 浏览

mongodb - MongoDB 3.0 explain() 结果未记录的过滤器字段

我对以下查询运行解释:

结果在维度字段上包含一个“过滤器”对象,而它应该使用索引过滤该字段,这是什么意思?这不是一个多余的阶段吗?

据我了解,这意味着 mongo 在扫描索引并将文档提取到内存后再次过滤维度字段,是否正确?

谢谢,

0 投票
2 回答
5707 浏览

mongodb - 将 MMAPv1 生成的数据迁移到 WiredTiger

我正在使用 mongodb 3.0 作为数据库运行(keystonejs)webapp。我克隆了 webapp 并使用 3.2 mongodb 版本运行了第二个实例(在生成但为空的数据库上)。我现在需要做的是从第一个数据库中获取数据到第二个数据库。由于 mongodb 3.2 使用不同的默认存​​储引擎,即 WiredTiger,因此克隆使用该引擎。但是原始应用程序使用 MMAPv1。有没有一种简单的方法可以将 MMAPv1 创建的数据迁移到 WiredTiger?

0 投票
1 回答
2125 浏览

spring - 与 Spring 3.2 兼容的 Spring Data MongoDB 的最新版本是什么?

我需要在我的应用程序中使用 WiredTiger Engine,它在最新的 mongodb 版本 3.2.2 和我的 Maven 存储库中使用,它使用 Spring Data MongoDB 版本 1.8.4、Java 驱动程序版本 2.13.3 并且我已经安装了 MongoDB 版本2.6.11。

为了与 Spring 3.2.2.RELEASE 兼容,我应该使用哪个版本的 spring-data-mongodb?

这是以下未回答问题的副本:

哪个版本的 Spring Data MongoDB 与 Spring 3.2.2.RELEASE 兼容?

但我没有足够的特权重新提问或评论该问题。