4

3 つのメンバーでレプリカ セットをセットアップし、そのうちの 1 つはアービターです。

メンバーを再起動すると、データベースが大きくなくても、メンバーは長時間 RECOVERING を維持し、再び SECONDARY になりませんでした。

レプリカ セットのステータスは次のようになります。

rs:PRIMARY> rs.status()
{
        "set" : "rs",
        "date" : ISODate("2013-01-17T02:08:57Z"),
        "myState" : 1,
        "members" : [
                {
                        "_id" : 1,
                        "name" : "192.168.1.52:27017",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 67968,
                        "optime" : Timestamp(1358388479000, 1),
                        "optimeDate" : ISODate("2013-01-17T02:07:59Z"),
                        "self" : true
                },
                {
                        "_id" : 2,
                        "name" : "192.168.1.50:29017",
                        "health" : 1,
                        "state" : 7,
                        "stateStr" : "ARBITER",
                        "uptime" : 107,
                        "lastHeartbeat" : ISODate("2013-01-17T02:08:56Z"),
                        "pingMs" : 0
                },
                {
                        "_id" : 3,
                        "name" : "192.168.1.50:27017",
                        "health" : 1,
                        "state" : 3,
                        "stateStr" : "RECOVERING",
                        "uptime" : 58,
                        "optime" : Timestamp(1358246732000, 100),
                        "optimeDate" : ISODate("2013-01-15T10:45:32Z"),
                        "lastHeartbeat" : ISODate("2013-01-17T02:08:55Z"),
                        "pingMs" : 0,
                        "errmsg" : "still syncing, not yet to minValid optime 50f6472f:5d"
                }
        ],
        "ok" : 1
}

この問題を解決するにはどうすればよいですか?

4

4 に答える 4

6

まったく同じ問題がありました: レプリカのセカンダリ メンバーが回復モードでスタックしました。問題を解決する方法は次のとおりです。

  1. セカンダリ mongo db を停止します
  2. すべてのセカンダリ db データ ファイルを削除します
  3. セカンダリモンゴを開始

startup2 モードで起動し、プライマリからすべてのデータを複製します

于 2015-03-11T11:21:24.180 に答える
1

これは、レプリケーションがしばらく中断され、スレーブでレプリケーションを再開するのに十分なデータがない場合に発生します。

データを最初から複製するか、別のサーバーからコピーしてから再開することにより、スレーブを再同期する必要があります。

于 2016-04-15T21:10:30.087 に答える