Docs Menu
Docs Home
/ /
Métodos de respaldo
/ / / /

Restaurar un conjunto de réplicas autogestionadas desde copias de seguridad de MongoDB

Este procedimiento describe el proceso para tomar datos de MongoDB y restaurarlos en una nueva base de datos. Conjunto de réplicas. Utilice este enfoque para sembrar implementaciones de prueba desde copias de seguridad de producción o como parte de la recuperación ante desastres.

Importante

También puede usar para restaurar archivos de base mongorestore mongodump de datos utilizando datos creados con. Consulte "Copia de seguridad y restauración de una implementación autoadministrada con MongoDB Tools" para obtener más información.

Las copias de seguridad proporcionan una snapshot del estado actual de la base de datos. Cuando restauras a partir de una copia de seguridad, la base de datos restaurada no incluye ningún cambio realizado después de que se haya hecho la copia de seguridad, lo que puede provocar pérdida de datos.

1

Los archivos de copia de seguridad pueden provenir de una instantánea del sistema de archivos.MongoDB Cloud Manager genera archivos de base de datos MongoDB para instantáneas almacenadas e instantáneas puntuales. Para Ops Manager, una solución local disponible en MongoDB Enterprise Advanced, consulte también la descripción general de Ops Manager Backup.

Consideraciones para los motores de almacenamiento cifrado
Para los motores de almacenamiento cifrado que utilizan el AES256-GCM modo de cifrado, AES256-GCM requiere que cada proceso utilice un valor de bloque de contador único con la clave. Para el motor de almacenamiento cifrado configurado con el AES256-GCM cifrado:
  • Restauración desde una copia de seguridad en caliente
    A partir de la versión 4.2, si restaura desde archivos obtenidos mediante una copia de seguridad "en caliente" (es decir, mientras mongod está en ejecución), MongoDB puede detectar claves "sucias" en el inicio y cambiar automáticamente la clave de la base de datos para evitar la reutilización del IV (vector de inicialización).
  • Restauración desde una copia de seguridad en frío

    Sin embargo, si restaura desde archivos obtenidos mediante una copia de seguridad "en frío" (es decir, mongod no está en ejecución), MongoDB no puede detectar las claves "sucias" en el inicio, y la reutilización de IV invalida las garantías de confidencialidad e integridad.

    A partir de la versión 4.2, para evitar la reutilización de las claves después de restaurar desde un snapshot del sistema de archivos en frío, MongoDB agrega una nueva opción de línea de comandos --eseDatabaseKeyRollover. Al iniciarse con la opción --eseDatabaseKeyRollover, la instancia mongod cambia las claves de la base de datos configuradas con el cifrado AES256-GCM y se cierra.

2

Si va a restaurar desde una copia de seguridad del sistema de archivos (o cualquier copia de seguridad con la base de datos local), descarte la base de datos local.

También debe especificar las mismas opciones de inicio que se utilizaron cuando se creó la instantánea.

mongod --dbpath /data/db <startup options>

Conecte mongosh a la mongod instancia y elimine la local base de datos.

use local
db.dropDatabase()

Apagar el autónomo.

3

Inicie una instancia como un nuevo conjunto de réplicas de un solo nodo. Especifique la ruta a los archivos de datos de respaldo mongod --dbpath con la opción y el nombre del conjunto de réplicas con la --replSet opción. Para el conjunto de réplicas del servidor de configuración (CSRS), incluya la opción. Incluya cualquier otra opción según corresponda a su --configsvr implementación.

También debe especificar las mismas opciones de inicio que se utilizaron cuando se creó la instantánea.

Nota

Si los miembros de su conjunto de réplicas se ejecutan en diferentes hosts o si desea que los clientes remotos se conecten a su instancia, debe especificar la net.bindIp configuración --bind_ip (o).

Advertencia

Antes de vincular una dirección IP que no sea local (por ejemplo, de acceso público), asegúrese de proteger su clúster contra accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, consulte la Lista de verificación de seguridad para implementaciones autogestionadas. Como mínimo, considere habilitar la autenticación y reforzar la infraestructura de red.

mongod --dbpath /data/db --replSet <replName> <startup options>

Nota

Todas las colecciones de MongoDB tienen UUID predeterminados. Al restaurar colecciones, MongoDB conserva sus UUID originales. Al restaurar una colección sin UUID, MongoDB genera un UUID para la colección restaurada.

Para obtener más información sobre los UUID de colecciones, consulte las Colecciones.

4

Desde la misma máquina en la que se ejecuta uno de los mongod (en este tutorial, mongodb0.example.net), inicia mongosh. Para conectarte al mongod que escucha en localhost por el puerto predeterminado 27017, simplemente ejecuta:

mongosh

Dependiendo de la ruta, es posible que debas especificar la ruta al binario mongosh.

Si tu mongod no se está ejecutando en el puerto por defecto, especifica la opción --port para mongosh.

5

Utilice rs.initiate() en uno y solo un miembro del conjunto de réplicas:

rs.initiate( {
_id : <replName>,
members: [ { _id : 0, host : <host:port> } ]
})

MongoDB inicia un conjunto que consta del miembro actual y que utiliza la configuración del conjunto de réplicas predeterminada.

MongoDB ofrece dos opciones para restaurar miembros secundarios de un conjunto de réplicas:

Nota

Si su base de datos es grande, la sincronización inicial puede tardar bastante. Para bases de datos grandes, puede ser preferible copiar los archivos de la base de datos en cada host.

Utilice la siguiente secuencia de operaciones para "sembrar" miembros adicionales del conjunto de réplicas con los datos restaurados copiando directamente los archivos de datos de MongoDB.

1

Utiliza --shutdown o db.shutdownServer() para garantizar un apagado limpio.

2

Copie el directorio de datos principal en el de los otros miembros del conjunto de dbPath réplicas.

3
4

En una sesión mongosh conectada a la principal,agregue las secundarias al conjunto de réplicas mediante el rs.add() método. Consulte Implementar un conjunto de réplicas autoadministrado para obtener más información sobre la implementación de un conjunto de réplicas.

Utilice la siguiente secuencia de operaciones para "sembrar" miembros adicionales del conjunto de réplicas con los datos restaurados utilizando la operación de sincronización inicial predeterminada.

1

Por ejemplo, si el miembro del conjunto de réplicas tiene un storage.dbPath o --dbpath /data/dbde,debe asegurarse de que el directorio exista y esté vacío.

2
3

Conéctese al servidor principal mediante el shell y agregue cada servidor secundario al mongo conjunto de réplicas rs.add() mediante.

Cuando agrega un miembro al conjunto de réplicas, lasincronización inicial copia los datos del miembro principal al nuevo miembro.

Volver

Utilice las herramientas de MongoDB

En esta página