web-dev-qa-db-ja.com

ノードはプライマリまたはリカバリ状態ではありません

私の設定ファイルは:

_systemLog:
    destination: file
    logAppend: true
    path: c:\data\log\mongod.log
storage:
    dbPath: c:\data\db
    journal:
        enabled: true
replication:
   replSetName: "rs0"
net:
   bindIp: 127.0.0.1
   port: 27017
security:
     authorization: enabled
_

だから、私はmongodプロセス経由で正常に接続しています: enter image description here

次にmongoに接続し、データベースとコレクションを開こうとします: enter image description here

そしてエラーが出る:

_2018-07-07T15:40:25.092+0300 E QUERY    [thread1] Error: error: {
        "operationTime" : Timestamp(0, 0),
        "ok" : 0,
        "errmsg" : "node is not in primary or recovering state",
        "code" : 13436,
        "codeName" : "NotMasterOrSecondary",
        "$clusterTime" : {
                "clusterTime" : Timestamp(0, 0),
                "signature" : {
                        "hash" : BinData(0,"FshG5mLBvAQUizPHXGfCITV4ZKA="),
                        "keyId" : NumberLong("6573732769795407873")
                }
        }
}
_

このエラーを回避するために、コマンドrs.initiate()を次のように使用しています: enter image description here しかし、このエラーはどういう意味ですか?ありがとう。

2
invzbl3

このノードをレプリカセットメンバーとして構成しました。

_ replication:
     replSetName: "rs0"
_

起動時に、新しいMongoDBサーバーにはまだレプリカセット構成がありません。サーバーは不明な レプリカセットメンバーの状態 になります このメンバーを既存のレプリカセットに追加する 構成、またはrs.initiate()を使用して設定するまで新しいレプリカセットの最初のメンバー。

現在の状態はrs.status()で確認できます。構成のないサーバーは、MongoDB 4.0で次のようなものを報告します(正確な出力はサーバーのバージョンによって異なる場合があります)。

_> rs.status()
{
    "operationTime" : Timestamp(0, 0),
    "ok" : 0,
    "errmsg" : "no replset config has been received",
    "code" : 94,
    "codeName" : "NotYetInitialized",
    "$clusterTime" : {
        "clusterTime" : Timestamp(0, 0),
        "signature" : {
            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
            "keyId" : NumberLong(0)
        }
    }
}
_

レプリカセットに追加したら、rs.status()およびrs.conf()を使用して、現在のレプリカセットのステータスと構成をそれぞれ確認できます。

2
Stennie