jjzjj

replicaSet

全部标签

mongodb - replicaset (+pymongo) 当 master 宕机时从 slave 读取

似乎使用pymongo时,连接将始终尝试从PRIMARY中读取,当它关闭时,会引发套接字错误,直到新的选举过程完成。鉴于replicSet的目的之一是平衡读取负载,这似乎是一个主要缺陷,除非我在这里遗漏了一个关键概念。我已经提供了slave_ok东西,但是,只要没有主可用,就没有读,更不用说写了。我已经在端口8910、8911和8912启动了3个mongod实例,然后一个接一个地关闭它们,当最后一个仍然存在时,无法从中读取,即使你的mongo(cli)允许读取。正在使用的版本:mongodb:2.0.2pymongo:2.1.1pymongo控制台输出>>>collection=Con

MongoDB ReplicaSet - 当只剩下 PRIMARY 时,PRIMARY 角色降为 SECONDARY

我正在研究使用MongoDBReplicaSet实现高可用性。但是刚刚发现在3个节点的ReplicaSet中,如果PRIMARYmongod是唯一剩下的(也就是另外2个mongod实例死亡或者被关闭),然后在几秒后它切换角色到SECONDARY并不再接受写入。这使得副本集的值(value)低于单个实例。我知道并理解PRIMARY选举,但是PRIMARY角色被固定到一个服务器(通过使用priority设置为10)和(例如由于网络问题)其他服务器成为无法访问,为什么主服务器就放弃了?!在Windows(mongodb-win32-x86_64-2008plus-2.4.8)和Linux(C

MongoDB 作为 Windows 服务并设置 replicaSet

我已经安装了MongoDB并将其设置为Windows服务。当我尝试设置replicaSet时出现错误“通常只允许每个套接字地址(协议(protocol)/网络地址/端口)使用一次。对于套接字:0.0.0.0:27017”。所以,我已经停止了windows服务并设置了replicaSet。replicaSet现在工作正常。但是,我没有看到Windows服务启动和运行。这是否意味着我不能同时设置replicaSet和MongoDB服务? 最佳答案 您可以在Windows上同时设置副本集和MongoDB服务。由于您已经设置了一个副本集,因

mongodb - 我怎么知道 MongoDB 恢复何时结束

根据标题,我有一个包含1个主节点、1个辅助节点和1个仲裁节点的副本集,我在主数据库中恢复了一个大数据库,它比辅助实例快得多。现在次要滞后了很多(小时),并且从几个小时开始就处于恢复状态。我可以做些什么吗?我可以知道恢复进度吗? 最佳答案 我先回答你的第二个问题。“我能知道恢复进度吗?”是的,您可以连接到副本集主并执行rs.status()命令来查看RS中每个成员的状态。请参阅输出的stateStr字段,它将指示状态代码的友好名称。这表明恢复的进展。但是在您的标题中,您询问是否可以知道它何时结束。这要难得多。无法“准确”知道辅助成员何

node.js - mongoose.mongo.MongoClient.connect() 是否在没有 mongo shell 的情况下工作?

我正在连接到非本地主机的mongo服务器。我正在使用Mongoose。在某些时候我需要连接mongonative驱动程序,所以我这样做是这样的:mongoose.mongo.MongoClient.connect(uri,function(err,conn){});但是conn对象是null。最近我更改了服务器结构,现在所有的mongo数据库都是远程的,在我的新Node机器上我根本没有安装mongoshell...首先一切正常,连接uri是:mongodb://x.x.x.x:27017/database,mongodb://y.y.y.y,mongodb://z.z.z.z其中x.x

mongodb - Spring Data Mongodb - 独立 mongo 和 replicaset 的单一配置

我开始使用一个mongo实例作为我的数据库,在springxml中配置:最近,我更改了配置以使用3节点副本集,配置为:一切正常。我目前的问题是,对于我的开发环境,我想使用单一的localhostmongo配置,对于int和prod环境,我想使用副本集配置。我将通过属性文件处理不同的值。问题是关于mongo配置本身。下面这个例子中的一些东西是理想的......我遇到了这个例子:spring-booturiCanBeCustomizedunitTest有没有办法在spring配置中做到这一点?我正在使用spring-data-mongodb-1.7.0.RELEASE。

mongodb - MongoDB 实例可以成为多个副本集的成员吗?

我想知道是否可以拥有一个属于两个副本集的mongoDB实例。例如:ReplicaSet1有成员10.10.1.1和10.10.2.1ReplicaSet2有成员10.10.1.1、10.10.1.2和10.10.1.3 最佳答案 不,单个mongod服务器不能是多个副本集的成员。这似乎没有在任何地方明确记录,所以我不得不寻找至少强烈暗示它的东西。首先,集合中的每个副本都有相同的数据库和集合,这是由重播主副本的操作日志的辅助副本维护的。次要节点将无法重放来自多个主要节点的操作日志。其次,db.serverStatus()命令返回一个包

mongodb - 副本集的 mongoimport 命令是否需要包括仲裁者在内的所有副本集成员?

我正在运行MongoDB2.6.2,并且我有一个副本集,其中包含主要副本、次要副本和仲裁程序。仅对一个或两个副本集成员运行mongoimport命令是否有任何不利影响?更具体地说,是否需要在mongoimport命令的--host选项中指定仲裁器?文档清楚地描述了主机名格式(here),但没有警告需要指定多少成员。 最佳答案 mongoimport命令应该在primary主机上运行,​​因为这是一个插入操作,所有插入只能在主节点上完成。Secondary节点不能直接接受写操作。在replicaset中,primary节点先获取数据,

mongodb - 更新角色用户 : not authorized on admin to execute command

当我尝试获取有关副本的信息时,出现以下错误:rep0:PRIMARY>rs.printReplicationInfo()2015-05-19T13:30:29.231+0200error:{"$err":"notauthorizedforqueryonlocal.system.namespaces","code":13}atsrc/mongo/shell/query.js:131我尝试用以下两个用户执行命令:[{"_id":"admin.siteRootAdmin","user":"siteRootAdmin","db":"admin","roles":[{"role":"root",

mongodb - 如何使用 ansible 设置 mongo 副本集?

我有两台机器,每台机器托管一个mongo实例。我需要它们作为一个副本集一起工作。我使用Ansible进行配置。我怎样才能做到这一点? 最佳答案 我就是这样处理的。我用了Stouts.mongodb来自AnsibleGalaxy。在playbook.yml中:----name:Provisiondatabaseservershosts:dbserverssudo:truevars:mongodb_conf_replSet=rs-name/db-hostname-1:27017,db-hostname-2:27017mongodb_sh