Replicación de MongoDB: cómo crear un conjunto de réplicas de MongoDB

¿Qué es la replicación de MongoDB?

La replicación se refiere al proceso de garantizar que los mismos datos estén disponibles en más de un servidor Mongo DB. A veces esto es necesario con el fin de aumentar la disponibilidad de datos.

Porque si su servidor MongoDB principal deja de funcionar por algún 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 MongoDB, varios servidores MongoDB se agrupan en conjuntos llamados conjuntos de réplicas. El conjunto de réplicas tendrá un servidor principal que aceptará todas las operaciones de escritura de los clientes. Todas las demás instancias agregadas al conjunto después de esto se denominarán instancias secundarias que se pueden usar principalmente para todas las operaciones de lectura.

Cómo crear un conjunto de réplicas en MongoDB agregando 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 instancias de MongoDB.

Supongamos que, para nuestro ejemplo, tenemos 3 servidores llamados ServidorA, ServidorB y ServidorC. En esta configuración, el ServidorA será nuestro servidor primario y el ServidorB y el ServidorC serán nuestros servidores secundarios. La siguiente captura de pantalla le dará una mejor idea.

Crear conjunto de réplicas en MongoDB

A continuación se detallan los pasos que se deben seguir para crear el conjunto de réplicas de MongoDB 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 garantizar que incluso si un servidor falla, los demás estarán disponibles y, por lo tanto, otras instancias de MongoDB estarán disponibles.

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 una agrupación 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 se agrega el primer servidor al conjunto de réplicas, el siguiente paso es iniciar el conjunto de réplicas emitiendo el siguiente comandowing comando rs.iniciar ().

Paso 5) Verificar el conjunto de réplicas

Verifique la réplica configurada emitiendo el comando rs.conf() para garantizar que la réplica esté configurada 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 tiene el ServidorA, el ServidorB y el ServidorC, que deben ser parte de su conjunto de réplicas, y el ServidorA está definido como el servidor principal en el conjunto de réplicas.

Para agregar ServerB y ServerC al conjunto de réplicas, emita los 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, necesitamos usar el comando "rs.remove"

Paso 1) Primero realice un cierre de la instancia que desea eliminar. Se puede hacer esto emitiendo el comando db.shutdownserver desde el shell 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. Entonces, supongamos que si tiene un conjunto de réplicas con ServerA, ServerB y ServerC, y desea eliminar ServerC del conjunto de réplicas, emita el comando

rs.remove("ServerC")

Solución de problemas de conjuntos de réplicas

El following Los pasos son las mismas formas en que se pueden solucionar problemas cuando se encuentran problemas con el uso de conjuntos de réplicas.

  1. 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 el servidor A, ejecute los siguientes 2 comandos
mongo –host ServerB –port 27017
mongo –host ServerC –port 27017
  1. Ejecute el comando rs.status. Este comando proporciona el estado del conjunto de réplicas. De forma predeterminada, cada miembro se enviará mensajes entre sí llamados mensajes de "latido", que simplemente indican que el servidor está activo y funcionando. El comando "estado" obtiene el estado de estos mensajes y muestra si hay algún problema con algún miembro del conjunto de réplicas.
  2. Verifique el tamaño del Oplog: el Oplog es una colección en MongoDB que almacena el historial de escrituras realizadas en la base de datos MongoDB. Luego, MongoDB 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.

Resumen

La replicación en MongoDB se refiere al proceso de garantizar que los mismos datos estén disponibles en más de un servidor Mongo DB. Se pueden agregar muchos miembros (instancias de MongoDB) al conjunto de réplicas según los requisitos.