MongoDB
Mongo como un conjunto de réplicas
Buscar..
Mongodb como un conjunto de réplicas
Estaríamos creando mongodb como un conjunto de réplicas con 3 instancias. Una instancia sería primaria y las otras 2 serían secundarias.
Para simplificar, voy a tener un conjunto de réplicas con 3 instancias de mongodb ejecutándose en el mismo servidor y, por lo tanto, para lograr esto, las tres instancias de mongodb se ejecutarán en diferentes números de puerto.
En el entorno de producción en el que tiene una instancia de mongodb dedicada que se ejecuta en un solo servidor, puede reutilizar los mismos números de puerto.
- Crear directorios de datos (ruta donde se almacenarán los datos mongodb en un archivo)
- mkdir c:\data\server1 (datafile path for instance 1)
- mkdir c:\data\server2 (datafile path for instance 2)
- mkdir c:\data\server3 (datafile path for instance 3)
- a. Inicia la primera instancia mongod.
- Abra el símbolo del sistema y escriba lo siguiente presione enter.
mongod --replSet s0 --dbpath c:\data\server1 --port 37017 --smallfiles --oplogSize 100
El comando anterior asocia la instancia de mongodb a un nombre de replicaSet "s0" y comienza la primera instancia de mongodb en el puerto 37017 con oplogSize 100MB
- segundo. Del mismo modo iniciar la segunda instancia de mongodb.
mongod --replSet s0 --dbpath c:\data\server2 --port 37018 --smallfiles --oplogSize 100
El comando anterior asocia la instancia de mongodb a un nombre de replicaSet "s0" y comienza la primera instancia de mongodb en el puerto 37018 con oplogSize 100MB
- do. Ahora comienza la tercera instancia de Mongodb
mongod --replSet s0 --dbpath c:\data\server3 --port 37019 --smallfiles --oplogSize 100
El comando anterior asocia la instancia de mongodb a un nombre de replicaSet "s0" y comienza la primera instancia de mongodb en el puerto 37019 con oplogSize 100MB
Con las 3 instancias iniciadas, estas 3 instancias son independientes entre sí actualmente. Ahora tendríamos que agrupar estas instancias como un conjunto de réplicas. Lo hacemos con la ayuda de un objeto de configuración.
3.a Conéctate a cualquiera de los servidores mongod a través del shell mongo. Para ello abre el símbolo del sistema y escribe.
mongo --port 37017
Una vez conectado al shell mongo, crea un objeto de configuración
var config = {"_id":"s0", members[]};
Este objeto de configuración tiene 2 atributos.
- _id: el nombre del conjunto de réplicas ("s0")
- miembros: [] (los miembros son una serie de instancias mongod. dejemos esto en blanco por ahora, agregaremos miembros mediante el comando push).
3.b Para empujar (agregar) instancias mongod a la matriz de miembros en el objeto de configuración. En el tipo de concha mongo
config.members.push({"_id":0,"host":"localhost:37017"});
config.members.push({"_id":1,"host":"localhost:37018"});
config.members.push({"_id":2,"host":"localhost:37019"});
Asignamos a cada instancia mongod un _id y un host. _id puede ser cualquier número único y el host debe ser el nombre de host del servidor en el que se ejecuta, seguido del número de puerto.
- Inicie el objeto de configuración con el siguiente comando en el shell mongo.
rs.initiate(config)
- Dale unos segundos y tenemos un conjunto de réplicas de 3 instancias mongod que se ejecutan en el servidor. escriba el siguiente comando para verificar el estado del conjunto de réplicas e identificar cuál es primario y cuál secundario.
rs.status();