plusieurs instances de Mongo DB sur le même serveur

Je travaille avec Mongo DB et je suis un débutant. Je suis sur le sharepoint l’installer sur un serveur spécifiquement pour Mongo.

Je voudrais en créer 2 instances – 1 pour prendre en charge un environnement QA, l’autre pour prendre en charge un environnement de stockage intermédiaire.

Je suis plus familier avec SQL Server où je peux créer plusieurs instances.

Est-il possible de faire la même chose avec Mongo DB et si oui, comment?

La réponse mentionnée ci-dessus n’est pas une méthode recommandée pour exécuter plusieurs instances (en particulier lorsque les serveurs peuvent être exécutés en même temps) car cela entraînera l’utilisation des mêmes parameters de configuration tels que logpath et pidfilepath qui, dans la plupart des cas, vouloir.

Veuillez envisager de créer des fichiers de configuration mongod dédiés tels que mongod-QA.conf et mongod-STAGE.conf . Dans ces fichiers, vous souhaiterez peut-être fournir dbpath , les dossiers logpath , bind_ip , port et pidfilepath spécifiques à chaque instance mongod et qui ne s’affecteront pas.

Après ces étapes, vous devez déclencher deux instances comme suit

mongod --config /mongod-QA.conf mongod --config /mongod-STAGE.conf 

Vous pouvez trouver plus de détails sur la page de documentation de mongodb

Il suffit de créer un autre dossier (ex: mongodb2) dbpath pour la deuxième instance et de l’exécuter dans un autre port (ex: 27018)

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

Voici comment je lance 4 mongod sur le même PC pour émuler l’environnement de production dans un environnement de développement.

Pour démarrer mongod, vous devez utiliser une configuration distincte pour chaque mongod . Prendre 4 configs et commencer les mongods en les utilisant:

 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 

Les configurations ressemblent à ceci:

Contenu du fichier 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 

Contenu du fichier 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 

Contenu du fichier 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 

Contenu du fichier 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 

C’est possible – vous donneriez à chacun son propre port pour l’écouter, et son propre répertoire –dbpath pour mettre ses fichiers, mais je ne le recommanderais pas car ils seront tous deux en compétition pour les mêmes ressources – RAM, i / o bande passante, etc.

Si vous disposez de plusieurs disques sur ce serveur, vous pouvez placer leurs fichiers de données sur des périphériques distincts, mais vous risquez toujours que votre instance d’assurance qualité réduise la disponibilité des instances de production, éventuellement au pire moment.

Je mettrais une instance QA sur une machine aléatoire qui fait quelque chose sans importance avant de la colocaliser avec mon instance de production.