Mongodb Mongo复制集

Mongodb Mongo复制集,mongodb,replication,Mongodb,Replication,我只是根据在线说明设置了一个副本集 我有这样的配置: { "_id" : "rs0", "members" : [ { "_id" : 0, "host" : "10.0.8.10:27017" } ] } 我运行了rs.initiate()命令。没有问题 好的,所以我去设置第二个节点,我做了同样的事情(当然是使用不同的IP)。 我再次运行rs.initiate()命令,没有出现问题 我运行

我只是根据在线说明设置了一个副本集

我有这样的配置:

{
    "_id" : "rs0",
    "members" : [
        {
            "_id" : 0,
            "host" : "10.0.8.10:27017"
        }
    ]
}
我运行了rs.initiate()命令。没有问题

好的,所以我去设置第二个节点,我做了同样的事情(当然是使用不同的IP)。 我再次运行rs.initiate()命令,没有出现问题

我运行rs.add命令,提供我的第一个实例的IP/端口。没问题

最后,我从另一个节点运行rs.add命令,并引用前一个节点。 现在我明白了:

rs0:PRIMARY> rs.add("10.0.0.10:27017");
{
    "errmsg" : "exception: member 10.0.0.10:27017 has a config version >= to the new cfg version; cannot change config",
    "code" : 13341,
    "ok" : 0
}

这是什么意思?我该如何修复它?这两个节点都是从相同的Mongo版本创建的。

您不需要在另一个节点上运行
rs.initiate()
。将节点添加到配置后,在第一个节点上运行
rs.initiate()
,将启动整个副本集


导致此错误的原因是复制集已使用您在第二次运行
rs.initiate()
时设置的配置版本启动。

您不需要在另一个节点上运行
rs.initiate()
。将节点添加到配置后,在第一个节点上运行
rs.initiate()
,将启动整个副本集

导致此错误的原因是,复制集已使用您在第二次运行
rs.initiate()
时设置的配置版本启动。

对于任何给定的复制集,rs.initiate()命令只能使用一次。您可以选择将集合的所有成员指定为命令的选项,如下所示:

rs.initiate({_id:'rs0', members:[{_id:0, host:'10.0.8.10:27017'},{_id:1, host:'10.0.0.10:27017'}]})
配置replicaset后,可以使用rs.add()添加新成员。如果选择此方法,则将使用单个成员初始化集合,然后从主节点执行rs.add()

rs.initiate({_id:'rs0', members:[{_id:0, host:'10.0.8.10:27017'}]})
rs.add('10.0.8.10:27017')
对于任何给定的复制集,rs.initiate()命令只能使用一次。您可以选择将集合的所有成员指定为命令的选项,如下所示:

rs.initiate({_id:'rs0', members:[{_id:0, host:'10.0.8.10:27017'},{_id:1, host:'10.0.0.10:27017'}]})
配置replicaset后,可以使用rs.add()添加新成员。如果选择此方法,则将使用单个成员初始化集合,然后从主节点执行rs.add()

rs.initiate({_id:'rs0', members:[{_id:0, host:'10.0.8.10:27017'}]})
rs.add('10.0.8.10:27017')

你不从另一个成员发起,这就是问题你不从另一个成员发起,这就是问题