하나의 서버에 여러 개의 몽고 서버 (리눅스)를 가지고 있었고 이미

나는 샤딩 에 대해 이야기하고 있지 않다 . 우리는 테스트 서버 (리눅스)를 가지고 있었고 이미 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 🙂


답변