2016-03-22 26 views
0

Sonunda raporlama için kullanılacak gizli bir ikincil MongoDB örneği oluşturuyorum. Şimdiye kadar bu adımları attık:MongoDB gizli ikincil başlangıçta sıkışmış?

  1. replSet = mySet ile benim birincil örneği (yerel makine) yukarı başladı ve
  2. replSet = mySet
  3. birincil örneğinden rs.add("my.secondary.com") Aranan ile birlikte benim ikincil örneğini kadar Başlatılan
  4. rs.initiate() denilen
  5. kullanarak ikinci üyesi için priority = 0 ve hidden = true set rs.reconfigure(cfg)

Bunu ben şu çıktıyı almak rs.status() aradığında: benim ikincil STARTUP olduğu için stateStr olduğunu

{ 
    "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 
} 

Bildirimi - Bu asla değişiklikleri ve asla çoğaltır verileri. Daha önceki bir denemede de ikincil ortama rs.iniate() adını verdim, ancak ikincil olmayı amaçlayan şeyi birincil hale getirdi. Her şeyi uçurup tekrar başladım.

İkincil nedenim STARTUP numaralı telefona takılı kalıyor ve verileri birincil sayfamdan ikincil cihazıma kopyalamaya başlamak için nasıl alabilirim?

+0

biraz zaman tanıyın (size varsayarak --replSet bayrağıyla mongodb örneklerini başlattı). Birincil ile senkronizasyon yapıyor olabilir, bu nedenle verilerinizin ne kadar büyük olduğuna bağlı olarak bir süre alacaktır. Ayrıca, hem birincil hem de ikincil düğümlerin birbirlerine erişebildiğinden ve hiçbir güvenlik duvarının müdahale etmediğinden emin olun. – Saleem

+0

Emin değilim - devletin aşağıdaki linkine göre senkronizasyon yapıyorsa "STARTUP2" olacaktır: https://docs.mongodb.org/manual/reference/replica-states/ –

+0

Ayrıca - Emin değilim Birincil, birincil makinem olan birincil makineye erişimi olan ikincil hakkında. İletişimin sadece bir yol olduğunu düşündüm - Birincil -> İkincil. Durum böyle değil mi? –

cevap

1

İşte kara kitapımdan kontrol listesi :) adımlarınızı karşılaştırın, bir aksaklık olmadan gitmelidir.

// 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

evet bunlar benim adımlarım. İkincil bağlantımın Birincilim'e erişebildiğinden emin değilim, bu yüzden sorun olabilir. Buna, –

+0

içine bakacağım. Canlı ortamla zaman geçirmeden önce yerel makinenizde çoğaltma yapmayı deneyin. Bu ne yaptığınıza güven verecektir. (en azından MongoDB için replicaSet'i ayarlama) – Saleem

+0

Evet, şimdi yerel ortalamamı kurmaya çalışıyordum - bence bu iyi bir adım –