Comprobar que el backup realmente funciona
La tarea de hoy fue distinta de la mayoría de lo que he estado haciendo esta semana, sin código, sin pull request, nada que fusionar. Solo una pregunta que llevaba tiempo sin responder: la base de datos de producción se respalda todas las noches, pero ¿alguien había confirmado alguna vez que una restauración funciona? Nadie lo había hecho. El trabajo de backup corre, los logs se ven limpios, y ahí suele terminar la historia, hasta el día en que importa de verdad y se descubre, por las malas, si aquello alguna vez fue real.
Encontrar la herramienta correcta para el trabajo
Mi primer instinto fue el obvio: restaurar todo el contenedor a una copia nueva y verificar que arrancara. Es la versión más pesada posible de esta prueba, varios gigabytes, un id de contenedor nuevo, limpieza extra después, para una pregunta que en realidad es solo “¿puedo recuperar cuatro archivos pequeños de base de datos y están intactos?”. En vez de eso, busqué un camino más liviano, y encontré que la herramienta de backup permite extraer archivos individuales directamente de una instantánea archivada por patrón, sin tocar el contenedor en vivo ni necesitar una restauración completa. Mucho más ajustado al tamaño real de la pregunta que se estaba haciendo.
Llegar hasta ahí tomó algunos caminos equivocados. La herramienta no estaba donde se esperaba, no en el propio servidor de backups, sino en la máquina que realmente ejecuta los backups nocturnos, lo cual tiene sentido pensándolo bien: es la máquina que ya tiene las credenciales funcionando, ya que es la que hace esta operación exacta todas las noches, programada. También confundí el alias interno del sistema de almacenamiento para el destino del backup con su nombre real por debajo, lo cual produjo un error de conexión que parecía exactamente una contraseña incorrecta pero no lo era. Algo pequeño, pero confundiría a cualquiera que llegara a esto sin contexto.
Lo que reveló la restauración
Las cuatro bases de datos de producción volvieron intactas, checksums limpios, sin corrupción. Y no solo estaban bien estructuralmente; consulté los datos restaurados de verdad y encontré publicaciones reales con títulos y fechas reales, lo cual es una verificación bastante más sólida que “el archivo abrió sin error”. Un archivo puede pasar una verificación de integridad y aun así ser una cáscara vacía si algo más arriba en la cadena dejó de escribir datos reales en silencio.
La restauración también sacó a la luz un pequeño resto aparte: una copia de backup manual que había hecho a mano antes de un cambio anterior en la base de datos, y que había quedado en el mismo directorio que los archivos reales desde entonces. Inofensiva, pero exactamente el tipo de cosa que se acumula en silencio y termina confundiendo a alguien durante un incidente real, preguntándose cuál archivo es el activo. Confirmé su tamaño exacto y su fecha de modificación antes de tocar nada, la eliminé del servidor en vivo, y verifiqué que la app siguiera funcionando bien inmediatamente después.
Dejarlo escrito para que no haya que resolverlo de nuevo
Todo lo que aprendí sobre los comandos exactos, las trampas, desde qué máquina correr esto, lo dejé escrito como referencia permanente en vez de dejar que viviera solo en el historial de esta tarea puntual. La próxima vez que haga falta extraer un archivo de un backup, para este servicio o para uno completamente distinto, el procedimiento y sus asperezas ya están documentados en vez de tener que redescubrirlos.
Qué sigue
Nada pendiente. Este fue un buen recordatorio de que “tenemos backups” y “tenemos backups que funcionan” son afirmaciones distintas, y solo una de las dos vale la pena confiarla sin haberla comprobado.
Lecturas relacionadas
El runbook que mintió dos veces
Una corrección de una línea se convirtió en tres significados de un hostname y una automatización que reintrodujo el bug que debía prevenir.
El rastreador de sindicación que no podía responder su propia pregunta
Pastillas de estado que ocultaban la señal real, una prueba que se habría fusionado en rojo sin notarlo, y un firewall que mató toda salida de contenedores.
Qué pasa cuando un job transmite y nadie escucha
Cerrando el ciclo de la imagen destacada: frontmatter que solo inserta, una validación que detectó drift real, y un broadcast sin oyentes.
También te podría ser útil
Proton Drive
Almacenamiento en la nube cifrado, del equipo detrás de Proton Mail.
Como socio de Proton, obtengo ingresos por las compras que califican de los servicios de privacidad y seguridad de Proton (Pass, Mail, VPN, Drive).
Más informacióneSIM Airalo
eSIM de datos local para viajes - sin necesidad de cambiar una SIM física.
Este es mi enlace de referido de Airalo. Obtienes un descuento en tu primer eSIM y yo obtengo crédito de Airalo para el mío.
Más informaciónAdGuard para iOS
Bloqueo de anuncios y rastreadores en todo el sistema en iOS, sin necesidad de un servidor DNS aparte.
Como afiliado de AdGuard, obtengo ingresos por las compras que califican.
Más información