Copias programadas y su prueba de restauración
Programa una copia diaria del clúster con systemd, borra las antiguas y comprueba que se restauran.
teseladb admin backup hace una copia consistente de todo el clúster sin parar las escrituras. Esta guía la programa
cada noche y comprueba que una copia se puede restaurar.
1. El script
Guárdalo en /usr/local/bin/teseladb-backup.sh en uno de los nodos y dale permiso de ejecución. Con --dbpath, la CLI
se presenta con el certificado de ese nodo:
#!/bin/sh
set -eu
DEST="/backups/$(date -u +%Y-%m-%dT%H%M)"
teseladb admin --dbpath /var/lib/teseladb backup --at now --out "$DEST"
# Keep 14 days of backups.
find /backups -mindepth 1 -maxdepth 1 -type d -mtime +14 -exec rm -rf {} +Cada copia es una carpeta con los ficheros de cada rango y manifest.bson, que guarda el SHA-256 de cada fichero.
2. El temporizador
# /etc/systemd/system/teseladb-backup.service
[Service]
Type=oneshot
ExecStart=/usr/local/bin/teseladb-backup.sh
# /etc/systemd/system/teseladb-backup.timer
[Timer]
OnCalendar=*-*-* 03:00:00 UTC
Persistent=true
[Install]
WantedBy=timers.targetsudo systemctl enable --now teseladb-backup.timer3. Prueba la restauración
Una copia que no has restaurado nunca no es una copia. Arranca un nodo vacío en otra máquina o directorio y restaura en él:
teseladb start --dbpath /tmp/prueba --port 28017 --peer-listen 127.0.0.1:28100 --admin-listen 127.0.0.1:28200 &
teseladb admin --node 127.0.0.1:28200 --dbpath /tmp/prueba restore --from /backups/2026-11-03T0300restore comprueba el SHA-256 de cada fichero antes de tocar nada y solo funciona sobre un clúster vacío. Después
compara recuentos con mongosh contra el puerto 28017.
4. Vigila que se hacen
Revisa systemctl list-timers teseladb-backup.timer y alerta si la última carpeta de /backups tiene más de un día.
Última actualización