问题标签 [replicaset]

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 投票
5 回答
41010 浏览

mongodb - How to convert a MongoDB replica set to a stand alone server

Consider, I have 4 replicate sets and the config is as follows:

I am able to connect to all sets using mongo --port <port>

There are documents for getting information on Convert a Standalone to a Replica Set, but can anyone tell me how to convert back to standalone from replica set?

0 投票
2 回答
2159 浏览

mongodb - mongodb副本集身份验证不起作用

我对副本集有疑问

将 keyFile 路径添加到 mongodb.conf 后,我可以连接,这是我的 mongo.conf:

这就是命令行中显示的内容:

如果我在 mongo.conf 中注释 keyFile 行,它可以正常工作。

0 投票
2 回答
3003 浏览

mongodb - MongoDB 两个成员副本集

我有一个两个成员的副本集(在一个分片集群内),没有仲裁器。我知道推荐的设计是拥有三台服务器(或奇数台),但现在我必须坚持这种设计。

问题是当主服务器关闭时,辅助服务器不会被选为临时主服务器(因为两台服务器的优先级都是 1 并且我没有仲裁器)。

有什么方法可以实现自动故障转移(从设备变为主设备-> 主设备重新联机-> 默认主设备恢复其先前的状态)?

谢谢!

0 投票
2 回答
980 浏览

mongodb - Mongos 计数项目不真实?

我在 mongos 实例中有一个奇怪的 count() 函数行为。一个多小时前,我更新了帖子集合中的大约 8.000 个项目,因为我需要将标签对象转换为数组。

现在,当我查询 mongos 时:

为什么 count() 显示 4139 个项目并且 findOne 返回一个空值,即使 RS 是同步的?

编辑: 有 4 个 RS(全部同步)。我还对所有 PRIMARIES 进行了相同的计数查询,结果始终为 0。只有当我依靠 mongos 时,结果才是 4139!

0 投票
1 回答
1046 浏览

mongodb - MongoDB单服务器生产设置

我正在为只有一台机器用于生产部署的客户开发服务器。这是一个 8Gb 内存的 CentOS 64 位。

我正在使用 Mongo,问题是,即使它是单台机器,我是否还需要部署副本集?

我会获得副本集的优势,还是因为它是一台机器,所以真的没关系,日志就足够了?

0 投票
1 回答
655 浏览

mongodb - MongoDB 副本集设置问题

尝试从头开始设置 MongoDB 副本集时,我感到非常沮丧。这是我第一次使用 MongoDB (2.4.6),我不确定是我缺乏理解还是文档不佳。这是我正在使用的:

-VPC 中的 Amazon EC2 Ubuntu 12.04 LTS 实例 -NodeA 10.0.1.152 -NodeB 10.0.1.153

他们可以很好地相互交流。这些服务器是全新的,因此没有防火墙规则。我的主机文件:

10.0.1.152 mongodb0 10.0.1.153 mongodb1 10.0.1.226 mongodb2 #这是仲裁者,但我暂时不关心这个

我在 NodeA 中的 conf

我在 NodeB 中的 conf

在 NodeA 上,我开始这个过程:

这是错误消息:

我还在副本上运行了 mongo 进程。当我初始化时,它也称自己为 Primary。

在 NodeB 上 - 我对来自 NodeA 的所有流量运行了 TCPDUMP。当我初始化时 - 什么都没有出现。正如我所提到的,没有防火墙规则,我什至添加了为了它而允许来自 NodeA 的所有内容。

我究竟做错了什么?!?!?!?!?!?

0 投票
1 回答
1913 浏览

mongodb - MongoDB - 显示 dbs 并显示没有 clusterAdmin 角色的日志

有没有办法让 MongoDB 副本集上的用户能够使用“show dbs”和“show log”而不给他们 clusterAdmin 角色?

当您连接时,各种用户界面(例如,robomongo)会显示数据库列表。如果无法“显示 dbs”,则不会列出任何数据库。

谢谢!

0 投票
1 回答
2305 浏览

python - pymongo:使用 MongoReplicaSetClient 的优势?

似乎MongoClientMongoReplicaSetClient都可以连接到 mongo 副本集。事实上,它们的文档页面几乎相同——相同的选项、相同的方法等——除了后者的构造函数需要我指定一个副本集。

在这两种情况下,我们都可以指定读取偏好。在这两种情况下,如果发生降级,我们必须处理 AutoReconnect 异常。

所以我的问题是:

  1. 为什么一个人会使用一个而不是另一个,因为一个人可以对两者执行完全相同的操作?

  2. 两者都可以执行二次读取,对吗?文档说 ReplicaSetClient 的优点是我们可以进行二次读取,但显然两者都支持它们。

  3. 文档说 ReplicaSetClient 具有“副本集健康监控”功能。这到底是什么意思呢?有没有我可以调用的新方法告诉我一个 replset 的健康状况,而我不能用 MongoClient 做这些?

  4. 理论上MongoReplicaSetClient将连接到 replset 的所有成员,而不仅仅是一个。这是错误的:您可以删除或省略连接字符串中的任何服务器,并且 MongoClient 和 MongoReplicaSetClient 仍然能够连接。我错过了什么吗?

0 投票
0 回答
893 浏览

php - 如何从 php 中针对副本集中的特定 mongodb 辅助运行 db.currentOp()?

我正在尝试对db.currentOp()mongodb ReplicaSet 的不同成员运行该命令,以查看他们当前正在运行的查询。

我唯一从中获取数据的是主服务器,所有辅助服务器都响应:

测试代码:

使用 Mongo shell 并连接到辅助我可以db.currentOP()在 Shell 中毫无问题地执行。

使用 RoboMongo ( http://robomongo.org/ ) 并连接到辅助服务器,我可以db.currentOP()在 Shell 中毫无问题地执行。

使用 MongoVue ( http://www.mongovue.com/ ) 并连接到辅助服务器,我可以在服务器页面上看到正在运行的查询。

那么我做错了什么还是不支持使用 php 对辅助服务器执行此命令?

因为在其他语言中似乎可以从辅助中获取数据。

我真的很感激任何提示以某种方式从 php 运行它。

测试环境

MongoDB 服务器: 2.2.2(具有 1 个主节点、2 个辅助节点的 ReplicaSet)

PHP: 5.4.9 / 5.3.5

MongoDB PHP 驱动程序: ubuntu 13.04 / debian 上的 1.4.4 / 1.3.0

解决方案:

0 投票
5 回答
38226 浏览

mongodb - 如何检查次要是否已同步

有三个成员(主要,次要,次要)的副本。假设其中一个辅助节点停机一天,在将辅助节点返回副本后,我如何才能找到它是否已同步?

我在测试环境中做到了,但无法从rs.status()and中找到有用的数据db.printReplicationInfo()

中有“日志长度开始到结束” db.printReplicationInfo()。但默认情况下它很重要,并且在次要关闭时会增长。