mongoDB - 添加分片会产生错误:主机不属于副本集

时间:2014-11-26 16:45:02

标签: mongodb

我正在尝试向我的群集添加一个replicaset(只有一个主要成员,因为这只是一个测试部署),我收到一条错误消息,如下所示:

me@medev:~$ mongo --host dc2-mg2.domain.org --port 27017
MongoDB shell version: 2.6.5
connecting to: dc2-mg2.domain.org:27017/test
mongos> sh.addShard("jjrs1/mghost.domain.org:27017")
{
    "ok" : 0,
    "errmsg" : "in seed list jjrs1/mghost.domain.org:27017, host mghost.domain.org:27017 does not belong to replica set jjrs1"
}
mongos> 

然而,当我登录mghost.domain.org并运行mongo shell,然后检查replicaset状态时,我得到以下结果:

jjrs1:PRIMARY> rs.status()
{
    "set" : "jjrs1",
    "date" : ISODate("2014-11-26T16:28:49Z"),
    "myState" : 1,
    "members" : [
        {
            "_id" : 0,
            "name" : "mghost:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 69680,
            "optime" : Timestamp(1417013013, 58),
            "optimeDate" : ISODate("2014-11-26T14:43:33Z"),
            "electionTime" : Timestamp(1416949715, 1),
            "electionDate" : ISODate("2014-11-25T21:08:35Z"),
            "self" : true
        }
    ],
    "ok" : 1
}
jjrs1:PRIMARY> 

你能告诉我还有什么可以检查来验证我的设置吗?这个错误发生在我尝试添加的所有3个副本集中(它们都只有1个主要成员)。 我有一个配置服务器...和一个查询路由器。

感谢。

1 个答案:

答案 0 :(得分:2)

我明白了。 根据rs.status()命令,mghost的名称不包括域。 所以我把sh.addShard命令更改为:

sh.addShard("jjrs1/mghost:27017")