从 mongo 副本集中删除辅助副本而不触发重新选举?
昨天我不得不向我的副本集添加一个新的辅助节点,以便我可以对另一个辅助节点进行维护。现在维护已完成,我想删除其中一个辅助节点以恢复到我的原始配置。 问题是,我发现在进行投票时,主节点总会暂时降级为辅助节点。这很好,但是有没有什么方法可以避免这种情况发生?我的写入负载相当重,我不想让任何写入失败。 感谢任何帮助! 谢谢,丹 ...
昨天我不得不向我的副本集添加一个新的辅助节点,以便我可以对另一个辅助节点进行维护。现在维护已完成,我想删除其中一个辅助节点以恢复到我的原始配置。 问题是,我发现在进行投票时,主节点总会暂时降级为辅助节点。这很好,但是有没有什么方法可以避免这种情况发生?我的写入负载相当重,我不想让任何写入失败。 感谢任何帮助! 谢谢,丹 ...
我在副本集中设置了一个简单的 mongodb,其中有 1 个实际实例和 1 个仲裁器(以避免冲突)。这是因为我们的负载增加,所以需要扩展副本集以包含更多实例。 如果我通过 shell 访问 mongodb,我会正确地得到PRIMARY >提示,并且运行rs.status()告诉我一切都很好。 我有一个 node.js 服务器正在访问数据库,使用在 github 上找到的 mongodb-native 驱动程序,版本 0.9.9-8。但是,偶尔它会崩溃并出现以下错误:Unable to connect to database: Error: no p...
我正在寻找涵盖 AWS 托管环境内的 MongoDB 灾难恢复的最佳实践建议。 目前我们的设置相当标准,副本集由 3 台服务器组成(1 台主服务器、1 台辅助服务器和 1 台仲裁服务器),主服务器和辅助服务器上的 mongo 卷由 EBS 支持。全部位于一个区域,分布在多个可用区。最终我们需要跨区域,但这是另一天的讨论。 我在 Mongo 文档中看到的备份建议谈到了 EBS 快照(很容易实现自动化)。但是,如果发生灾难,它们无法让我们回到发生故障时的状态。 我是否需要记录 oplog 并在发生故障后使用它们进行恢复? 我是否应该在副本集中启动另一...
我正在尝试设置一个副本集,但是当我发出: rs.initiate() 在第一台服务器上,我收到以下错误: { "errmsg" : "need to login", "ok" : 0 } 但这很奇怪,因为在我的配置中auth: true它被注释掉了。 有任何想法吗? ...
我正在运行三个 mongo (4.0.4) 容器在 docker 中配置了副本集,运行了 10 个月,没有出现任何问题。主 mongo 容器/副本集与运行 spring 的 spring boot 应用程序连接2.1.1使用 mongo 事务。 在假期期间,我所有的 mongo db 集合都消失了,所有创建的集合和其中的数据都消失了。由于我在 spring boot 中安排了一些进程,而该进程正在将数据插入一个集合中,因此创建了该集合并插入了数据,这是该进程的正确运行方式(如果尚未创建集合,spring boot 会自动创建集合),所以当我发现我丢失了...
我正在尝试将副本集协议更改为 pv1。我有 5 个副本集服务器 Mongo 3.6。我正在使用此处的文档https://docs.mongodb.com/manual/reference/replica-set-protocol-versions/做出这些改变。 文档非常清晰,操作似乎很简单https://docs.mongodb.com/manual/reference/replica-set-protocol-versions/#modify-replica-set-protocol-version。在主服务器上我执行了以下三个命令: cfg = r...
我在 VPN 中的 3 个 Windows Server 2012 R2 上运行副本集。服务器 IP 为:192.168.1.1、192.168.1.2、192.168.1.3。 MongoDB 版本:3.4.2 我想将对 MongoDB 服务器的访问仅限于属于副本集的服务器,因此在每个服务器中。我正在使用此 bind_ip 配置运行 MongoDB(假设我们在 192.168.1.1 服务器上): net: bindIp: [127.0.0.1,192.168.1.2,192.168.1.3] 我可以连接到我的副本并且一切都按预期工作。 ...
我登录到辅助服务器并使用管理员;db.shutdownServer(),然后使用“sudo shutdown”关闭整个服务器。在主服务器上,我正在运行 rs.status()。 对于处于离线状态的辅助服务器,我看到: "health" : 1, "state" : 2, "stateStr" : "SECONDARY", 我还看到lastHeartbeat更新,但lastHeartbeatRecv没有更新。我预计如果成员处于离线状态,健康/状态字段会发生变化,但事实并非如此。我如何监控我的副本集成员以查看它们是否处于离线状态?...
我是新手,所以请耐心等待。 我在终端中使用此命令$ sudo mongod --config /etc/mongod2.conf启动 mongodb 服务实例。在另一个终端中,我运行了$ mongo --port XXXXXXXX 是我在mongod.conf文件。 rs. 启动()在 mongo shell 中为什么会出现错误 "errmsg" : "assertion src/mongo/db/repl/replset_commands.cpp:275", "code" : 8 ? 编辑: **mongodb version v3.2.12...
我有一个 mongoDB replicaSet,它有 3 个数据库 - PRIMARY/SECONDARY + Arbiter。所有 3 个都以相同的方式安装 - 这意味着它们具有带有默认密码的管理数据库。 现在 - 我想更改默认密码。在主/辅密码上,它运行良好。 mongo admin -u admin -p <password> --authenticationDatabase=admin db.changeUserPassword("admin",<new password>) 但是,在仲裁器中它不起作用(即使rs.sl...
如果副本集中的所有节点都发生故障,只剩下 1 个辅助节点,该怎么办?无法对辅助节点执行操作。它也不会选择自己作为主节点。 ...
我想知道是否有人遇到过从 3.0.9 升级到 3.2.8 时 $external 用户数据库未被复制的问题? 我有一个现有的 3.0.9 副本集环境,运行中没有加密通信(无 TLS)也没有身份验证;该环境运行良好。但是当我使用具有 TLS 和 RBAC(使用 $external)的 3.2.8 进行升级时,集群中的 SECONDARY 成员似乎没有获得 $external 用户数据。 如果我使用我的配置执行 3.2.8 的原始安装,它会正常工作,也就是说,连接到副本集并从主节点读取/写入或仅从辅助节点读取的应用程序可以连接并进行身份验证。但是,如果我尝试...
今天,我们的 MongoDB 3.0.12 分片集群的一位用户(错误地)在其自己的数据库(pride_archive_ms)上发布了前台索引构建,在每个副本集(分片)的主成员上完成操作后,它被复制到辅助成员。 我原本以为索引构建仍在进行的数据库会被阻止读写,但实际上全部使用 secondary 或 secondaryPreferred 读取首选项时,数据库的读/写操作会被阻止。任何打开的会话都将被附加。这是预期的行为吗?文档报告称: 任何需要对所有数据库进行读或写锁定的操作(例如 listDatabases)都将等待前台索引构建完成。 但在我们...
如果我仅在 2 个数据中心部署 MongoDb 副本集,如果一个整个数据中心发生故障,是否可以自动故障转移到另一个数据中心? 考虑以下情况:1 个数据中心有主节点、辅助节点和仲裁节点,而第二个数据中心有 2 个辅助成员。本质上,这是一个 5 个成员的副本集。 如果数据中心 2 出现故障,数据中心 1 的副本集中仍会有 3 个成员。这很好。 反过来,如果数据中心 2 保持正常运行,而数据中心 1 发生故障,则 5 个成员副本集中将只剩下 2 个成员。这不足以让任何一个辅助节点投票成为主节点。 是这样吗?如果不是,我做错了什么。 如果这不可能,请告诉我...
我正在尝试在 MongoDB 版本 3.04 中创建副本集。我按照此操作教程并在尝试使用主服务器添加节点时出现以下错误: vacrep:PRIMARY> rs.add('server address here') { "ok" : 0, "errmsg" : "Quorum check failed because not enough voting nodes responded; required 2 but only the following 1 voting nodes responded: PRIMARYSERV...