Kort antwoord / tl;dr
Nee.
Iets langer antwoord
Nee, want het is logisch om de shell te gebruiken.
Antwoord
Wanneer u een replicaset instelt, heeft u meestal meer dan één lid. Totdat de replicaset is geïnitialiseerd, beschikt geen van de leden over de benodigde configuratie. Het knoop punt waarop u de replicaset initialiseert, wordt primair en slaat de configuratie op. Nu voeg je leden toe met behulp van de rs.add
commando of met behulp van rs.reconfig
. Wat er dan gebeurt, is dat de primaire contactpersoon contact opneemt met het toegevoegde lid, de configuratie wordt gesynchroniseerd en nog wat andere dingen. Het is de beste gewoonte dat gewone replicasetleden gelijk zijn, zodat één knooppunt faalt, er geen nadeel is dat een ander knooppunt primair wordt en dus de nieuwe primaire primair kan blijven totdat het om de een of andere reden zelf uitvalt.
Dus als u een lid van een replicaset zou starten, waar zou het dan zijn configuratie vandaan moeten halen? Zelf bepalen wat het moet doen? Dat zou niet goed werken in een cluster. Hoe zou het de andere leden en hun configuratie moeten ontdekken? Onthoud dat replicasetleden zich in verschillende datacenters kunnen bevinden. En als er een --IamPrimaryDoAsISay
. was optie, wat zou er gebeuren als er momenteel een andere primaire in het cluster is? En hoe moet worden omgegaan met een situatie waarin meer dan één lid met die mogelijkheid is gestart? Een stap naar beneden van de andere server? Misschien omdat je een koeler hebt vervangen? Of moet de zojuist gestarte instantie niets doen als er al een primaire was? Wat voor zin zou de optie dan hebben?
En al deze complicaties alleen maar om een enkel commando vanuit de shell te voorkomen?
Opmerking:als u een enkele server wilt, start u gewoon een zelfstandige instantie (een mongod zonder de --replSet
optie).Als je de mogelijkheden van een replicaset wilt verkennen, heb je meer dan één lid nodig.