Uw opstartscript mag de replicaset niet initialiseren of bewaken; dat zouden handmatige taken moeten zijn.
Houd er rekening mee dat:
- het initiëren van een replicaset is strikt een eenmalige taak; zodra het is gestart, blijft de MongoDB-service, wanneer deze opnieuw wordt opgestart, deel uitmaken van dezelfde replicaset.
- een replicaset bevat normaal gesproken meerdere knooppunten die uitwisselbaar moeten zijn; als elk van hen probeert de replicaset te initialiseren bij het opstarten, zullen ze fouten veroorzaken
- het herstarten van een service is normaal, verwacht gedrag; bijvoorbeeld wanneer u een upgrade uitvoert naar de volgende versie van MongoDB, of nadat patches naar uw serverhost opnieuw moeten worden opgestart, of na een stroomstoring
- als uw script een reeds geïnitialiseerde replicaset probeert te initialiseren telkens wanneer het de MongoDB-service start, zal het fouten veroorzaken
Ik raad u ten zeerste aan om drie wijzigingen aan te brengen:
- Laat uw mongo-container gewoon mongo uitvoeren, zonder de stappen om de replicaset te starten en te controleren.
- Als je een replicaset wilt draaien, start deze dan zorgvuldig en op een gecontroleerde handmatige manier; idem als je knooppunten wilt toevoegen/verwijderen, of opnieuw wilt configureren.
- Als je de gezondheid van je replicaset wilt controleren, gebruik dan een aparte tool om dat te doen; laat de mongo-service gewoon zijn gewone werk doen.