Назад | Перейти на главную страницу

Несколько Монго на одном сервере

Я не говорю о шардинг. У нас был тестирование сервер (linux) и уже есть один mongo который принадлежит другому проекту / подгруппе. Можно ли запустить несколько изолированных экземпляров из mongodb на одной машине? Как мне это сделать?

Да, вы можете сделать это, указав разные номера портов и каталоги данных для других экземпляров mongod, а затем указав новый номер порта в клиенте.

Например:

./mongod --dbpath /foo/bar/otherpath --port some_other_port

Ты можешь также изменить номер порта сервера сегментов и сервера конфигурации, если это необходимо.

Я предпринял следующие шаги:

  1. Скопируйте файл conf /etc/mongod.conf в mongod2.conf, а также в mongod3.conf
  2. Отредактируйте файлы conf, чтобы иметь разные порты и разные пути к базе данных
  3. Скопируйте сценарий запуска init.d /etc/init.d/mongod в mongod2, а также в mongod3
  4. Скопируйте двоичный файл mongod / usr / bin / mongod в / usr / bin / mongod2, а также в / usr / bin / mongod3
  5. Отредактируйте сценарии запуска 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 :)