问题标签 [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.
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?
mongodb - mongodb副本集身份验证不起作用
我对副本集有疑问
将 keyFile 路径添加到 mongodb.conf 后,我可以连接,这是我的 mongo.conf:
这就是命令行中显示的内容:
如果我在 mongo.conf 中注释 keyFile 行,它可以正常工作。
mongodb - MongoDB 两个成员副本集
我有一个两个成员的副本集(在一个分片集群内),没有仲裁器。我知道推荐的设计是拥有三台服务器(或奇数台),但现在我必须坚持这种设计。
问题是当主服务器关闭时,辅助服务器不会被选为临时主服务器(因为两台服务器的优先级都是 1 并且我没有仲裁器)。
有什么方法可以实现自动故障转移(从设备变为主设备-> 主设备重新联机-> 默认主设备恢复其先前的状态)?
谢谢!
mongodb - Mongos 计数项目不真实?
我在 mongos 实例中有一个奇怪的 count() 函数行为。一个多小时前,我更新了帖子集合中的大约 8.000 个项目,因为我需要将标签对象转换为数组。
现在,当我查询 mongos 时:
为什么 count() 显示 4139 个项目并且 findOne 返回一个空值,即使 RS 是同步的?
编辑: 有 4 个 RS(全部同步)。我还对所有 PRIMARIES 进行了相同的计数查询,结果始终为 0。只有当我依靠 mongos 时,结果才是 4139!
mongodb - MongoDB单服务器生产设置
我正在为只有一台机器用于生产部署的客户开发服务器。这是一个 8Gb 内存的 CentOS 64 位。
我正在使用 Mongo,问题是,即使它是单台机器,我是否还需要部署副本集?
我会获得副本集的优势,还是因为它是一台机器,所以真的没关系,日志就足够了?
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 的所有内容。
我究竟做错了什么?!?!?!?!?!?
mongodb - MongoDB - 显示 dbs 并显示没有 clusterAdmin 角色的日志
有没有办法让 MongoDB 副本集上的用户能够使用“show dbs”和“show log”而不给他们 clusterAdmin 角色?
当您连接时,各种用户界面(例如,robomongo)会显示数据库列表。如果无法“显示 dbs”,则不会列出任何数据库。
谢谢!
python - pymongo:使用 MongoReplicaSetClient 的优势?
似乎MongoClient和MongoReplicaSetClient都可以连接到 mongo 副本集。事实上,它们的文档页面几乎相同——相同的选项、相同的方法等——除了后者的构造函数需要我指定一个副本集。
在这两种情况下,我们都可以指定读取偏好。在这两种情况下,如果发生降级,我们必须处理 AutoReconnect 异常。
所以我的问题是:
为什么一个人会使用一个而不是另一个,因为一个人可以对两者执行完全相同的操作?
两者都可以执行二次读取,对吗?文档说 ReplicaSetClient 的优点是我们可以进行二次读取,但显然两者都支持它们。
文档说 ReplicaSetClient 具有“副本集健康监控”功能。这到底是什么意思呢?有没有我可以调用的新方法告诉我一个 replset 的健康状况,而我不能用 MongoClient 做这些?
理论上MongoReplicaSetClient将连接到 replset 的所有成员,而不仅仅是一个。这是错误的:您可以删除或省略连接字符串中的任何服务器,并且 MongoClient 和 MongoReplicaSetClient 仍然能够连接。我错过了什么吗?
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
解决方案:
mongodb - 如何检查次要是否已同步
有三个成员(主要,次要,次要)的副本。假设其中一个辅助节点停机一天,在将辅助节点返回副本后,我如何才能找到它是否已同步?
我在测试环境中做到了,但无法从rs.status()
and中找到有用的数据db.printReplicationInfo()
。
中有“日志长度开始到结束” db.printReplicationInfo()
。但默认情况下它很重要,并且在次要关闭时会增长。