我正在尝试使用MongoDb创建一个副本集,服务器的主机名是:

主机名
主机名-1
主机名2

这些文件的每一个都在/ etc / hosts文件中详细列出了所有相关的主机名(它们都运行64位Ubuntu 10.04)

当我在一个节点上执行rs.initiate时,一切似乎都开始良好。运行rs.status();显示:

{
    "set" : "vega",
    "date" : ISODate("2012-01-22T19:15:55Z"),
    "myState" : 1,
    "members" : [
        {
            "_id" : 0,
            "name" : "hostname:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "optime" : {
                "t" : 1327254848000,
                "i" : 1
            },
            "optimeDate" : ISODate("2012-01-22T17:54:08Z"),
            "self" : true
        }
    ],
    "ok" : 1
}

当我尝试将新成员添加到副本集时出现问题。我使用命令rs.add(hostname-1);我收到以下错误:
{
    "assertion" : "need most members up to reconfigure, not ok : vega-1:27017",
    "assertionCode" : 13144,
    "errmsg" : "db assertion failure",
    "ok" : 0
}

我尝试了使用主机名和IP地址的各种组合,无论是否使用端口号,我总是遇到相同的问题。主机名正在解析,我尝试ping主机名-1,并且工作正常。

是否有人对导致此问题的原因有任何想法?

不幸的是,在Mongo文档中,没有在真实场景中设置副本集的示例,仅在同一台计算机上使用三个实例,这显然毫无用处。

在此先感谢您的帮助!

最佳答案

在您的配置中删除它:

bind_ip = 127.0.0.1

该选项当前与mongodb副本集不兼容。

关于mongodb - 在MongoDb上的副本集中添加成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8963903/

10-09 22:51