programing

동일한 서버에 있는 Mongo DB의 여러 인스턴스

stoneblock 2023. 5. 4. 17:57

동일한 서버에 있는 Mongo DB의 여러 인스턴스

저는 Mongo DB와 함께 일을 하고 있으며, 처음 접하는 사람입니다.Mongo 전용 서버에 설치하려고 합니다.

QA 환경을 지원하는 인스턴스와 스테이징 환경을 지원하는 인스턴스 두 개를 생성하려고 합니다.

여러 인스턴스를 생성할 수 있는 SQL Server에 대해 더 잘 알고 있습니다.

Mongo DB에서도 동일한 작업이 가능하며, 가능하다면 어떻게 해야 합니까?

위에서 언급한 답변은 여러 인스턴스를 실행하는 데 권장되지 않습니다(특히 서버가 동시에 실행될 수 있는 경우). 대부분의 경우 원하는 것이 아닌 logpathpidfilepath와 같은 동일한 구성 매개 변수를 사용하게 됩니다.

mongod-QA.confmongod-STAGE.conf와 같은 전용 mongod 구성 파일을 만드는 것을 고려하십시오.이러한 파일에서 각 mongod 인스턴스에 고유dbpath, logpath 폴더, bind_ip, 포트 및 pidfilepath를 제공하고 서로 영향을 미치지 않도록 할 수 있습니다.

이러한 단계가 끝나면 다음과 같이 두 개의 인스턴스를 트리거할 수 있습니다.

mongod --config <path-to>/mongod-QA.conf
mongod --config <path-to>/mongod-STAGE.conf

mongodb 문서 페이지에서 더 자세한 정보를 찾을 수 있습니다.

두 번째 인스턴스에 대해 다른 폴더(예: mongodb2) dbpath를 생성하고 다른 포트(예: 27018)에서 실행하면 됩니다.

 mongod --dbpath /usr/local/var/mongodb2 --port 27018

개발 환경에서 생산 환경을 에뮬레이트하기 위해 동일한 PC에서 4개 mongod를 시작하는 방법입니다.

mongod를 시작하려면 각 mongod에 대해 별도의 구성을 사용해야 합니다.다음 4가지 구성을 사용하여 mongod를 시작합니다.

start C:\mongodb\bin\mongod.exe --config C:\net2\dev1-pc\configs\mongod-primary1.cfg 
start C:\mongodb\bin\mongod.exe --config C:\net2\dev1-pc\configs\mongod-secondary1.cfg --rest
start C:\mongodb\bin\mongod.exe --config C:\net2\dev1-pc\configs\mongod-secondary2.cfg
start C:\mongodb\bin\mongod.exe --config C:\net2\dev1-pc\configs\mongod-secondary3.cfg

구성은 다음과 같습니다.

mongod-primary1.cfg 파일 내용

systemLog:
    destination: file
    path: c:\net2\primary1-pc\data\log\mongod.log
storage:
    dbPath: c:\net2\primary1-pc\data\db
net:
    port: 27018
replication:
    replSetName: repl1

mongod-secondary1.cfg 파일 내용

systemLog:
    destination: file
    path: c:\net2\secondary1-pc\data\log\mongod.log
storage:
    dbPath: c:\net2\secondary1-pc\data\db
net:
    port: 27019
replication:
    replSetName: repl1

mongod-secondary2.cfg 파일 내용

systemLog:
    destination: file
    path: c:\net2\secondary2-pc\data\log\mongod.log
storage:
    dbPath: c:\net2\secondary2-pc\data\db
net:
    port: 27020
replication:
    replSetName: repl1

mongod-secondary3.cfg 파일 내용

systemLog:
    destination: file
    path: c:\net2\secondary3-pc\data\log\mongod.log
storage:
    dbPath: c:\net2\secondary3-pc\data\db
net:
    port: 27021
replication:
    replSetName: repl1

가능합니다. 각 포트에 수신할 포트를 지정하고 파일을 저장할 --dbpath 디렉토리를 지정할 수 있지만, 둘 다 동일한 리소스(RAM, I/O 대역폭 등)를 놓고 경쟁하기 때문에 권장하지 않습니다.

이 서버에 여러 개의 디스크가 있는 경우 데이터 파일을 별도의 장치에 배치할 수 있지만 QA 인스턴스로 인해 운영 인스턴스의 가용성이 저하될 위험이 있습니다. 가능한 최악의 경우가 발생할 수 있습니다.

QA 인스턴스를 운영 인스턴스와 함께 배치하기 전에 중요하지 않은 작업을 수행하는 임의의 시스템에 QA 인스턴스를 배치합니다.

언급URL : https://stackoverflow.com/questions/15124610/multiple-instances-of-mongo-db-on-same-server