diff --git a/docs/ambito/dtic-DASUTEN/A04.P006_Backups-DASUTEN.md b/docs/ambito/dtic-DASUTEN/A04.P006_Backups-DASUTEN.md index ff15ca3e..5187ef94 100644 --- a/docs/ambito/dtic-DASUTEN/A04.P006_Backups-DASUTEN.md +++ b/docs/ambito/dtic-DASUTEN/A04.P006_Backups-DASUTEN.md @@ -3,10 +3,10 @@ > **Ámbito:** A04 — dtic-DASUTEN **Código:** A04.P006 -**Fecha:** 15 de abril de 2026 +**Fecha:** 21 de abril de 2026 **Autor:** Sistema ADN -**Versión:** 1.3 -**Estado:** ✅ COMPLETADO Y VALIDADO (Pipeline completo + migración + validación usuario) +**Versión:** 1.4 +**Estado:** ✅ OPERATIVO Y AUTOMATIZADO (Pipeline completo validado + fixes de bitácora aplicados) **Dependencia:** A04.P005 (DASUTEN sin DC), A03.P002 (Automatización Backups) ## 📊 Progreso @@ -35,6 +35,68 @@ **Conclusión:** El pipeline de backups funcionaba correctamente desde el inicio. La causa raíz de la "desactualización" percibida era la zona horaria incorrecta en dasu-sql4, que desplazaba las fechas ~5 horas adelante (UTC+2 en lugar de UTC-3). +--- + +## 🚀 Procedimiento de Ejecución + +> **Leer esta sección primero.** Contiene los comandos exactos para ejecutar el backup la próxima vez. + +### Flujo completo de una sesión de backup + +#### 1️⃣ Registrar evento de preparación en bitácora + +```bash +# Reemplazar HH:MM con la hora actual +./adn/tools/run db evento:crear \ + --inicio "HH:MM" \ + --ambito "dtic-DIIAA" \ + --modo "R" \ + --estado "⏳" \ + --nodo "dtic-BKPs" \ + --ia \ + --doc "ambito/dtic-DASUTEN/A04.P006_Backups-DASUTEN.md" \ + --descripcion "[A04.P006] Preparación para ejecución pipeline backup FULL DASUTEN. Revisión del plan y confirmación de nodos previo al lanzamiento." +``` + +> Anotar el **ID** del evento creado (aparece en la salida). + +#### 2️⃣ Cerrar el evento de preparación + +```bash +# Reemplazar con el ID del evento y HH:MM con la hora actual +./adn/tools/run db evento:actualizar --fin "HH:MM" --estado "✅" +``` + +#### 3️⃣ Lanzar el pipeline + +```bash +# Pipeline FULL (semanal — ~10-15 min) +./adn/tools/run bkps run dasuten_full --batch + +# Pipeline DIFERENCIAL (diario lun-vie — ~5-10 min) +./adn/tools/run bkps run dasuten_diferencial --batch +``` + +### Registro en bitácora + +Los drones registran sus eventos automáticamente bajo: +- **Ámbito:** `dtic-DIIAA` +- **Nodo:** `dtic-BKPs` (nodo lógico de servicio, ID: 49) + +Para consultar los eventos del día: +```bash +./adn/tools/run db evento:listar --ambito dtic-DIIAA --nodo dtic-BKPs +``` + +### Frecuencias recomendadas + +| Pipeline | Comando | Frecuencia | Horario | Duración | +|----------|---------|------------|---------|----------| +| **FULL** | `dasuten_full --batch` | Semanal (lunes) | 08:00 | ~10-15 min | +| **Diferencial** | `dasuten_diferencial --batch` | Diario (lun-vie) | 08:00 | ~5-10 min | + +--- + ## 🎯 Objetivo Establecer un sistema de backups y refrescos de la base de datos DASUTEN que permita: @@ -200,6 +262,7 @@ El procesador `Dasuten` fue integrado en `bkps.rb` como un nuevo tipo de tarea: | **2026-04-15 11:01** | **Pipeline FULL** | **13m 15s** | **~1.3 GB** | **✅ COMPLETO** | | **2026-04-15 16:30** | **Migración + TZ** | **~30 min** | **~1.3 GB** | **✅ COMPLETO** | | **2026-04-15 17:00** | **Validación Usuario** | **—** | **—** | **✅ VALIDADO (Andrea Almirón)** | +| **2026-04-21 07:21** | **Pipeline FULL** | **10m 50s** | **~1.3 GB** | **✅ COMPLETO + fixes bitácora** | ### Detalle Pipeline 2026-04-15 (Test Completo) @@ -389,6 +452,10 @@ file_info = DasuExecutor.get_file_info_on_fenix(client, 'X:\backup.bak') | 2026-04-15 | Heartbeat con output acumulado en Bitácora Web | Visibilidad completa del progreso de drones multi-paso | | 2026-04-15 | **Zona horaria incorrecta pasa desapercibida** | Datos "actualizados" pero invisibles para el usuario — validar TZ en todo restore | | 2026-04-15 | **Validación usuario es crítica** | El pipeline técnicamente exitoso necesita confirmación del usuario final | +| 2026-04-21 | **`create_entrada` no aceptaba `ambito_id`** | Eventos de drones no se registraban en bitácora — fix: agregar kwarg a firma y SQL | +| 2026-04-21 | **`detectar_nodo_id` ignoraba el parámetro `nodo`** | Siempre usaba hostname local — fix: lookup por nombre pasado, fallback a hostname | +| 2026-04-21 | **Separar nodo operacional de nodo de bitácora** | El nodo del yml (srvv-fenix, etc.) es interno al dron; bitácora debe usar `dtic-BKPs` | +| 2026-04-21 | **Registrar evento de preparación antes del pipeline** | El procedimiento debe iniciar creando un evento ⏳ en bitácora y cerrarlo antes de lanzar | ## 📈 Mejora de Latidos/Acumulados (2026-04-15)