私は、最終的にレポートに使用される隠されたセカンダリMongoDBインスタンスを作成しています。これまでのところ私は、これらの措置を講じていますMongoDBの隠れたセカンダリが起動時にスタックしましたか?
- は
replSet = mySet
と私のプライマリ・インスタンス(ローカルマシン)を起動し、私のプライマリ・インスタンス から
- にして、私の第二のインスタンスを起動
rs.initiate()
- と呼ばれます
- セットと
hidden = true
rs.reconfigure(cfg)
rs.add("my.secondary.com")
呼び出さ
replSet = mySet
私はこれを行うとrs.status()
を呼び出すと、私は次のような出力を得る:私の第二のためstateStr
がSTARTUP
であることを
{
"set": "mySet",
"date": ISODate("2016-03-22T16:40:39.515Z"),
"myState": 1,
"members": [
{
"_id": 0,
"name": "my-machine.local:27017",
"health": 1,
"state": 1,
"stateStr": "PRIMARY",
"uptime": 607,
"optime": Timestamp(1458664559, 1),
"optimeDate": ISODate("2016-03-22T16:35:59Z"),
"electionTime": Timestamp(1458664264, 2),
"electionDate": ISODate("2016-03-22T16:31:04Z"),
"configVersion": 3,
"self": true
},
{
"_id": 1,
"name": "my.secondary.com:27017",
"health": 1,
"state": 0,
"stateStr": "STARTUP",
"uptime": 384,
"optime": Timestamp(0, 0),
"optimeDate": ISODate("1970-01-01T00:00:00Z"),
"lastHeartbeat": ISODate("2016-03-22T16:40:38.332Z"),
"lastHeartbeatRecv": ISODate("1970-01-01T00:00:00Z"),
"pingMs": 106,
"configVersion": -2
}
],
"ok": 1
}
お知らせ - これは変化しないとデータが複製されませんが。以前の試みでは、私も二次的にrs.iniate()
と呼んでいましたが、二次的なものをプライマリにすることが意図されていました。私はすべてを吹き飛ばして、再び始めなければならなかった。
私のセカンダリはSTARTUP
に止まっていますが、プライマリからセカンダリへのレプリケーションを開始するにはどうすればよいですか?
を(あなたが--replSetフラグとMongoDBのインスタンスを開始したと仮定した場合)
はそれにいくつかの時間を与えます。プライマリと同期している可能性がありますので、データの量に応じていつかかかります。また、プライマリノードとセカンダリノードの両方が互いにアクセス可能で、ファイアウォールが干渉していないかどうかを確認してください。 – Saleem
私は確信していません - 下のリンクによれば、状態が同期していれば状態は「STARTUP2」となります:https://docs.mongodb.org/manual/reference/replica-states/ –
また - わかりませんプライマリは自分のローカルマシンなので、セカンダリはプライマリにアクセスできます。コミュニケーションはちょうど1つの方法であると思った - プライマリ - >セカンダリ。そうじゃないの? –