Vic*_*ena 6 replication mongodb
我试图设置一个具有两个节点的副本集:Node0和Node1.从Node0我初始化了一个名为"rs0"的副本集,并将Node1添加到它.问题是它被添加为主节点而不是辅助节点,最终结果是具有两个主节点的副本集.
这是rs.status()
从Node0 执行命令的结果
"set" : "rs0",
"date" : ISODate("2012-10-23T21:03:37Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "Node0:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 61185,
"optime" : Timestamp(1350967947000, 1),
"optimeDate" : ISODate("2012-10-23T04:52:27Z"),
"self" : true
},
{
"_id" : 1,
"name" : "Node1:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 58270,
"optime" : Timestamp(1350956423000, 1),
"optimeDate" : ISODate("2012-10-23T01:40:23Z"),
"lastHeartbeat" : ISODate("2012-10-23T21:03:37Z"),
"pingMs" : 0
}
],
Run Code Online (Sandbox Code Playgroud)
如果我从Node1执行相同的命令,则列出的唯一节点本身就是.请注意,pingMs为0.尝试添加第三个节点或仲裁器会产生类似的结果:每个节点都添加为主节点,pingMS始终为0.
您提到您rs.initiate()
在两台服务器上运行.这应该只在一个上完成.
我建议您从头开始,删除每个节点的dbpath目录(如果db不为空,则备份数据).然后,启动所有mongod进程,登录其中一个,然后调用
rs.initiate()
rs.add(<other node 1>)
另一个节点自动通过第一个节点获取副本集配置.对要添加的每个其他节点重复`rs.add().