2016-03-22 3 views
0

私は、最終的にレポートに使用される隠されたセカンダリMongoDBインスタンスを作成しています。これまでのところ私は、これらの措置を講じていますMongoDBの隠れたセカンダリが起動時にスタックしましたか?

  1. replSet = mySetと私のプライマリ・インスタンス(ローカルマシン)を起動し、私のプライマリ・インスタンス
  2. から rs.add("my.secondary.com")呼び出さ replSet = mySet
  3. にして、私の第二のインスタンスを起動rs.initiate()
  4. と呼ばれます
  5. セットとhidden = truers.reconfigure(cfg)

私はこれを行うとrs.status()を呼び出すと、私は次のような出力を得る:私の第二のためstateStrSTARTUPであることを

{ 
    "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に止まっていますが、プライマリからセカンダリへのレプリケーションを開始するにはどうすればよいですか?

+0

を(あなたが--replSetフラグとMongoDBのインスタンスを開始したと仮定した場合)

はそれにいくつかの時間を与えます。プライマリと同期している可能性がありますので、データの量に応じていつかかかります。また、プライマリノードとセカンダリノードの両方が互いにアクセス可能で、ファイアウォールが干渉していないかどうかを確認してください。 – Saleem

+0

私は確信していません - 下のリンクによれば、状態が同期していれば状態は「STARTUP2」となります:https://docs.mongodb.org/manual/reference/replica-states/ –

+0

また - わかりませんプライマリは自分のローカルマシンなので、セカンダリはプライマリにアクセスできます。コミュニケーションはちょうど1つの方法であると思った - プライマリ - >セカンダリ。そうじゃないの? –

答えて

1

ここに私の黒い本のチェックリストです:)あなたのステップを比較して、それは不具合なく行かなければなりません。

// rs.initiate() 
// rs.add("host-1:29001") 
// rs.add("host-2:30001") 
// rs.add("host-n:40001") 
// var cfg = rs.config() 
// cfg.members[2].priority = 0 
// cfg.members[2].hidden = true 
// rs.reconfig(cfg) 
+0

ええ、これは私の措置です。私はセカンダリが私のプライマリにアクセスできることが問題であるかもしれないと確信していません。私はそれを調べます –

+0

ライブ環境で時間を過ごす前にまずローカルマシンでレプリカを開始してみてください。これはあなたが何をしているのかに自信を与えます。 (少なくともMongoDB用のreplicaSetを設定する) – Saleem

+0

今、私のセカンダリをローカルにセットアップすることに取り組んでいる - 私はそれが良いステップだと思う。 –

関連する問題