Rescatando la Base de Datos Financiera

in #cervantes13 hours ago

o3o.png

Objetivo General

El estudiante será capaz de diseñar y ejecutar una estrategia de recuperación de desastres (DRP) básica, comprendiendo el rol vital del Protocolo WAL, seleccionando niveles de protección de hardware (RAID) y ejecutando técnicamente una restauración completa tras un fallo catastrófico simulado.

Contextualización

Eres el nuevo DBA de la startup NovaFintech. Son las 4:00 PM y el sistema de nóminas está a punto de ejecutarse. Tienes una política de seguridad estricta. De repente, el servidor principal lanza una alerta crítica: "Fallo en disco 0 - Corrupción de datos inminente". Segundos después, la base de datos desaparece.

El CEO te mira esperando una solución. Tu misión no es solo recuperar los datos, sino demostrar que tu estrategia de Bitácora (WAL) y Backups ha funcionado, salvando el dinero de la empresa. ¿Estás listo para activar la Operación Fénix?

Materiales y Recursos

  • Computadora con acceso a un SGBD (MySQL, MariaDB, PostgreSQL o SQL Server). Se usarán comandos genéricos de SQL en este ejemplo.
  • Herramienta de línea de comandos o interfaz gráfica (Workbench, pgAdmin, DBeaver).
  • Editor de texto (Notepad++, VS Code, Notion) para redactar el informe.
  • "Lápiz y papel" para diseñar la estrategia inicial.

Instrucciones Paso a Paso

FASE 1: Diseño de la Fortaleza (Estrategia)

  1. Define tu Nivel de Protección (RAID):

    • En un documento de texto, escribe qué nivel de RAID (RAID 1, RAID 5 o RAID 10) elegirías para los servidores de NovaFintech.
    • Justifica: ¿Por qué ese nivel? (Considera velocidad vs. redundancia).
  2. Define tu Política de Backups:

    • Escribe tu estrategia: ¿Harás backups completos diarios? ¿Diferenciales? ¿Cada cuánto se respalda el Log de Transacciones (WAL)?
    • Meta: Establece un RPO (Punto objetivo de recuperación) hipotético. Ejemplo: "No podemos perder más de 15 minutos de datos".

FASE 2: La Calma antes de la Tormenta (Creación de Datos)

  1. Crea la Base de Datos:

    • Ejecuta el siguiente script SQL para crear el entorno inicial:
    CREATE DATABASE NovaFintech;
    USE NovaFintech;
    CREATE TABLE Cuentas (ID int, Cliente varchar(50), Saldo decimal(10,2));
    INSERT INTO Cuentas VALUES (1, 'Empresa A', 50000.00), (2, 'Empresa B', 75000.00);
    
  2. Verificación WAL:

    • Entiende que esta inserción ya generó entradas en la Bitácora (Transaction Log/WAL) antes de escribirse en el disco. El sistema está consistente.

FASE 3: El Primer Seguro (Backup Completo)

  1. Ejecuta el Backup Full:

    • Realiza una copia de seguridad completa de la base de datos NovaFintech.
    • Nombre del archivo: Nova_Full_Backup_4PM.sql
    • Nota: Esto representa tu punto de restauración base.

FASE 4: La Vida Continúa (Transacciones en el Log)

  1. Simula Actividad Reciente:

    • Después del backup, la empresa sigue operando. Ejecuta estas transacciones críticas:
    INSERT INTO Cuentas VALUES (3, 'Empleado Juan', 2500.00);
    UPDATE Cuentas SET Saldo = Saldo - 2500.00 WHERE ID = 1; -- Pago de nómina
    
  2. Simula el Backup del Log (WAL):

    • Imagina que tu sistema automático hace un backup del Log cada 10 minutos. Para simular esto manualmente, exporta solo estas últimas transacciones o genera un segundo archivo SQL pequeño con estos cambios.
    • Nombre del archivo: Nova_Log_Backup_415PM.sql

FASE 5: El Desastre (Fallo Simulado)

  1. Destrucción de Datos:

    • Ahora simularás el fallo del disco o un error humano grave (un DROP accidental).
    • Ejecuta:
    DROP DATABASE NovaFintech;
    
  2. Verificación del Pánico:

    • Intenta hacer un SELECT * FROM Cuentas. El sistema debe dar error. La base de datos ha desaparecido.

FASE 6: La Resurrección (Plan de Recuperación)

  1. Paso 1: Restaurar la Base (Full Restore):

    • Utiliza tu archivo Nova_Full_Backup_4PM.sql para restaurar la estructura y los primeros datos.
    • Verifica: Si consultas ahora, verás a la Empresa A y B, pero NO verás el pago al Empleado Juan. (Datos inconsistentes/incompletos).
  2. Paso 2: Aplicar el WAL (Log Restore):

    • Aquí entra la magia del WAL. Aplica (ejecuta) el archivo Nova_Log_Backup_415PM.sql.
    • Explicación: Esto simula la operación REDO (Rehacer) del motor de base de datos, volviendo a aplicar las transacciones que estaban en la bitácora pero no en el backup completo.
  3. Verificación Final:

    • Consulta la tabla Cuentas. ¿Aparece Juan? ¿El saldo de la Empresa A se redujo? Si es así, ¡la recuperación fue exitosa!

Posible Problema y Solución Rápida

  • Problema: Al intentar restaurar, el sistema dice "Database creates error" o "Database already exists".
  • Solución: Asegúrate de que el script de respaldo incluya la línea CREATE DATABASE IF NOT EXISTS NovaFintech; o créala manualmente en blanco antes de importar los datos.