0

我创建了一个包含 3 个成员的 mongodb 副本集。它们是同步的,但如果我尝试通过 Robomongo 和 webapp 连接到辅助成员,它就不起作用。我得到 slaveOK 设置为 false 的错误,但我刚刚将 rs.slaveOk() 设置为副本集的每个成员。

如果我通过 shell 连接,我不会收到错误消息,我可以列出所有内容。如果次要成员成为主要成员,我也可以通过 Robomongo 从中读取。

MongoDB 外壳版本:2.6.10

这是 rs.status()

rs:PRIMARY> rs.status()
{
    "set" : "gmrrs",
    "date" : ISODate("2015-06-25T16:14:53Z"),
    "myState" : 1,
    "members" : [
        {
            "_id" : 0,
            "name" : "****",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 2014,
            "optime" : Timestamp(1435246594, 1208),
            "optimeDate" : ISODate("2015-06-25T15:36:34Z"),
            "electionTime" : Timestamp(1435248124, 1),
            "electionDate" : ISODate("2015-06-25T16:02:04Z"),
            "self" : true
        },
        {
            "_id" : 1,
            "name" : "***:27019",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",
            "uptime" : 774,
            "optime" : Timestamp(1435246594, 1208),
            "optimeDate" : ISODate("2015-06-25T15:36:34Z"),
            "lastHeartbeat" : ISODate("2015-06-25T16:14:52Z"),
            "lastHeartbeatRecv" : ISODate("2015-06-25T16:14:52Z"),
            "pingMs" : 0,
            "syncingTo" : "****:27018"
        },
        {
            "_id" : 2,
            "name" : "****:27020",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",
            "uptime" : 759,
            "optime" : Timestamp(1435246594, 1208),
            "optimeDate" : ISODate("2015-06-25T15:36:34Z"),
            "lastHeartbeat" : ISODate("2015-06-25T16:14:51Z"),
            "lastHeartbeatRecv" : ISODate("2015-06-25T16:14:51Z"),
            "pingMs" : 1,
            "syncingTo" : "***:27018"
        }
    ],
    "ok" : 1
}

这里是 rs.conf()

 rs:PRIMARY> rs.conf()
{
    "_id" : "rs",
    "version" : 3,
    "members" : [
        {
            "_id" : 0,
            "host" : "***:27018"
        },
        {
            "_id" : 1,
            "host" : "***:27019"
        },
        {
            "_id" : 2,
            "host" : "***:27020"
        }
    ]
}

我想只在一台服务器上写,然后读给所有服务器。

任何人都可以帮忙吗?

谢谢,尼古拉

4

1 回答 1

0

Robomongo 目前无法查询副本集中的辅助实例:https ://github.com/paralect/robomongo/issues/116

于 2015-08-14T19:14:25.007 回答