问题标签 [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 - 只有 2 个节点的 ReplicaSet
我有两个服务器,每个服务器都有一个 mongo 实例。
在第一台服务器上,我将 mongo 实例设置为主要服务器,而在第二台服务器上,我将 mongo 实例设置为次要服务器。
我没有机会让另一台服务器成为仲裁者。
我怎样才能在只有两个服务器的情况下使用 mongodb?
如果主要失败,次要自动成为主要?
谢谢!
node.js - mongodb副本集配置版本错误
我在亚马逊云上运行了三台机器。我将第一个主集设置如下
}
然后第二台机器将自动同步配置。但是,第三台机器不会同步配置。所有都变成了[次要]。当我设置第三台机器 rs conf 时使用re.reconfig(conf, {force: true})
. 它不会设置和抛出错误,比如有
配置版本 >= 到新的 cfg 版本;无法更改配置
python - pymongo:如果监控线程死了怎么办?
由于某种原因,ReplicaSet 的监视器在计划刷新时出现死机。
我在对 find_one() 的调用中跟踪了 Traceback:
我研究了一下代码,发现 Monitor.monitor() 包含:
这意味着无论发生了什么坏事,我永远不会知道是什么。
那么,如果我发现 InvalidOperation("Monitor thread is dead: 也许在 fork 之前开始?"),我该怎么办?
有什么好方法可以重启 Monitor 实例吗?
(我在 pymongo.version 2.6.2 中使用 flask-pymongo)
mongodb - MongoDB 连接字符串到副本集
我正在查看http://mongodb.github.io/node-mongodb-native/driver-articles/mongoclient.html并且当您滚动到“默认情况下不使用确认的副本集连接和次要的 readPreference”部分时
它声明了一个到副本集的连接字符串,如下所示:
我不明白为什么我们需要指定2 hosts
. 我认为 MongoDB 文档已经说明副本集对客户端是透明的。这意味着,客户端只需要连接到主副本集,MongoDB 就会完成这项工作。因此,连接应该只包含 1 个主机。MongoDB doc 声明必须至少3 hosts
在一个副本集中并且仅指定此连接字符串2 hosts
。
另外,为什么连接字符串没有说明“replicaSet”?
mongodb - 使用 mgo 连接到副本集
我正在使用在端口 27017、27018 和 27019 上mtools
启动具有 3 个节点 ( ) 的副本集。mlaunch --replicaset
但是,我实际上很难使用Dial
mgo 包连接到副本集。下面的代码片段会出现以下消息no reachable servers
:
究竟如何使用 mgo 包连接到副本集?
mongodb - service mongod start fail with replica set
I'm starting my mongod
with the following command:
It works fine and I can configure the replica set. When I try to to launch mongod
with service mongod start
command it fails with the following error:
Starting database mongod [fail]
I have no error in var/log/mongodb/mongodb.log
, /var/log/syslog
or /var/log/syslog.1
.
I found this work-around solution to run as mongod
as a service:
mongod --port 27017 --dbpath /var/lib/mongodb/ --replSet rs0 --fork --logpath /var/log/mongodb/mongodb.log
or mongod --config /etc/mongod.conf
I'm running on mongodb 2.6. rs.initiate()
worked fine.
I added fork = true
and replSet = rs0
in my /etc/mongod.conf
.
How can I start MongoDB by using service mongod start
?
node.js - Mongoose 连接到副本集
我试图通过猫鼬连接到 MongoDB 副本集。我使用了这个链接。
配置json:
猫鼬连接:
启动应用程序后,我遇到了异常:
Db:聊天,主服务器:localhost:27022。
我还尝试删除其他两台服务器(仅在配置 json 中保留主要服务器),我看到它知道辅助服务器(我使用了日志)。我认为这是关于 mongodb 元数据的。但是当我关闭主设备时,它完成了它的工作(难怪),我需要它,以便它可以使用辅助设备。
有任何想法吗?
java - 连接到副本集时偶尔出现 MongoTimeoutException
com.mongodb.MongoTimeoutException
连接到副本集时,我在 AWS 上偶尔遇到错误。rs.status()
例如,我正在使用从 输出的域名进行连接mongo1.production
,mongo2.production
但我仍然遇到超时。
我的代码如下所示:
mongodb - 尝试创建复制的分片集群时连接 mongos 时出错
我正在尝试在 mongodb 中创建一个复制的分片集群。最初我创建了两个分片,每个分片中有一个包含三个成员的副本集。所有的分片和副本集都在一台机器上运行。我跟着
部署这种结构并且效果很好。
但是当我在 AWS 实例中为业务应用程序运行我的 mongodb 并将我的 node.js 服务器与数据库连接时,我想在多个 aws 实例中对数据库进行负载平衡,以便数据库即使在巨大的情况下也能正常工作流量负载,即使一个实例变得不健康或不可用,我也可以从其他实例中运行的副本集访问数据库。
根据我上一个问题中不同用户的建议
我正在尝试将数据库划分为分片,每个分片将有一个具有 3 个或更多成员的副本集,这些成员在单独的 aws 实例中运行。为了创建这个结构,我首先尝试在本地部署它。
我有两个副本集 firstset 和 secondset
第一组有三个成员 192.168.1.10:27018(Primary), 192.168.1.11.27018(Secondary) & 192.168.1.9:27018(arbiter)
第二组有三个成员 192.168.1.6:27019(Primary), 192.168.1.9:27019(Secondary) & 192.169.1.11:27019(arbiter)
创建我写的第一个副本
在 192.168.1.10、192.168.1.11 和 192.168.1.9
然后启动我写的副本集
在 192.168.1.10 然后,
我以类似的方式创建了 secondset 副本并且它有效。
然后我尝试在三台单独的机器上创建三个 configsvrs,这样即使一台机器关闭,其他 configsvrs 也会运行。configsv 将在 192.168.1.10:27020、192.168.1.11:27020 和 192.168.1.6:27020 中运行
所以我写了
在 192.168.1.10、192.168.1.11 和 192.168.1.6 中。
然后我尝试在 27017 端口的 192.168.1.10 中运行 mongos,三个运行的 configdb。所以,我写了
然后因为我必须在 mongos 中添加分片,并且 mongos 在 27017 端口中运行,所以我写了:-
但它显示
但以前当我在一台机器上测试它时它工作得很好。
请帮助我为什么会收到此错误以及如何解决它。
我还有另一个困惑。我在 192.168.1.10 中运行 mongos,然后将我的 node.js 服务器与该 mongos 连接,但如果该机器关闭,我就会遇到问题。那么我是否还需要在其他机器上运行 mongos,以便随时运行至少一个 mongos 来路由与数据库的连接?如果我必须创建多个同时运行不同机器的 mongos,那么我将如何从 node.js 服务器连接任何一个 mongos 以访问数据库?
mongodb - 仲裁者不接受连接
(MongoDB 版本 2.6.3)
我有一个副本集:2 个节点 + 仲裁器。副本集没有问题,但我无法连接到仲裁器:
Courios 是我可以将节点添加和删除到我的副本集中。连接到辅助或主,我可以看到仲裁器:
如果我跟踪 mongod.log(在仲裁器上)我可以看到
使用我的其他副本集,我始终可以毫无问题地连接到仲裁器。知道发生了什么吗?
编辑:如果我删除副本信息并删除身份验证,我可以毫无问题地连接到该节点。没有防火墙问题:)