我正在尝试设置副本集但不成功。
以下是所有服务器/etc/mongodb.conf的配置文件:
security:
keyFile: /opt/svn/mhealth-server-config/etc/mongokey
replication:
replSetName: rs0
这是主服务器的rs.status()命令的结果
{
"set" : "rs0",
"date" : ISODate("2017-10-05T08:00:57.599Z"),
"myState" : 1,
"term" : NumberLong(22),
"heartbeatIntervalMillis" : NumberLong(2000),
"optimes" : {
"lastCommittedOpTime" : {
"ts" : Timestamp(1507190457, 90),
"t" : NumberLong(22)
},
"appliedOpTime" : {
"ts" : Timestamp(1507190457, 121),
"t" : NumberLong(22)
},
"durableOpTime" : {
"ts" : Timestamp(1507190457, 90),
"t" : NumberLong(22)
}
},
"members" : [
{
"_id" : 0,
"name" : "......",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 1256,
"optime" : {
"ts" : Timestamp(1507190457, 121),
"t" : NumberLong(22)
},
"optimeDate" : ISODate("2017-10-05T08:00:57Z"),
"electionTime" : Timestamp(1507189204, 1),
"electionDate" : ISODate("2017-10-05T07:40:04Z"),
"configVersion" : 1,
"self" : true
}
],
"ok" : 1
}
接下来,我尝试将第二台服务器添加到副本集,它打印出以下错误消息:
{
"ok" : 0,
"errmsg" : "Our replica set ID of 58fcaf004dd51cd984051968 did not match that of 13.76.170.50:27017, which is 59d3668ea39e555205ab2761",
"code" : 103,
"codeName" : "NewReplicaSetConfigurationIncompatible"
}
很明显,两台服务器都具有相同的副本集名称“rs0”,所以我不知道是什么原因导致了这个问题。我看过this thread但它并没有解决我的问题。非常感谢任何帮助。
答案 0 :(得分:0)
发现问题是在seconary服务器中,它将'rs1'副本集名称存储在数据路径中,所以即使我在配置文件中放入'rs0'它也不会识别它并仍然以'rs1'开头“
我的解决方案,不是理想的解决方案,但它有效。我从辅助服务器中删除了完整的数据路径,因此它不会记住'rs1',然后再次启动它。