MongoDB副本集主节点宕机后Secondary无法执行写入操作问题
MongoDB副本集主节点宕机后Secondary无法写入的解决方法
场景说明
我使用包含Primary、Secondary、Arbitrator三个节点的MongoDB副本集,Golang连接配置如下:
opts = options.Client().ApplyURI("mongodb://" + ipPort + "," + secIpPort + "/?replicaSet=" + repSetName).SetConnectTimeout(5 * time.Second).SetAuth(serverAuth).SetWriteConcern(writeconcern.New(writeconcern.WMajority()))
其中节点地址:
- ipPort= 192.168.1.237(原Primary节点)
- secIpPort= 192.168.1.239(Secondary节点)
已通过以下命令设置默认读写关注:
db.adminCommand({ "setDefaultRWConcern" : 1, "defaultWriteConcern" : { "w" : "majority", "j":true, "wtimeout" : 5000 }, writeConcern: { "w" : "majority", "j":true, "wtimeout" : 5000 }, })
问题:原Primary节点服务关闭后,Secondary节点能正常读,但无法执行写操作,需要让该节点在主节点宕机后支持读写。
核心原因
主节点宕机后,Secondary未被选举为新Primary,因此仅能提供读服务。三节点副本集(1主+1从+1仲裁)的majority投票阈值为2,理论上Secondary+Arbitrator的2票足够完成选举,未触发选举通常是集群感知不完整或配置问题导致。
解决步骤
1. 检查副本集选举状态
登录Secondary节点的MongoDB Shell,执行命令查看集群状态:
rs.status()
重点确认:
members数组中,原Primary的stateStr是否为DOWN,当前Secondary的stateStr是否为SECONDARY(而非PRIMARY)electionCandidateMetrics字段是否有选举尝试记录,是否存在错误信息
2. 补全连接字符串中的所有节点地址
当前连接字符串仅包含主、从节点,缺少仲裁节点地址,导致客户端无法完整感知集群,影响选举流程。修改连接字符串,加入仲裁节点的IP:Port:
// 假设仲裁节点地址为arbIpPort,例如192.168.1.xxx:27017 opts = options.Client().ApplyURI("mongodb://" + ipPort + "," + secIpPort + "," + arbIpPort + "/?replicaSet=" + repSetName).SetConnectTimeout(5 * time.Second).SetAuth(serverAuth).SetWriteConcern(writeconcern.New(writeconcern.WMajority()))
3. 确认副本集投票与优先级配置
登录任意可用节点的MongoDB Shell,查看副本集配置:
rs.conf()
检查:
- 所有节点的
votes字段:确保Arbitrator和Secondary的votes均为1(默认配置) - Secondary节点的
priority字段:确保值≥1(默认是1,具备选举资格)
若优先级被修改,可通过以下命令调整:
var cfg = rs.conf() // 假设Secondary是members数组的第2个元素(索引从0开始) cfg.members[1].priority = 1 rs.reconfig(cfg)
4. 验证选举结果
主节点宕机后等待约30秒(默认选举超时时间),再次执行rs.status(),确认Secondary的stateStr变为PRIMARY,此时该节点即可支持读写操作。
5. 调整写入关注(可选)
若选举成功但写入仍失败,可临时调整写入关注为w:1(仅需新主节点确认写入)测试:
opts = opts.SetWriteConcern(writeconcern.New(writeconcern.W(1), writeconcern.J(true), writeconcern.WTimeout(5000)))
生产环境建议保持w:"majority",确保数据一致性,前提是集群选举正常完成。
内容的提问来源于stack exchange,提问作者Rohit
相关产品推荐
相关产品推荐

