问题标签 [mongodb-replica-set]

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 投票
1 回答
168 浏览

node.js - MongoDB 副本集和 URL 服务器排序

我正在使用 nodejs,并且我有一个连接 URL:

如果 test-mongodb-2 不是主节点,则连接失败并显示:

我正在使用最新版本的驱动程序:2.1.21

有没有我错过的选项?

0 投票
1 回答
84 浏览

mongodb - system.user 数据库中的 Mongo 复制问题

当我从主节点注册时,我可以将用户添加到 systems.users 集合,但是当我从辅助节点添加用户时,主节点中的值没有更新,因此复制失败,主节点在美国,辅助节点是在欧洲。

我错过了什么吗?

0 投票
2 回答
3240 浏览

mongodb - MongoError:找不到有效的副本集成员

谁能解释在什么情况下会发生以下错误?

这是我连接到副本集的方式:

0 投票
0 回答
53 浏览

node.js - mongo 副本连接导致节点服务器崩溃

我正在使用代码集连接我的 mongo 副本集

不经常,但有时我会收到此错误并且我的节点崩溃,我什至不明白为什么会弹出此错误

谁能告诉我在什么情况下会弹出这个错误???

0 投票
1 回答
810 浏览

mongodb - 禁用对 mongodb 副本集的从属成员的读取操作

rs.slaveOk()在 MongoDB 副本集中的从属成员上启用读取操作。

用什么功能来禁用它?

0 投票
1 回答
677 浏览

mongodb - 为什么mongodb oplog是幂等的?即使是插入操作?

我正在学习mongodb的副本集功能,当我阅读这篇文章时: 副本集oplog

它说:

oplog 中的每个操作都是幂等的。也就是说,oplog 操作无论对目标数据集应用一次还是多次都会产生相同的结果。

这是什么意思?插入或删除操作肯定会产生不同的结果,应用一次而不是两次。

所以也许我错了或者有人解释一下?谢谢!

0 投票
1 回答
1985 浏览

mongodb - 由于 MongoDB 副本集的意外故障转移导致数据丢失

所以我最近遇到了以下问题:

我有一个 5 成员集副本集(优先级)

  • 1 x 初级 (2)
  • 2 x 二级 (0.5)
  • 1 x 隐藏备份 (0)
  • 1 x 仲裁器 (0)

具有 0.5 优先级的辅助副本之一(我们称之为B)遇到了一些网络问题,并且与副本集的其余部分存在间歇性连接。然而,尽管拥有比现有主节点(我们称之为A)更旧的数据和更低的优先级,但它承担了主节点角色:

[ReplicationExecutor] VoteRequester:没有从 xxx 获得投票,因为:候选人的数据比我的更旧,resp:{ term: 29, voteGranted: false, reason: "candidate's data is staler than mine", ok: 1.0 }

[ReplicationExecutor] 选举成功,在第 29 学期担任主要角色

[ReplicationExecutor] 过渡到 PRIMARY

对于A,尽管与副本集的其余部分没有任何连接问题:

[ReplicationExecutor] 从 primary 下台,因为一个新的任期已经开始:29

所以问题 1是,在这种情况下,这怎么可能?

继续前进,A(现在是次要的)开始回滚数据:

[rsBackgroundSync] 由于 OplogStartMissing 开始回滚:我们最后一次获取的操作时间:(术语:28,时间戳:xxx)。来源的 GTE: (term: 29, timestamp: xxx) hashes: (xxx/xxx)

[rsBackgroundSync] 开始回滚

[rsBackgroundSync] 回滚 0

[ReplicationExecutor] 过渡到 ROLLBACK

这导致被写入的数据被删除。所以问题 2 是: OplogStart 是如何丢失的?

最后但同样重要的是,问题 3,如何防止这种情况发生?

先感谢您!

0 投票
0 回答
47 浏览

mongodb - 防止从次要读取到主要

我有一个两机 MongoDB 副本集。主节点是私有的(内部使用),它保持平稳运行至关重要。次要是我们的主要公共副本,没有投票权。二级崩溃(例如,如果机器上的读取负载过多)并不重要。

我希望辅助服务器承担来自公共互联网的所有读取负载。我已使用rs.slaveOk(). 但是,仍然可以将读取首选项设置primary为从主数据库读取。

如何防止辅助节点将读取转发到主节点,从而导致主节点超载?

0 投票
1 回答
1963 浏览

node.js - 无法在 MongoDB 中添加分片

我正在尝试部署 mongodb 分片。我已经在三台机器上部署了一个副本集。sh.addShard("test/mongodb1.example.net:27017")但是,当我尝试到所有三个节点时,我似乎仍然无法使其工作。显示的错误是:

另一个错误:

1)为每个节点设置初始副本集(这工作正常)

a) 为所有 3 个节点运行这些:

b) 主节点运行:

2)为三副本集群设置配置服务器和查询路由器(这工作正常)

主节点运行:

3)添加分片(添加分片的问题)

主节点运行:

0 投票
1 回答
378 浏览

mongodb - MongoDB Replicaset Primary 失败

我正在探索 MongoDB 副本集,我想知道如何处理应用程序的故障转移。

以下是我的场景:

假设我有一个包含三个节点的副本集,比如 A(主要)、B(次要)和 C(次要)。

1.从我的应用程序中,我应该连接到哪个主机?一种?

2.主机A出现故障会怎样?一个辅助(比如 B)将接管为主。我的应用程序是否应该设计为处理这种转换并现在连接到 B?

提前致谢。我一直对如何设计应用程序同时保持副本集的高可用性感到困惑。