rs.reconfig报"Quorum check failed"等错误的直接原因是配置中host不可达或旧IP残留导致仲裁失败;须确保端口连通、版本递增、优先更新配置再操作,并同步DNS、驱动缓存与防火墙。rs.reconfig 报错 "Quorum check failed" 或 "Node not reachable"直接原因:新配置里某个 host 地址不可达,或旧节点还在用原IP尝试通信,导致多数派无法形成。MongoDB 不会自动探测网络连通性,它只按 membersn.host 字段发起连接,失败就卡在投票阶段。实操建议:先确保所有节点(包括要下线的旧IP节点)能用新IP互相 telnet 通 27017 端口------不是 ping,是端口连通性临时把变更节点设为 priority: 0 和 votes: 0,避免它参与选举干扰仲裁用 rs.status() 确认当前 config version 和 term,新配置的 version 必须比当前大 1,term 不能降级不要在 primary 上直接改自己的 host;先把它降为 secondary(rs.stepDown()),再 reconfig修改 membersn.host 后 rs.reconfig 被拒绝:"replSetReconfig old config version too old"本质是配置版本冲突:你读出来的旧配置已被其他节点更新过,rs.reconfig() 要求原子性,不允许基于过期快照覆盖。实操建议:每次操作前都重新执行 rs.conf() 拿最新配置,别复用之前存的变量编辑时只改目标节点的 host 字段,不动 _id、votes、priority 等其他字段(除非你明确要调)如果集群有隐藏节点或延迟节点,它们也必须出现在新配置里,哪怕只是 host 更新了------遗漏会导致校验失败用 rs.reconfig(newConf, {force: true}) 是危险操作,仅当 primary 已彻底失联且你确认其他节点数据一致时才考虑变更后 secondary 启动报错 "No host described in new configuration X for replica set Y"这是启动时加载的 mongod.conf 里 replication.replSetName 和实际配置中 _id 不匹配,或者该节点没被包含在新 members 数组里。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。
相关推荐
kobe_OKOK_4 小时前
DRF接口幂等操作廿士4 小时前
python脚本使用相关正儿八经的少年4 小时前
布隆过滤器(解决redis缓存穿透步骤之一)青 春 记 忆4 小时前
零基础入门python19:Flask账本第一步——应用工厂、蓝图和健康检查朦胧之4 小时前
Python 后端核心知识xrandzj5 小时前
MySQL8.0 从零通关核心操作手册(Ubuntu实战版)我不会插花弄玉5 小时前
4.数据类型【由浅入深-MySQL】denggun123455 小时前
yieldltl5 小时前
SQLite Rollback Journal:写前拷贝与提交点ltl5 小时前
TiFlash Learner:Raft 日志如何进列存