Como hacer

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

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

Usando mongodump para crear una copia de seguridad

mongodump es un comando simple que creará un archivo de respaldo de una pulvínulo de datos y sus colecciones desde las que puede restaurar. Esto requerirá un tiempo de inactividad mientras se realiza la copia de seguridad y se activa el nuevo servidor.

Si no desea tiempo de inactividad, puede realizar una migración de clúster agregando un nuevo nodo a su clúster, configurándolo como la fuente de escritura principal y luego intercambiando en caliente al nuevo nodo. Esto se hace mucho más comprensible si usa MongoDB Atlas, su servicio de pulvínulo de datos administrado.

mongodump es mucho más simple. 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 pulvínulo de datos y una ubicación de salida:

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

Incluso puede volcar manualmente colecciones específicas con el –collection bandera.

Mongodump se puede ejecutar en una pulvínulo de datos en vivo y solo toma unos segundos crear la copia de seguridad. Sin incautación, cualquier escritura en la pulvínulo de datos se perderá efectivamente, ya que está moviendo servidores. Conveniente a esto, querrá deshabilitar el tráfico ayer de crear el volcado.

Restaurar desde la copia de seguridad

Deberá transferir el archivo de respaldo del servidor precursor 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 sucesivo comando, reemplazando los nombres de heredero y los nombres de host con títulos para sus 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á MongoDB instalado en el nuevo servidor.

Para hacerlo, puede utilizar el mongorestore mando:

mongorestore

Debería ver inmediatamente la nueva tabla acondicionado en la nueva pulvínulo de datos.

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

 

Pin it

Transferencia de todo el disco (opcional)

Opcionalmente, si se está trasladando a un servidor más potente, puede transferir toda la dispositivo de puesta en marcha, que debería copiar la pulvínulo de datos unido con el resto de la configuración del servidor.

En este caso, querrá utilizar el rsync comando para cargar directamente los datos en el servidor de destino. rsync se conectará mediante SSH y sincronizará las dos carpetas; en este caso, queremos dirigir la carpeta lugar al servidor remoto:

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

Ese es todo el comando. Debería ver una mostrador de progreso a medida que completa la transferencia (usando compresión con el -z flag), y cuando haya terminado, verá los archivos en la carpeta de destino en el nuevo servidor. Puede que tenga que ejecutar esto varias veces para copiar cada carpeta; puedes usar esto en vírgula rsync alternador de comandos para crear el comando para cada ejecución.