English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Replicación (conjunto de réplicas) MongoDB

La replicación de MongoDB es el proceso de sincronización de datos en múltiples servidores.

La replicación proporciona copias de respaldo redundantes de los datos y almacena copias de datos en múltiples servidores, lo que mejora la disponibilidad de los datos. Y puede garantizar la seguridad de los datos.

La replicación también le permite recuperar datos de fallos de hardware y interrupciones de servicios.

¿Qué es la replicación?

  • Garantizar la seguridad de los datos
  • Altura de disponibilidad de datos (24*7)
  • Recuperación de desastres
  • No es necesario detener el mantenimiento (como respaldo, reconstrucción de índices, compresión)
  • Lectura de datos distribuidos

Principio de replicación de MongoDB

La replicación de MongoDB requiere al menos dos nodos. Uno es el nodo maestro, responsable de manejar las solicitudes del cliente, y los demás son nodos esclavos, responsables de copiar los datos del nodo maestro.

La combinación común de nodos de MongoDB es: uno maestro y uno esclavo, uno maestro y múltiples esclavos.

El nodo maestro registra todas las operaciones en el oplog sobre él, y los nodos esclavos consultan periódicamente al nodo maestro para obtener estas operaciones, luego ejecutan estas operaciones en sus copias de datos, lo que garantiza que los datos del nodo esclavo sean consistentes con el nodo maestro.

La estructura de replicación de MongoDB se muestra a continuación:

En la estructura de la imagen anterior, el cliente lee los datos del nodo maestro, y cuando el cliente escribe datos al nodo maestro, El nodo maestro y el nodo esclavo interactúan para asegurar la consistencia de los datos.

Características del conjunto de respaldo:

  • Cluster de N nodos
  • Cualquier nodo puede actuar como nodo maestro
  • Todas las operaciones de escritura se realizan en el nodo maestro
  • Transferencia automática de fallos
  • Recuperación automática

Configuración de conjunto de respaldo de MongoDB

En este tutorial, utilizamos el mismo MongoDB para hacer el experimento de maestro-esclavo de MongoDB. Los pasos a seguir son los siguientes:

1、cerrar el servidor MongoDB en ejecución.

Ahora especificamos --Para iniciar mongoDB con la opción replSet--El formato de sintaxis básico de replSet es el siguiente:

mongod --puerto "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"

Ejemplo en línea

mongod --puerto 27017 --dbpath "D:\set up\mongodb\data" --replSet rs0

El ejemplo anterior iniciará un ejemplo MongoDB llamado rs0, cuyo número de puerto es27017.

Después de iniciarlo, abra la ventana de comandos y conecte a servicio mongoDB.

En el cliente MongoDB, utilice el comando rs.initiate() para iniciar un nuevo conjunto de respaldo.

Podemos usar rs.conf() para ver la configuración del conjunto de respaldo

Para ver el estado del conjunto de respaldo, utilice el comando rs.status()

Añadir miembro de conjunto de respaldo

Para agregar miembros al conjunto de réplicas, necesitamos usar múltiples servidores para iniciar el servicio mongo. Ingrese al cliente de MongoDB y use el método rs.add() para agregar miembros al conjunto de réplicas .

Sintaxis

El formato básico de la sintaxis de la orden rs.add() es el siguiente:
>rs.add(HOST_NAME:PORT)

Ejemplo en línea

Supongamos que ya ha iniciado un mongod1.net, el número de puerto es27017servicio de MongoDB . En la ventana de comandos del cliente, use la orden rs.add() para agregarlo al conjunto de réplicas, como se muestra a continuación:

>rs.add("mongod1.net:27017)
>

Solo puede agregar el servicio de MongoDB al conjunto de réplicas a través del nodo maestro en MongoDB . Puede usar la orden db.isMaster() para determinar si el servicio de MongoDB en ejecución es el nodo maestro .

Los conjuntos de réplicas de MongoDB difieren de los esquemas maestro-esclavo comunes, ya que en caso de fallo del host, todos los servicios se detendrán en el esquema maestro-esclavo, mientras que en el conjunto de réplicas, después de que el host falla, la réplica tomará el lugar del nodo maestro para convertirse en el nodo maestro, sin que se produzca el fallo.