Nie mówię o dzieleniu . Mieliśmy serwer testowy (linux) i już istnieje taki, mongo
który należy do innego projektu / podzespołu. Czy to możliwe, aby uruchomić wiele, izolowane przypadki z mongodb
na jednym komputerze? Jak mogę to zrobić?
Nie mówię o dzieleniu . Mieliśmy serwer testowy (linux) i już istnieje taki, mongo
który należy do innego projektu / podzespołu. Czy to możliwe, aby uruchomić wiele, izolowane przypadki z mongodb
na jednym komputerze? Jak mogę to zrobić?
Odpowiedzi:
Tak, możesz to zrobić, określając różne numery portów i katalogi danych dla innych instancji mongod
, a następnie określając nowy numer portu w kliencie.
Na przykład:
./mongod --dbpath /foo/bar/otherpath --port some_other_port
W razie potrzeby możesz także zmienić serwer niezależnego fragmentu i skonfigurować numery portów serwera.
Kroki, które podjąłem to:
Edytuj skrypty startowe init.d i zmieniłem:
CONFIGFILE = "/ etc / mongod2.conf" (odpowiednio mongod3.conf)
…
mongod = $ {MONGOD- / usr / bin / mongod2} (odpowiednio mongod3)
Zamieniono / var / lock / subsys / mongod na / var / lock / subsys / mongod2 (odpowiednio mongod3), gdziekolwiek go znalazłem.
Oprzyj się pokusie zamiany mongod.lock na mongod2.lock (lub odpowiednio na mongod3.lock). Znajdują się w różnych folderach (foldery bazy danych są różne) i nie powodują konfliktów.
Teraz mogę
service mongod start|stop|status
service mongod2 start|stop|status
service mongod3 start|stop|status
i również
mongo --port <port_number>
dla każdej instancji mongo (pamiętaj ustawienia portu z plików conf)
Nie znam żadnych skutków ubocznych zmiany nazwy pliku binarnego mongod ..
Mam nadzieję że to pomoże.
[Późniejsza edycja] Aby automatycznie uruchomić instancje, po prostu ln -s /etc/init.d/mongod2 /etc/rc.d/rc3.d/S86mongod i ln -s /etc/init.d/mongod3 / etc / rc .d / rc3.d / S87mongod :)
Ubuntu 16.01
nie było init.d
skryptów. Czy możesz podać init.d
treść skryptu?