Mongo主shell不显示replicaset下的数据

时间:2013-11-05 10:35:12

标签: mongodb

我已经部署了一个带有3台服务器的mongodb replicaSet(一个主服务器,一个辅助服务器和一个仲裁服务器)

服务器mongoA位于一台Linux机器上 mongoB(Secondary)和mongoB(arbitery)位于另一个Linux Machiene

如果我从mongoB Linux框启动主脚本并在mongoA上启动辅助和仲裁,我在mongoB linux机器上的数据库下看不到我的任何数据(集合),即使mongo shell显示为primary,反之亦然工作正常。

日志未显示任何错误。

请告诉我这是mongob机器中的预期行为吗?

这些是我从mongob收集的服务器的统计信息

at:PRIMARY> rs.conf()
{
    "_id" : "nat",
    "version" : 18,
    "members" : [
        {
            "_id" : 0,
            "host" : "mongoA:27017"
        },
        {
            "_id" : 1,
            "host" : "mongoB:27018"
        },
        {
            "_id" : 2,
            "host" : "mongoB:27019",
            "arbiterOnly" : true
        }
    ]
}

nat:PRIMARY> rs.status()
{
    "set" : "nat",
    "date" : ISODate("2013-11-05T09:57:30Z"),
    "myState" : 1,
    "members" : [
        {
            "_id" : 0,
            "name" : "mongoA:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 216,
            "optime" : Timestamp(1383315218, 1),
            "optimeDate" : ISODate("2013-11-01T14:13:38Z"),
            "self" : true
        },
        {
            "_id" : 1,
            "name" : "mongoB:27018",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",
            "uptime" : 150,
            "optime" : Timestamp(1383315218, 1),
            "optimeDate" : ISODate("2013-11-01T14:13:38Z"),
            "lastHeartbeat" : ISODate("2013-11-05T09:57:28Z"),
            "lastHeartbeatRecv" : ISODate("2013-11-05T09:57:28Z"),
            "pingMs" : 0,
            "syncingTo" : "mongoA:27017"
        },
        {
            "_id" : 2,
            "name" : "mongoB:27019",
            "health" : 1,
            "state" : 7,
            "stateStr" : "ARBITER",
            "uptime" : 134,
            "lastHeartbeat" : ISODate("2013-11-05T09:57:28Z"),
            "lastHeartbeatRecv" : ISODate("2013-11-05T09:57:29Z"),
            "pingMs" : 0
        }
    ],
    "ok" : 1
}

1 个答案:

答案 0 :(得分:1)

rs.status() mongoA:27017是主要,mongoB:27018是次要。辅助节点的状态是“syncingTo”:“mongoA:27017” - 这意味着辅助节点仍在同步到主节点(mongoA)。

您需要等待服务器同步,然后重试。