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.

  • 🗄️ Concepto principal: La replicación copia los mismos datos en varios servidores, de modo que la información permanece disponible cuando falla el servidor principal.
  • ???? Primaria y secundaria: Un conjunto de réplicas tiene un miembro primario que acepta escrituras y miembros secundarios que atienden lecturas.
  • 🚀 Creación de conjuntos: El comando rs.initiate() inicia un conjunto de réplicas después de que se inicia la primera instancia de mongod con la opción replSet.
  • Agregar miembros: El comando rs.add() adjunta servidores secundarios, mientras que rs.remove() elimina un miembro de la configuración.
  • 🔧 Solución de Problemas: Los comandos rs.status() y rs.printReplicationInfo() muestran el estado del latido cardíaco y el tamaño del Oplog para su diagnóstico.

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

¿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.

Crear conjunto de réplicas en MongoDB

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.

  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 ServerA, ejecute los siguientes 2 comandos:
    mongo --host ServerB --port 27017
    mongo --host ServerC --port 27017
  2. 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.
  3. 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.

Preguntas Frecuentes

Sí. Los asistentes de IA pueden generar las opciones de inicio de mongod, la configuración de rs.initiate() y los comandos rs.add() para un conjunto de réplicas. Siempre revise los nombres de host, los puertos y las prioridades de los miembros antes de aplicar la configuración a los servidores de producción.

Sí. Las herramientas de monitorización basadas en IA pueden leer las métricas de rs.status() y Oplog para detectar servidores secundarios que se quedan rezagados con respecto al principal. Pueden sugerir causas como la latencia de la red o la lentitud de los discos, pero los ingenieros deben confirmarlas antes de actuar.

MongoDB Se recomienda un número impar de miembros con derecho a voto, normalmente tres, para que las elecciones puedan alcanzar la mayoría. Si solo se dispone de dos nodos de datos, se puede añadir un árbitro para desempatar sin necesidad de almacenar datos.

Cuando el candidato principal se vuelve inalcanzable, los miembros restantes celebran elecciones y promueven automáticamente a un candidato secundario elegible a principal. Se reanudan las operaciones una vez que se elige un nuevo candidato principal.ping La aplicación estará disponible con un tiempo de inactividad mínimo.

Resumir este post con: