问题标签 [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 - 使用 mongodb mapreduce 时服务器崩溃
我正在使用具有 3 个成员的复制集,这是触发 mapreduce 的代码
然后我的主要死了并重新启动,但投票成为次要,并且仍然有一个集合sns.tmp.mr.account_0
而不是log_account
. 我对 mongodb 很陌生,我真的很想弄清楚问题出在哪里。
mongodb - MongoDB 中的 Write Concern 如何在线程级别工作?
正如我所见,我们可以从应用程序中设置写关注点,我想知道 MongoDB 将如何处理这样的场景:
假设我们有两个任务/进程(P1 和 P2)在同一个数据库上运行(数据库有一个由三个节点组成的副本集,1 个主节点和 2 个辅助节点)。P1 在日志级别启用了写入关注。P2 在副本级别启用了写入关注。(二级)。
现在如果 P1 和 P2 都写入数据库会发生什么?
P2会等待P1写入的数据复制到secondary,然后再将其数据写入secondary吗?
或者它是如何处理的?
mongodb - 在 DC 故障时自动主选的 MongoDb 副本集(2 个 DC)的推荐配置是什么
我需要将 mongo 节点分布在 2 个数据中心上。
我对容错表有点困惑:
成员数 = 4
选举新小学所需的多数 = 3
数字 4 是否意味着我总共需要 5 个投票成员,或者我可以有 3 个投票成员 + 1 个优先级 0 隐藏成员?
例如 :
- DC1:P,H(优先级=0)
- DC2 : S, S
如果 DC1 出现故障,DC2 会选择主节点吗?
如果 DC2 关闭,我是否需要将 H 转换为 arbitrer 或者它将保持 Primary?
从本质上讲,如果有人可以为 2 个 DC 提供少量推荐的副本集配置,以确保在 DC 故障时自动进行主选择(以最少的手动操作进行选择),那就太好了。
在此先感谢,卡尼斯卡
node.js - 无法使用 NodeJS 本机驱动程序连接到 MongoDB 数据库
我有一个 NodeJS 应用程序,我需要在其中连接到 MongoDB 数据库 - 一个是单个服务器设置,第二个来自副本集。我连接到下一个就好了,但是当连接到第二个时 - 我收到以下错误:
我用来连接的代码(在省略用户名和真实网址之后)是:
现在,当我单独尝试时(不是在代码连接到真正的其他数据库之后),我工作得很好......有什么想法吗?
c# - 使用 C# 驱动程序的 MongoDB Replicaset 连接字符串
我的 Mongo DB 集具有 3 个副本集。一个主节点和两个辅助节点。
当我的代码使用以下连接字符串运行时,插入记录没有问题
但问题是,因为它在副本集上,所以当主从 27019 变为 27018 或 27017 插入失败时,我的主会不断变化。
所以我尝试将我的连接字符串更改为更真实的副本集连接字符串。
它一直以“没有这样的主机”或“无法连接到成员”而失败,但是在同一行代码中获取集合列表工作(我的意思是读取工作仅写入失败,如插入或保存命令)
我正在使用MongoDB 2.6.4
rs.status()
rs.config()
mongodb - 带有仲裁器的 MongoDB 副本集
我正在尝试在 MongoDB 3.0 中配置一个具有两个副本和一个仲裁器的副本集,但它们没有按预期工作。正如您在下图中看到的那样,每个实例都告诉同一副本集的不同状态。
我使用了以下配置:
仲裁者:
- dbpath=/mongo-元数据
- logpath=/var/log/mongodb/mongod.log
- 日志附加=真
- 端口=27017
- replSet=rs0
- 叉=真
- nojournal=真
蒙哥0:
- dbpath=/mongo-元数据
- logpath=/var/log/mongodb/mongod.log
- 日志附加=真
- 端口=27017
- replSet=rs0
- 叉=真
蒙古1:
- dbpath=/mongo-元数据
- logpath=/var/log/mongodb/mongod.log
- 日志附加=真
- 端口=27017
- replSet=rs0
- 叉=真
我尝试 ping 每台服务器,并且所有服务器都已连接。另外,我尝试使用密钥文件,但没有任何改变。我做错了什么?
编辑:我已将此帖子迁移到:https ://dba.stackexchange.com/questions/94730/mongodb-replica-set-with-arbiter
mongodb - 添加 Shard 不会减少 MongoDB 中的辅助磁盘大小
我的公司正在使用 mongoDB 作为数据库。
目前我们正在编写添加分片的脚本,一旦磁盘值增加超过 70%。
它工作正常,并在达到 70% 的阈值后添加一个额外的分片。
问题是当我们添加分片时,旧分片的文件大小并没有像 mongo 文档中提到的那样减小。
所以我们连接到 mongos 并执行 db.repairDatabase,它工作正常并减少了旧分片的文件大小。
我们面临的最大问题是修复数据库命令只收缩主分片的存储,而不是辅助分片。
我们还需要缩小辅助分片以实现自动化。
是否有任何命令可以缩小 mongoDB 辅助节点?
我们不想重新同步它:这是一项太漫长而乏味的工作......
mongodb - errmsg" : "新配置 1 中没有描述副本集 rs0 映射到此节点的主机",为什么我收到此消息?
每次我都会收到此消息rs.initiate()
:
副本集 rs0 的新配置 1 中没有描述的主机映射到此节点
这就是我的/etc/hosts/文件在两个副本集服务器上的外观。
服务器 1 和服务器 2 “主机”文件
127.0.0.1 本地主机
aa.bb.cc.dd DataMongo1
ee.ff.gg.hh DataMongo2
服务器 1-mongod.conf 文件
绑定 IP aa.bb.cc.dd
服务器 2 -mongod.conf 文件
绑定 IP ee.ff.gg.hh
将 server1 主机名更改为 DataMongo1,将 server2 更改为 DataMongo2
$主机名 DataMongo1
两台服务器上的端口 27071 均未注释
副本集配置文件:
cfg= {
_id:"rs0",
members:[{_id:0,host:"DataMongo1:27071"},{_id:1,host:"DataMongo2:27071"}]}
请帮我解决这个问题。
c# - Can we set multiple write concerns for a replica set in MongoDB?
Say, I have set write concern for a replica set with 3 members as w = "majority". If a member of the replica set goes down, would it be possible that the write concern could change for such a scenario?
I read MongoDB: The definitive guide as well as read the MongoDB documentation, but could not find anything. But it seems like something that should be available to implement.
mongodb - 为什么 Heroku 上列出的我的 MongoDB 数据库 URI 有副本集选项,而 MongoLab 上列出的却没有?
我通过 Heroku 在 MongoLab 上设置了一个 MongoDB 数据库。我选择了免费的单节点沙盒计划,而不是任何副本集集群。
我在 MongoLab 上的数据库页面显示了以下用于连接数据库的 URI:
HerokuMONGOLAB_URI
在设置部分的配置变量下列出了相同的内容,但为其附加了一个副本集选项:?replicaSet=rs-ds012345
.
我知道如果 mongod 是副本集的成员,则副本集选项指定副本集的名称。
既然我在MongoLab上设置数据库的时候好像没有选择副本集集群方案,那么为什么Heroku的MONGOLAB_URI
配置变量似乎表明数据库是副本集的成员呢?
我应该在使用 Node.js 和 Express 构建的应用程序中使用哪个 URI?