Backup de Base de Datos

Documentación detallada del protocolo de backup de la base de datos de RedCollege para desarrolladores y personal de soporte.

Este documento describe el protocolo de backup de la base de datos de RedCollege, detallando los procedimientos y consideraciones tanto para desarrolladores como para el personal de soporte. El objetivo es asegurar la integridad de los datos y proporcionar una guía clara para la recuperación en caso de necesidad.

Para Personal de Soporte

Esta sección describe el proceso de backup automatizado y el protocolo para solicitar y gestionar la restauración de datos para los usuarios.

Automatización de Backups Diarios

Se ha implementado un sistema automatizado para realizar backups diarios de la base de datos de RedCollege. Estos backups se ejecutan todos los días a la medianoche (00:00 hora local de Santiago).

IMPORTANTE: Debido al horario de los backups, cualquier cambio realizado por los usuarios durante el día no estará incluido en el backup de esa misma noche. Por ejemplo, si un usuario realiza una modificación a las 3:00 PM, la copia de seguridad disponible para ese día corresponderá al estado de la base de datos a las 00:00 de ese mismo día. No es posible generar backups a petición ni realizar backups con una frecuencia mayor a la diaria.

Solicitud y Restauración de Backups

Cuando un usuario necesite recuperar información de un backup anterior, deberá seguir el siguiente protocolo:

  1. El usuario debe realizar una solicitud al equipo de soporte, especificando claramente la fecha y hora aproximada del estado de la base de datos que necesita recuperar. Es fundamental que el usuario comprenda la limitación del horario de los backups (medianoche).
  2. El equipo de soporte registrará la solicitud y la escalará al equipo de informática.
  3. El equipo de informática evaluará la solicitud y determinará la viabilidad de la restauración en función de la disponibilidad del backup solicitado.
  4. Una vez aprobada la solicitud, el equipo de informática se compromete a realizar la restauración de la información solicitada en un plazo máximo de un (1) día hábil. Este plazo se debe a la naturaleza intensiva en recursos del proceso de restauración de la base de datos.
  5. El equipo de informática notificará al equipo de soporte una vez que la restauración se haya completado y la información solicitada esté disponible (ya sea directamente en la base de datos productiva o a través de un entorno temporal para la extracción de datos).
  6. El equipo de soporte comunicará al usuario la finalización del proceso y las instrucciones para acceder a la información recuperada (si aplica).

Consideraciones Importantes para el Personal de Soporte:

  • Comunicar claramente a los usuarios el horario de los backups diarios (medianoche). Insistir en que los cambios realizados durante el día no estarán disponibles hasta el backup de la noche siguiente.
  • Servir como punto de contacto principal para las solicitudes de restauración de backups, asegurando una comunicación fluida entre el usuario y el equipo de informática.

Para Desarrolladores

Esta sección detalla cómo acceder y restaurar una copia de seguridad de la base de datos para entornos de desarrollo o pruebas locales.

Ubicación de los Backups

Los backups de la base de datos se generan automáticamente y se almacenan en DigitalOcean Spaces. La estructura de carpetas sigue el siguiente patrón:

backups/database/AAAA-MM/backup_redcollege_AAAA-MM-DD_HH-MM-SS.sql

Donde:

  • AAAA representa el año del backup.
  • MM representa el mes del backup.
  • DD representa el día del backup.
  • HH-MM-SS representa la hora, minutos y segundos en que se realizó el backup.

Por ejemplo, un backup realizado el 30 de abril de 2025 a las 17:50:29 se encontrará en la siguiente ruta:

backups/database/2025-04/backup_redcollege_2025-04-30_17-50-29.sql

Restauración de un Backup en Local

Sigue estos pasos para descargar y restaurar un backup de la base de datos en tu entorno local:

  1. Identifica el archivo de backup deseado: Navega a la ubicación en DigitalOcean Spaces y localiza el archivo .sql del backup que necesitas restaurar. Asegúrate de seleccionar el archivo correcto según la fecha y hora del backup.
  2. Descarga el archivo de backup: Descarga el archivo .sql a tu máquina local. Guarda el archivo en una ubicación accesible, por ejemplo, en la carpeta tmp/backups/.
  3. Crea una base de datos local (si no existe): Si aún no tienes una base de datos local donde restaurar el backup, créala utilizando psql o cualquier otra herramienta de administración de PostgreSQL. Por ejemplo, para crear una base de datos llamada redcollege_backup_demo:
    psql -h 127.0.0.1 -p 5432 -U tu_usuario_postgres -c "CREATE DATABASE redcollege_backup_demo;"
    

    Reemplaza tu_usuario_postgres con tu nombre de usuario de PostgreSQL local.
  4. Restaura el backup utilizando pg_restore: Utiliza el siguiente comando pg_restore para importar el contenido del archivo de backup a tu base de datos local. Asegúrate de ajustar la ruta al archivo de backup y el nombre de la base de datos de destino si es necesario.
    pg_restore -h 127.0.0.1 -p 5432 -U tu_usuario_postgres -d redcollege_backup_demo --no-owner tmp/backups/backup_redcollege_2025-04-30_17-50-29.sql
    

    Desglosando el comando:
    • -h 127.0.0.1: Especifica el host del servidor PostgreSQL local.
    • -p 5432: Especifica el puerto del servidor PostgreSQL local.
    • -U tu_usuario_postgres: Especifica el usuario de PostgreSQL que utilizarás para la restauración. Asegúrate de que este usuario tenga los permisos necesarios para escribir en la base de datos.
    • -d redcollege_backup_demo: Especifica el nombre de la base de datos local donde se restaurará el backup.
    • --no-owner: Indica que no se deben restaurar los propietarios de los objetos de la base de datos. Esto es importante para evitar problemas de permisos en tu entorno local.
    • tmp/backups/backup_redcollege_2025-04-30_17-50-29.sql: Especifica la ruta al archivo de backup descargado.
  5. Ingresa la contraseña (si es necesario): Es posible que se te solicite la contraseña del usuario de PostgreSQL especificado.
  6. Verifica la restauración: Una vez que el comando se complete sin errores, conéctate a tu base de datos local redcollege_backup_demo y verifica que los datos se hayan restaurado correctamente.

Este protocolo tiene como objetivo establecer un proceso claro y eficiente para la gestión de backups y la recuperación de datos, minimizando la confusión y gestionando las expectativas de los usuarios.