Я не говорю о шардинг. У нас был тестирование сервер (linux) и уже есть один mongo
который принадлежит другому проекту / подгруппе. Можно ли запустить несколько изолированных экземпляров из mongodb
на одной машине? Как мне это сделать?
Да, вы можете сделать это, указав разные номера портов и каталоги данных для других экземпляров mongod
, а затем указав новый номер порта в клиенте.
Например:
./mongod --dbpath /foo/bar/otherpath --port some_other_port
Ты можешь также изменить номер порта сервера сегментов и сервера конфигурации, если это необходимо.
Я предпринял следующие шаги:
Отредактируйте сценарии запуска init.d и измените следующее:
CONFIGFILE = "/ etc / mongod2.conf" (mongod3.conf соответственно)
....
mongod = $ {MONGOD- / usr / bin / mongod2} (mongod3 соответственно)
Заменил / var / lock / subsys / mongod на / var / lock / subsys / mongod2 (mongod3 соответственно) везде, где я его нашел.
Не поддавайтесь искушению заменить mongod.lock на mongod2.lock (или на mongod3.lock соответственно). Они находятся в разных папках (папки базы данных разные) и конфликтовать не будут.
Теперь я могу
service mongod start|stop|status
service mongod2 start|stop|status
service mongod3 start|stop|status
а также
mongo --port <port_number>
для каждого экземпляра mongo (запомните настройки порта из файлов conf)
Я не знаю ни о каком побочном эффекте переименования двоичного файла mongod.
Надеюсь это поможет.
[Последующее редактирование] Для автоматического запуска экземпляров просто введите ln -s /etc/init.d/mongod2 /etc/rc.d/rc3.d/S86mongod и ln -s /etc/init.d/mongod3 / etc / rc .d / rc3.d / S87mongod :)