backup-creation-and-restoration-examples
path: databases/mongodb/backup-creation-and-restoration-examples.mdx title: Ejemplos de creación y restauración de copias de seguridad slug: backup-creation-and-restoration-examples pagination_next: null pagination_prev: null sidebar_position: 1 description: >- Este artículo proporciona ejemplos de creación y restauración de copias de seguridad en MongoDB utilizando mongodump y mongorestore. Describe escenarios para Linux, Windows Server, Docker y PowerShell, así como la automatización programada de copias de seguridad. keywords:
- Passwork
- MongoDB
- backup
- restore
- mongodump
- mongorestore
- Linux
- Windows Server
- Docker
- PowerShell
- cron
Este artículo describe ejemplos de creación de copias de seguridad en MongoDB. Las copias de seguridad garantizan la seguridad de los datos y la posibilidad de restaurarlos en caso de fallo o pérdida del sistema.
Recomendamos realizar copias de seguridad diarias de las bases de datos de MongoDB y conservar las copias de la última semana.
Las siguientes utilidades de administración, instaladas junto con MongoDB, se utilizan para la creación y restauración:
- Creación de copias de seguridad — mongodump
- Restauración de copias de seguridad — mongorestore
Ubicación de las utilidades de administración
Linux
Las utilidades de administración se encuentran en un directorio que se añade al PATH del sistema, lo que las hace accesibles para su uso desde la línea de comandos CLI.
Normalmente, las utilidades se encuentran en los siguientes directorios:
/usr/bin//usr/local/bin/

Windows Server
De forma predeterminada, las utilidades de administración de MongoDB no se encuentran en la variable de entorno $PATH, por lo que es necesario buscar las utilidades utilizando PowerShell.
Abra PowerShell como Administrador:Usando el menú contextual de Inicio
Usando el menú Inicio
powershellCtrl + Shift + Enter
Realice una búsqueda de las utilidades de administración:
$utilityPath = Get-ChildItem -Path "C:\" -Filter "mongodump.exe" -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1; $utilityDirectory = $utilityPath.DirectoryName; cd $utilityDirectory
Si MongoDB y las utilidades de administración se instalaron en una unidad no estándar, es necesario cambiar la ruta de búsqueda en el parámetro -Path.
Después de la ejecución, el directorio de trabajo actual cambiará al nuevo donde se encuentran las utilidades.
Instalación estándar de Passwork (Docker, PowerShell)
Para la compilación Docker, se utilizan scripts para crear y restaurar bases de datos de MongoDB, ubicados en el directorio raíz de la instalación de Passwork:
/<passwork>/db-backup.sh/<passwork>/db-restore.sh
Para el módulo PowerShell, se utilizan funciones para crear y restaurar bases de datos de MongoDB, ejecutadas en PowerShell como Administrador:
Backup-MongoDBRestore-MongoDB
Ejemplos de creación de copias de seguridad de MongoDB
Antes de ejecutar los comandos, cree un directorio donde se almacenarán las copias de seguridad de MongoDB:
- Linux —
mkdir /backup/ - Windows Server —
mkdir C:\backup\
Instalación independiente sin autorización
- Linux
- Windows Server
mongodump --host localhost:27017 --archive=/backup/mongo-$(date "+%Y-%m-%d_%H:%M").dump
$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
.\mongodump --host localhost:27017 --archive="C:\backup\mongo-$timestamp.dump"
Instalación independiente con autorización
El ejemplo utiliza un usuario de MongoDB con las siguientes credenciales:
- Login — adminuser
- Contraseña — password
- Linux
- Windows Server
mongodump --host localhost:27017 -u adminuser -p password --archive=/backup/mongo-$(date "+%Y-%m-%d_%H:%M").dump
$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
.\mongodump --host localhost:27017 -u adminuser -p password --archive="C:\backup\mongo-$timestamp.dump"
Replica Set sin autorización
- Linux
- Windows Server
mongodump --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 --archive=/backup/mongo-$(date "+%Y-%m-%d_%H:%M").dump
$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
.\mongodump --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 --archive="C:\backup\mongo-$timestamp.dump"
Replica Set con autorización
El ejemplo utiliza un usuario de MongoDB con las siguientes credenciales:
- Login — adminuser
- Contraseña — password
- Linux
- Windows Server
mongodump --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 -u adminuser -p password --archive=/backup/mongo-$(date "+%Y-%m-%d_%H:%M").dump
$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
.\mongodump --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 -u adminuser -p password --archive="C:\backup\mongo-$timestamp.dump"
Ejemplos de restauración de copias de seguridad de MongoDB
Instalación independiente sin autorización
- Linux
- Windows Server
mongorestore --host localhost:27017 --drop --archive=/backup/mongo-xxxx-xx-xx_xx:xx.dump
.\mongorestore --host localhost:27017 --drop --archive="C:\backup\mongo-xxxx-xx-xx_xx-xx.dump"
Instalación independiente con autorización
El ejemplo utiliza un usuario de MongoDB con las siguientes credenciales:
- Login — adminuser
- Contraseña — password
- Linux
- Windows Server
mongorestore --host localhost:27017 -u adminuser -p password --drop --archive=/backup/mongo-xxxx-xx-xx_xx:xx.dump
.\mongorestore --host localhost:27017 -u adminuser -p password --drop --archive="C:\backup\mongo-xxxx-xx-xx_xx-xx.dump"
Replica Set sin autorización
- Linux
- Windows Server
mongorestore --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 --drop --archive=/backup/mongo-xxxx-xx-xx_xx:xx.dump
.\mongorestore --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 --drop --archive="C:\backup\mongo-xxxx-xx-xx_xx-xx.dump"
Replica Set con autorización
El ejemplo utiliza un usuario de MongoDB con las siguientes credenciales:
- Login — adminuser
- Contraseña — password
- Linux
- Windows Server
mongorestore --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 -u adminuser -p password --drop --archive=/backup/mongo-xxxx-xx-xx_xx:xx.dump
.\mongorestore --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 -u adminuser -p password --drop --archive="C:\backup\mongo-xxxx-xx-xx_xx-xx.dump"
Restauración independiente de la base de datos de Passwork
Descripción
Esta opción se describe utilizando el ejemplo de una instalación básica del componente MongoDB. Se puede utilizar cualquiera de las opciones descritas anteriormente especificando el atributo en el comando de restauración.
Ejemplo de restauración
- Linux
- Windows Server
mongorestore --host localhost:27017 --nsInclude=pwbox.* --drop --archive=/backup/mongo-xxxx-xx-xx_xx:xx.dump
.\mongorestore --host localhost:27017 --nsInclude=pwbox.* --drop --archive="C:\backup\mongo-xxxx-xx-xx_xx-xx.dump"
Después de la ejecución, solo se restaurará la base de datos de Passwork del archivo de copia de seguridad de MongoDB especificado.
Configuración de copias de seguridad programadas
Linux
Para configurar la frecuencia de las copias de seguridad de la base de datos, se recomienda utilizar el programador de eventos Crontab. Más información sobre Crontab y ejemplos de su uso — Información básica de Cron
La configuración de Crontab para crear copias de seguridad debe realizarse en el servidor donde esté disponible la utilidad de administración mongodump.
Windows Server
Cree un archivo de automatización con la extensión .ps1 y especifique lo siguiente:
# Get current time
$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
# Create MongoDB backup
mongodump --host localhost:27017 --archive="C:\backup\mongo-$timestamp.dump"
Nota:
- Si MongoDB y las utilidades de administración se instalaron en una unidad no estándar, es necesario cambiar la ruta de búsqueda en el parámetro -Path;
- Antes de ejecutar la tarea en el Programador de tareas, es necesario crear el directorio donde se almacenarán las copias de seguridad de MongoDB.
Abra PowerShell como Administrador:
- Haga clic derecho en el icono de Inicio en la esquina inferior izquierda de la pantalla;
- Seleccione Windows PowerShell (Administrador) en el menú contextual.
Cree una tarea en el Programador de tareas para crear copias de seguridad de MongoDB:
# Action to run the backup.example.ps1 script using PowerShell
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File C:\backup.example.ps1"
# Run daily at 2:00 AM
$trigger = New-ScheduledTaskTrigger -Daily -At "02:00AM"
# Task settings
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -StartWhenAvailable -Hidden -Priority 5
# Create the task
Register-ScheduledTask -Action $action -TaskName "mongodb-example-backups" -Settings $settings -Trigger $trigger -RunLevel Highest -User "username" -Password "password" -Force
Nota:
- Es necesario cambiar los nombres y ubicaciones del archivo automatizado .ps1 que se ejecutará;
- Se recomienda utilizar una cuenta de administrador para ejecutar la tarea en segundo plano. Si se utiliza otro usuario, asegúrese de que tenga derechos suficientes para realizar todas las acciones.