Não estou falando de sharding . Tivemos um servidor de teste (linux) e já existe um mongo
que pertence a outro projeto / subequipe. É possível executar várias instâncias, isoladas de mongodb
em uma máquina? Como eu posso fazer isso?
Não estou falando de sharding . Tivemos um servidor de teste (linux) e já existe um mongo
que pertence a outro projeto / subequipe. É possível executar várias instâncias, isoladas de mongodb
em uma máquina? Como eu posso fazer isso?
Respostas:
Sim, você pode fazer isso especificando números de porta e diretórios de dados diferentes para as outras instâncias do mongod
e, em seguida, especificando o novo número da porta no cliente.
Por exemplo:
./mongod --dbpath /foo/bar/otherpath --port some_other_port
Você também pode alterar os números de porta do servidor shard e do servidor de configuração, se necessário.
Os passos que tomei são:
Edite os scripts init.d start e altere o seguinte:
CONFIGFILE = "/ etc / mongod2.conf" (mongod3.conf, respectivamente)
....
mongod = $ {MONGOD- / usr / bin / mongod2} (mongod3, respectivamente)
Substituiu / var / lock / subsys / mongod por / var / lock / subsys / mongod2 (mongod3, respectivamente) onde quer que eu o encontrasse.
Resista à tentação de substituir mongod.lock por mongod2.lock (ou para mongod3.lock, respectivamente). Eles estão em pastas diferentes (as pastas do banco de dados são diferentes) e não entram em conflito.
Agora eu posso
service mongod start|stop|status
service mongod2 start|stop|status
service mongod3 start|stop|status
e também
mongo --port <port_number>
para cada instância do mongo (lembre-se das configurações de porta dos arquivos conf)
Não estou ciente de nenhum efeito colateral de renomear o binário mongod ..
Espero que isto ajude.
[Edição posterior] Para iniciar as instâncias automaticamente, 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
, não havia init.d
scripts. Você pode fornecer init.d
conteúdo de script?