Krátká odpověď / tl;dr
Ne.
Poněkud delší odpověď
Ne, protože má smysl používat shell.
Odpověď
Když nastavujete sadu replik, obvykle máte více než jednoho člena. Dokud není sada replik inicializována, žádný z členů nemá potřebnou konfiguraci. Uzel, na kterém inicializujete sadu replik, se stane primárním a uloží konfiguraci. Nyní přidáte členy buď pomocí rs.add
nebo pomocí rs.reconfig
. Co se pak stane, je, že primární kontaktuje přidaného člena, synchronizuje se konfigurace a některé další věci. Osvědčenou praxí je, že běžní členové sady replik by si měli být rovni, takže jeden uzel selže, neexistuje žádná nevýhoda, že se jiný uzel stane primárním, a tak nový primární uzel může zůstat primárním, dokud z nějakého důvodu nespadne, nebo druhý uzel sám.
Takže pokud byste spustili člena sady replik, odkud by měl získat svou konfiguraci? Sám se rozhodnout, co má dělat? To by v clusteru nefungovalo dobře. Jak by měl zjistit ostatní členy a jejich konfiguraci? Pamatujte, že členové sady replik mohou být v různých datových centrech. A pokud existuje --IamPrimaryDoAsISay
možnost, co by se stalo, kdyby v clusteru byl aktuálně další primární? A jak by se měla řešit situace, kdy s touto možností začalo více členů? Odchod druhého serveru? Možná jen proto, že jsi vyměnil chladič? Nebo by právě spuštěná instance neměla dělat nic, když již existuje primární? Jaký smysl by pak tato možnost měla?
A všechny tyto komplikace jen proto, aby se zabránilo jedinému příkazu z shellu?
Poznámka:Pokud chcete jeden server, stačí spustit samostatnou instanci (mongod bez --replSet
Pokud chcete prozkoumat možnosti sady replik, potřebujete více než jednoho člena.