
仲裁节点不存数据仅参与选举投票以打破僵局必须用rs.addArbiter()添加确保replSet名一致、网络可达、DNS可解析且不可与主节点同机部署。仲裁节点不存数据但能决定谁当主节点仲裁节点arbiter本身不保存任何业务数据也不提供读写服务只参与选举投票。它存在的唯一目的是在主节点宕机、剩余数据节点数为偶数时打破投票僵局确保副本集能选出新主节点。所以别指望它分担读压力或备份数据——它就是个“举手投票的裁判”。常见错误现象rs.status() 显示 stateStr : ARBITER但应用连接时反复报 NotMasterNoSlaveOk 或超时或者添加后副本集状态卡在 STARTUP2 不动。必须用 rs.addArbiter() 添加不能用 rs.add() 加普通节点再改配置——后者会失败并留下脏状态仲裁节点的 host 必须能被所有数据节点通过 DNS 或 hosts 解析通否则心跳失败直接被踢出集群不要把仲裁节点和主节点部署在同一台物理机或同一可用区——它本该提升容灾能力而不是放大单点风险怎么加一个仲裁节点三步走少一步都选不出主加仲裁节点不是“启动 mongod 就完事”关键在初始化阶段的配置对齐。最常踩的坑是mongod 进程启动了但没进副本集或者进了但端口/域名没对上。实操顺序在目标机器上启动 mongod**必须带 --replSet 参数且值与现有副本集名完全一致**例如mongod --replSet rs0 --port 27017 --bind_ip localhost连上任意一个已有数据节点在 shell 里执行rs.addArbiter(arbiter-host:27017) —— 注意这里填的是仲裁节点的可访问地址不是 localhost除非所有节点都在本机立刻执行 rs.status()确认新节点出现在数组里且 stateStr 是 ARBITERhealth 是 1如果卡在 RECOVERING 或 UNKNOWN大概率是网络不通或 replSet 名不一致rs.conf() 里检查 members[n].arbiterOnly: true 是否已自动设为 true。 自由画布 百度文库和百度网盘联合开发的AI创作工具类智能体