13

3つのmongoサーバー上にレプリカセットをセットアップし、5GBのデータをインポートしました。セカンダリサーバーのステータスが「RECOVERING」と表示されるようになりました。「回復」の意味とこの問題の解決方法を教えてください。

状況は以下の通りです

rs.status()
{
    "set" : "kutendarep",
    "date" : ISODate("2013-01-15T05:04:18Z"),
    "myState" : 3,
    "members" : [
        {
            "_id" : 0,
            "name" : "10.1.4.138:27017",
            "health" : 1,
            "state" : 3,
            "stateStr" : "RECOVERING",
            "uptime" : 86295,
            "optime" : Timestamp(1357901076000, 4),
            "optimeDate" : ISODate("2013-01-11T10:44:36Z"),
            "errmsg" : "still syncing, not yet to minValid optime 50f04941:2",
            "self" : true
        },
        {
            "_id" : 1,
            "name" : "10.1.4.21:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 86293,
            "optime" : Timestamp(1358160135000, 18058),
            "optimeDate" : ISODate("2013-01-14T10:42:15Z"),
            "lastHeartbeat" : ISODate("2013-01-15T05:04:18Z"),
            "pingMs" : 0
        },
        {
            "_id" : 2,
            "name" : "10.1.4.88:27017",
            "health" : 1,
            "state" : 3,
            "stateStr" : "RECOVERING",
            "uptime" : 86291,
            "optime" : Timestamp(1357900674000, 10),
            "optimeDate" : ISODate("2013-01-11T10:37:54Z"),
            "lastHeartbeat" : ISODate("2013-01-15T05:04:16Z"),
            "pingMs" : 0,
            "errmsg" : "still syncing, not yet to minValid optime 50f04941:2"
        }
    ],
    "ok" : 1
4

2 に答える 2

12

「RECOVERING」レプリカ セット ノードのメッセージは、これらがまだ初期同期を実行中であることを意味します。これらのノードは、セカンダリ状態に移行するまで読み取りに使用できません。

初期同期にはいくつかのステップがあります。

レプリカ セットの同期プロセスの詳細については、http: //docs.mongodb.org/manual/core/replica-set-sync/を参照してください。

于 2013-03-04T15:07:25.037 に答える
3

RECOVERING インスタンスにログインします。RECOVERINGインスタンスのレプリケーション ステータス
確認します. 次のような結果が得られます.
db.printReplicationInfo()

oplog の最初のイベント時間: Tue Jul 30 2019 17:26:37 GMT+0000 (UTC)
oplog の最後のイベント時間: Wed Jul 31 2019 16:46:53 GMT+0000
now: Thu Aug 22 2019 07:36:38 GMT+ 0000 (UTC)

oplog の前回のイベント時間現在の違いを見つけた場合。

つまり、この特定のインスタンスはPRIMARYおよびSECONDARYではなく、レプリカ セットのアクティブなメンバーでもありません。

この
最初の2 つの解決策があり ます。 1. RECOVERING インスタンス
ログインします。 2. /data/dbなる 既存のデータベースからデータを削除します。指定された場所からその mongod.pid を削除します。


Error starting mongod. /var/run/mongod/mongod.pid


5. インスタンスを再起動します。
6. これで、復旧中のインスタンスが実行状態
になり、RECOVERING の代わりに PRIMARY または Secondary が表示されます。

次に、実行中の他のインスタンスデータRECOVERING インスタンス
に コピーし、 mongodb を再起動します。

于 2019-08-22T11:16:17.593 に答える