Cómo hacer una copia de seguridad y migrar una base de datos MongoDB

La migración de bases de datos es algo que todos los administradores de sistemas tendrán que hacer en algún momento. Afortunadamente, MongoDB proporciona comandos integrados para crear y restaurar copias de seguridad, lo que facilita la migración a un nuevo servidor.

Índice de contenidos
  1. Usando mongodump para crear una copia de seguridad
  2. Reinstalar desde el respaldo
  3. Transferencia de todo el disco (opcional)

Usando mongodump para crear una copia de seguridad

mongodump es un comando simple que creará un archivo de respaldo de una base de datos y sus colecciones desde el cual puede restaurar. Esto requerirá un período de inactividad mientras se realiza la copia de seguridad y se inicia el nuevo servidor.

Si no quiere tiempo de inactividad, puedes realizar una migración de clúster agregar un nuevo nodo a su clúster, configurarlo como la fuente de escritura principal y luego intercambiar en caliente el nuevo nodo. Esto se hace mucho más fácil si está utilizando MongoDB Atlas, su servicio de base de datos administrado.

mongodump es mucho más sencillo. Deberá crear un directorio para las copias de seguridad:

sudo mkdir /var/backups/mongobackups

Y luego corre mongodump, pasándolo en un parámetro de base de datos y una ubicación de salida:

sudo mongodump --db databasename --out /var/backups/mongobackups/backup

También puede volcar manualmente colecciones específicas con el archivo --collection bandera.

Mongodump se puede ejecutar en una base de datos en vivo y solo toma unos segundos crear la copia de seguridad. Sin embargo, cualquier escritura en la base de datos se perderá realmente, ya que está moviendo servidores. Por esta razón, le recomendamos que desactive el tráfico antes de crear el volcado.

Reinstalar desde el respaldo

Deberá transferir el archivo de respaldo del servidor antiguo al nuevo. Esto se puede hacer descargándolo a través de FTP, luego subiéndolo al nuevo servidor, pero para copias de seguridad grandes es mejor establecer una conexión directa y transferirlo usando scp.

Puede usar el siguiente comando, reemplazando nombres de usuario y nombres de host con valores para los servidores.

scp user@SRC_HOST:/var/backups/mongobackups/FILENAME  user@DEST_HOST:~/FILENAME

Luego, una vez que tenga la copia de seguridad en el nuevo servidor, puede cargarla desde la copia de seguridad. Por supuesto, necesitará instalar MongoDB en el nuevo servidor.

Para hacer esto, puede usar el archivo mongorestore mando:

mongorestore <options> <connection-string> <file to restore>

Debería ver inmediatamente la nueva tabla disponible en la nueva base de datos.

Después de verificar que todo se haya transferido correctamente, deberá cambiar el tráfico al nuevo servidor, probablemente actualizando sus registros DNS. Si está utilizando AWS o un proveedor similar con direcciones IP elásticas, puede intercambiar la dirección para apuntar al nuevo servidor, que no requerirá una actualización de DNS.

Cambiar el enlace a la dirección IP elástica

Transferencia de todo el disco (opcional)

Opcionalmente, si se está moviendo a un servidor más potente, puede transferir a toda la unidad de arranque, que debería copiar la base de datos junto con el resto de la configuración del servidor.

En este caso, le recomendamos que utilice el archivo rsync comando para cargar datos directamente al servidor de destino. rsync se conectará mediante SSH y sincronizará las dos carpetas; en este caso, queremos enviar la carpeta local al servidor remoto:

sudo rsync -azAP / --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} username@remote_host:/

Este es el comando completo. Debería ver una barra de progreso a medida que completa la transferencia (usando compresión con el -z flag) y al final verá los archivos en la carpeta de destino en el nuevo servidor. Es posible que deba ejecutarlo varias veces para copiar cada carpeta; puedes usar esto en línea rsync generador de comando para generar el comando para cada ejecución.

Descubre más contenido

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: Nelida Haydee Saldivia.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a KnownHost que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Subir