MongoDB Replicación: cómo crear MongoDB Conjunto de réplicas
⚡ Resumen inteligente
MongoDB La replicación mantiene datos idénticos en más de uno. MongoDB servidor, protegiendo contra fallos del servidor y habilitando el equilibrio de carga. Agrupado MongoDB Las instancias forman un conjunto de réplicas, donde una instancia principal acepta las escrituras y los miembros secundarios gestionan las operaciones de lectura y la conmutación por error.
¿Qué es MongoDB ¿Replicación?
La replicación se refiere al proceso de asegurar que los mismos datos estén disponibles en más de un sistema. MongoDB Servidor. Esto a veces es necesario para aumentar la disponibilidad de los datos.
Porque si tu principal MongoDB El servidor cae por cualquier motivo, no habrá acceso a los datos. Pero si replicaste los datos en otro servidor a intervalos regulares, podrás acceder a los datos desde otro servidor incluso si el servidor principal falla.
Otro propósito de la replicación es la posibilidad de equilibrar la carga. Si hay muchos usuarios conectados al sistema, en lugar de que todos se conecten a un sistema, los usuarios pueden conectarse a varios servidores para que haya una distribución equitativa de la carga.
In MongoDBmúltiples MongoDB Los servidores se agrupan en conjuntos denominados conjuntos de réplicas. Cada conjunto de réplicas cuenta con un servidor principal que acepta todas las operaciones de escritura de los clientes. Las demás instancias que se añadan al conjunto posteriormente se denominan instancias secundarias y se utilizan principalmente para las operaciones de lectura.
Cómo crear un conjunto de réplicas en MongoDB Agregar el primer miembro usando rs.initiate()
Como se mencionó en la sección anterior, para habilitar la replicación, primero debemos crear un conjunto de réplicas de MongoDB instancias.
Supongamos que, para nuestro ejemplo, tenemos tres servidores: ServidorA, ServidorB y ServidorC. En esta configuración, ServidorA será nuestro servidor principal, y ServidorB y ServidorC serán nuestros servidores secundarios. La siguiente captura de pantalla lo ilustra mejor.
A continuación se detallan los pasos que deben seguirse para crear el MongoDB conjunto de réplicas junto con la adición del primer miembro al conjunto.
Paso 1) Asegúrese de que se hayan agregado todas las instancias de mongod.exe.
Asegúrese de que todas las instancias de mongod.exe que se agregarán al conjunto de réplicas estén instaladas en servidores diferentes. Esto es para asegurar que incluso si un servidor falla, los demás estarán disponibles y, por lo tanto, otras instancias de MongoDB estará disponible.
Paso 2) Todas las instancias de mongo.exe se conectan entre sí.
Asegúrese de que todas las instancias de mongo.exe puedan conectarse entre sí. Desde el ServidorA, ejecute los 2 comandos siguientes.
mongo --host ServerB --port 27017 mongo --host ServerC --port 27017
Del mismo modo, haga lo mismo con los servidores restantes.
Paso 3) Inicie la primera instancia de mongod.exe.
Inicie la primera instancia de mongod.exe con la opción replSet. Esta opción proporciona un grupoping para todos los servidores que formarán parte de este conjunto de réplicas.
mongo --replSet "Replica1"
Donde "Réplica1" es el nombre de su conjunto de réplicas. Puede elegir cualquier nombre significativo para el nombre de su conjunto de réplicas.
Paso 4) El primer servidor se agrega al conjunto de réplicas.
Ahora que el primer servidor se ha añadido al conjunto de réplicas, el siguiente paso es inicializar el conjunto de réplicas mediante el comando rs.initiate().
Paso 5) Verificar el conjunto de réplicas
Verifique el conjunto de réplicas ejecutando el comando rs.conf() para asegurarse de que el conjunto de réplicas esté configurado correctamente.
Conjunto de réplicas: agregar un secundario usando rs.add()
Los servidores secundarios se pueden agregar al conjunto de réplicas simplemente usando el comando rs.add. Este comando toma el nombre de los servidores secundarios y agrega los servidores al conjunto de replicación.
Paso 1) Supongamos que tenemos el ServidorA, el ServidorB y el ServidorC, que deben formar parte de nuestro conjunto de réplicas, y que el ServidorA está definido como el servidor principal en el conjunto de réplicas.
Para agregar ServerB y ServerC al conjunto de réplicas, ejecute los siguientes comandos:
rs.add("ServerB") rs.add("ServerC")
Conjunto de réplicas: reconfiguración o eliminación mediante rs.remove()
Para eliminar un servidor del conjunto de configuración, debemos usar el comando “rs.remove”.
Paso 1) Primero, apague la instancia que desea eliminar. Para ello, ejecute el comando db.shutdownServer desde la consola de mongo.
Paso 2) Conéctese al servidor principal.
Paso 3) Utilice el comando rs.remove para eliminar el servidor requerido del conjunto de réplicas. Por ejemplo, si tiene un conjunto de réplicas con ServerA, ServerB y ServerC, y desea eliminar ServerC del conjunto de réplicas, ejecute el comando:
rs.remove("ServerC")
Solución de problemas de conjuntos de réplicas
A continuación se describen las formas en que se pueden solucionar los problemas que surgen al utilizar conjuntos de réplicas.
- Asegúrese de que todas las instancias de mongo.exe puedan conectarse entre sí. Supongamos que tiene 3 servidores llamados ServerA, ServerB y ServerC. Desde ServerA, ejecute los siguientes 2 comandos:
mongo --host ServerB --port 27017 mongo --host ServerC --port 27017
- Ejecute el comando rs.status. Este comando muestra el estado del conjunto de réplicas. Por defecto, cada miembro se envía mensajes entre sí, denominados mensajes de "latido", que simplemente indican que el servidor está activo y funcionando. El comando "status" obtiene el estado de estos mensajes y muestra si existe algún problema con alguno de los miembros del conjunto de réplicas.
- Compruebe el tamaño del Oplog. El Oplog es una colección en MongoDB que almacena el historial de escrituras que se realizaron en el MongoDB base de datos. MongoDB luego usa este Oplog para replicar las escrituras en los otros miembros del conjunto de réplicas. Para verificar el Oplog, conéctese a la instancia de miembro requerida y ejecute el comando rs.printReplicationInfo. Este comando mostrará el tamaño del registro y cuánto tiempo puede contener transacciones en su archivo de registro antes de que se llene.


