NARA · Evidencia TRL

Análisis de la evidencia existente de respaldo y restauración (sesión 2026-10-10-7)

Fuente: pruebas/evidencia/2026-10-10-4/respaldos/ (registro.csv, restauracion.json, restauracion_alinear.json), herramientas/qa/laboratorio/respaldo_cada_2_5h.ps1, restaurar_local.js, datos/base_local/scripts/respaldo.js, _resumen.json de cada respaldo en datos/respaldos_db/, docs/trl/runbooks/03_restauracion_respaldo.md. No se hizo ningún respaldo ni restauración nuevos.

Frecuencia real (registro.csv)

# Inicio (-05:00) Fin Duración Intervalo desde el anterior Documentos Bytes Resultado Origen
1 03:06:03 03:06:11 8,0 s — 2036 2.058.848 ok Manual (la tarea arranca a las 05:36)
2 05:36:01 05:36:39 38,2 s 2 h 29 min 58 s 2037 2.059.386 ok Tarea
3 08:06:03 08:06:34 31,2 s 2 h 30 min 02 s 2042 2.066.387 ok Tarea
4 10:36:02 10:36:30 28,0 s 2 h 29 min 59 s 2048 2.082.700 ok Tarea

Pérdida de datos posible (RPO 2,5 h)

Restauración probada

Archivo Respaldo Destino Restaurado Segundos Colecciones Documentos Diferencias
restauracion.json nara_2026-10-10-08-06 (03:06 local) 127.0.0.1/nara_restore_rto (Mongo local del portátil) 05:39 local 1,63 33 2036 0
restauracion_alinear.json nara_2026-10-10-13-06 (08:06 local) 127.0.0.1/nara_alinear 08:30 local 1,564 33 2042 0

Observaciones:

  1. segundos mide solo la inserción en el Mongo local (desde el primer insertMany hasta el último índice). No incluye: detectar la falla, decidir, conseguir la credencial, restaurar en Atlas (o en otro clúster), apuntar MONGODB_URI de Render a la base restaurada, redesplegar y verificar con la app. Ese tiempo total (el RTO real) no está medido.
  2. La comparación es solo de conteos por colección contra el _resumen.json del mismo respaldo, que respaldo.js escribe con docs.length de lo que él mismo exportó. Comprueba que el archivo se reinsertó completo, pero no que el respaldo coincida con la base en línea a la hora del respaldo, ni el contenido documento por documento. El runbook pide comparar_db.js documento por documento; no se usó.
  3. No se hizo el paso 2 de 5.17/R-06 (crear 3 registros nuevos y borrar 1 después del respaldo, y verificar que lo restaurado no tiene los 3 y sí tiene el borrado).
  4. «Entorno limpio»: base vacía en el Mongo local del mismo portátil que hace el respaldo. Es una base separada de producción, pero no un entorno separado de la máquina que guarda el respaldo; no se probó restaurar en Atlas ni que la app funcione contra la base restaurada.
  5. Los respaldos restaurados tenían 33 colecciones; desde el respaldo de las 10:36 hay 34 (aparece login_attempts). No se ha probado restaurar un respaldo con las 34 colecciones.

Dónde se guarda el respaldo

Respaldo nativo de Atlas

No verificado: no hay acceso a Atlas Admin. pruebas/entornos.md deja el plan del clúster como PENDIENTE.

Procedimiento escrito