MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Не може да се стартира mongo контейнер с набор от реплики, използвайки docker-compose

Вашият стартиращ скрипт не трябва да инициализира или наблюдава набора от реплики; това трябва да са ръчни задачи.

Трябва да имате предвид, че:

  • инициирането на комплект реплики е строго еднократна работа; след като бъде инициирана, услугата MongoDB, когато се рестартира, ще продължи да бъде част от същия набор от реплики.
  • наборът реплики обикновено съдържа няколко възела, които трябва да са взаимозаменяеми; ако всеки от тях се опита да инициализира комплекта реплики при стартиране, те ще генерират грешки
  • рестартирането на услуга е нормално, очаквано поведение; например, когато надстроите до следващата версия на MongoDB или след като корекциите на хоста на вашия сървър изискват рестартиране, или след прекъсване на захранването
  • ако вашият скрипт се опитва да инициализира вече инициализирана реплика при всяко стартиране на услугата MongoDB, той ще генерира грешки

Горещо ви препоръчвам да направите три промени:

  1. Нека вашият mongo контейнер просто изпълнява mongo, без стъпките за иницииране и наблюдение на комплекта реплики.
  2. Ако искате да стартирате набор от реплики, инициирайте го внимателно и по контролиран ръчен начин; същото, ако искате да добавите/премахнете възли или да преконфигурирате.
  3. Ако искате да наблюдавате изправността на вашия комплект реплики, използвайте отделен инструмент, за да направите това; оставете услугата mongo просто да върши обичайната си работа.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да създадете частичен индекс с променлива дата?

  2. Как да актуализирате стойност на масив в Mongoose

  3. Вземете стойности като масив от елементи след $lookup

  4. Намерете най-новите и най-близките публикации, ограничение до 20

  5. Грешка в текстовия индекс на MongoDB:замяната на езика не се поддържа