0

3 つのサーバー (1 つのプライマリ、セカンダリ、および arbitery) で mongodb replicaSet をデプロイしました。

サーバーmongoAは1つのLinuxマシンに配置され、mongoB(セカンダリ)とmongoB(arbitery)は別のLinuxマシンに配置されています

mongoB Linux ボックスからプライマリ スクリプトを開始し、mongoA でセカンダリと任意のスクリプトを開始すると、mongoB Linux マシンのデータベースの下にデータ (コレクション) が表示されませんでしたが、mongo シェルはプライマリを示しています。逆もまた同様です。 .

ログにエラーは表示されません。

これが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
}
4

2 に答える 2

1

あなたのrs.status()mongoA:27017 はprimaryで、 mongoB:27018 はsecondaryです。セカンダリのステータスは "syncingTo" : "mongoA:27017" です。これは、セカンダリがまだプライマリ (mongoA) と同期していることを意味します。

サーバーが同期するのを待ってから、再試行する必要があります。

于 2013-11-05T11:59:08.067 に答える