Non sto parlando di sharding . Avevamo un server di test (Linux) e ce n'è già uno mongo
che appartiene a un altro progetto / subteam. È possibile eseguire più istanze isolate di mongodb
su una macchina? Come posso farlo?
Non sto parlando di sharding . Avevamo un server di test (Linux) e ce n'è già uno mongo
che appartiene a un altro progetto / subteam. È possibile eseguire più istanze isolate di mongodb
su una macchina? Come posso farlo?
Risposte:
Sì, è possibile farlo specificando numeri di porta e directory dati diversi per le altre istanze di mongod
, quindi specificando il nuovo numero di porta nel client.
Per esempio:
./mongod --dbpath /foo/bar/otherpath --port some_other_port
È inoltre possibile modificare il numero di porta del server shard e del server di configurazione, se necessario.
I passi che ho preso sono:
Modifica gli script di avvio init.d e cambia quanto segue:
CONFIGFILE = "/ etc / mongod2.conf" (mongod3.conf, rispettivamente)
....
mongod = $ {MONGOD- / usr / bin / mongod2} (mongod3, rispettivamente)
Sostituito / var / lock / subsys / mongod con / var / lock / subsys / mongod2 (rispettivamente mongod3) ovunque l'ho trovato.
Resistere alla tentazione di sostituire mongod.lock con mongod2.lock (o rispettivamente a mongod3.lock). Si trovano in cartelle diverse (le cartelle del database sono diverse) e non entreranno in conflitto.
Ora posso
service mongod start|stop|status
service mongod2 start|stop|status
service mongod3 start|stop|status
e anche
mongo --port <port_number>
per ogni istanza di mongo (ricordare le impostazioni della porta dai file conf)
Non sono a conoscenza di alcun effetto collaterale della ridenominazione del file binario mongod.
Spero che questo ti aiuti.
[Modifica successiva] Per avviare automaticamente le istanze, basta ln -s /etc/init.d/mongod2 /etc/rc.d/rc3.d/S86mongod e ln -s /etc/init.d/mongod3 / etc / rc .d / rc3.d / S87mongod :)
Ubuntu 16.01
, non c'erano init.d
script. Potete fornire il init.d
contenuto dello script?