MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Nie można uruchomić kontenera mongo z zestawem replik za pomocą docker-compose

Twój skrypt startowy nie powinien inicjować ani monitorować zestawu replik; powinny to być zadania ręczne.

Należy pamiętać, że:

  • zainicjowanie zestawu replik jest wyłącznie zadaniem jednorazowym; po uruchomieniu usługa MongoDB po ponownym uruchomieniu nadal będzie częścią tego samego zestawu replik.
  • zestaw replik zwykle zawiera kilka węzłów, które powinny być wymienne; jeśli każdy z nich spróbuje zainicjować zestaw replik przy starcie, wyrzucą błędy
  • ponowne uruchomienie usługi jest normalnym, oczekiwanym zachowaniem; na przykład po aktualizacji do następnej wersji MongoDB lub po tym, jak poprawki do hosta serwera wymagają ponownego uruchomienia lub po awarii zasilania
  • Jeśli twój skrypt spróbuje zainicjować już zainicjowany zestaw replik za każdym razem, gdy uruchamia usługę MongoDB, zwróci błędy

Zdecydowanie zalecam wprowadzenie trzech zmian:

  1. Pozwól kontenerowi mongo po prostu uruchomić mongo, bez konieczności inicjowania i monitorowania zestawu replik.
  2. Jeśli chcesz uruchomić zestaw replik, zainicjuj go ostrożnie iw kontrolowany ręczny sposób; tak samo, jeśli chcesz dodać/usunąć węzły lub zmienić konfigurację.
  3. Jeśli chcesz monitorować kondycję zestawu replik, użyj do tego osobnego narzędzia; niech usługa mongo po prostu wykona swoją zwykłą pracę.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Projektowanie schematu MongoDB:zawsze istnieje schemat

  2. Symfony QueryBuilder zwracający kursor MongoDB zamiast tablicy obiektów

  3. Obsługa asynchronicznych zapytań do bazy danych w node.js i mongodb

  4. MongoDB + nodejs :jak odpytywać pola ISODate?

  5. Konwersja ciągu na datę w mongodb