Todo sobre Copias de Seguridad y Respaldos
Tipos principales de copias de seguridad
- Respaldo Completo (Full Backup): Crea una copia total de todos los datos de origen. Es la base necesaria para cualquier otra estrategia de respaldo y ofrece la mayor velocidad de recuperación, aunque requiere mucho tiempo y espacio de almacenamiento.
- Respaldo Diferencial: Guarda únicamente los datos que han cambiado desde el último respaldo completo inicial. Es más rápido de realizar que un respaldo completo y su restauración solo requiere el último respaldo completo y el diferencial más reciente.
- Respaldo Incremental: Copia solo los datos modificados desde el último respaldo realizado (sea este completo, diferencial o incremental). Es el método que menos espacio consume y el más rápido de ejecutar, pero su restauración es la más lenta, ya que requiere procesar toda la cadena de incrementos.
- Respaldo de Espejo (Mirror): Crea una copia exacta y en tiempo real de los datos. Permite un acceso directo a los archivos, pero cualquier error o borrado en el origen se replica inmediatamente en el espejo, eliminando la posibilidad de recuperar versiones anteriores.
- Otros métodos modernos: Incluyen el Incremental Inverso (inyecta cambios en el respaldo completo para que este sea siempre la versión más reciente), el Sintético Completo (genera un respaldo completo a partir de incrementos sin leer el origen) y el Incremental para siempre.
Diferencias Clave en NoSQL
Aunque los nombres sean iguales, la forma de ejecutarlos en NoSQL difiere por su naturaleza distribuida:
- Enfoque en Instantáneas (Snapshots): Mientras que los sistemas relacionales se centran mucho en volcados lógicos (SQL Dumps), los sistemas NoSQL suelen apoyarse más en Snapshots a nivel de archivos o disco. Cassandra, por ejemplo, usa el comando
nodetool snapshotpara crear enlaces físicos de sus archivos inmutables (SSTables). - Arquitectura Distribuida: En sistemas relacionales como SQL Server o MySQL, el respaldo suele ser de una instancia central. En NoSQL, al estar los datos repartidos en múltiples nodos, el “respaldo completo” requiere coordinar copias en todos los miembros del clúster para mantener la consistencia.
- Manejo de Logs:
- Relacionales: Usan Logs de Transacciones (SQL Server) o Binary Logs (MySQL) para registrar cambios secuenciales.
- NoSQL: Utilizan mecanismos similares como el Oplog (MongoDB) o el CommitLog (Cassandra), pero su función principal a menudo es la replicación inmediata entre nodos más que solo el respaldo histórico.
Respaldos en Caliente (Hot Backups)
Se realizan mientras la base de datos está activa y los usuarios continúan trabajando en ella.
- Funcionamiento: Herramientas como SQL Server Backup permiten realizar estas copias sin interrumpir las transacciones en curso. De igual forma, se pueden realizar capturas de imagen de servidores (snapshots) y volcados de datos (como SQL Dumps) en caliente, garantizando que la información capturada sea consistente.
- Ventajas: Ofrece una disponibilidad garantizada, lo que es crucial para sistemas que no pueden permitirse tiempos de inactividad.
- Desafíos: Realizar estas copias puede afectar el rendimiento de los servicios. Por ello, es común programar las tareas automáticas (como los respaldos incrementales) fuera del horario laboral (por ejemplo, a las 22:00 hrs) para minimizar el impacto en los usuarios.
- Restricciones: Aunque la base de datos esté abierta, ciertas actividades administrativas pueden estar restringidas durante el backup, como la creación de índices o modificaciones estructurales en el sistema.
Respaldos en Frío y Almacenamiento en Frío (Cold Backup / Storage)
- Almacenamiento en Frío (Cold Storage): Se define como el resguardo de datos en medios que no están conectados permanentemente a la red. Es el método ideal para archivos históricos o datos que deben conservarse por cumplimiento legal, ya que se accede a ellos con muy poca frecuencia.
- Aislamiento Físico (Air-Gap): Es una medida de seguridad donde los dispositivos de almacenamiento (como discos duros externos) permanecen desconectados de cualquier equipo o red una vez terminada la copia. Esto crea una “reserva fría” de información que es virtualmente impenetrable contra ataques de ransomware, ya que el malware no puede alcanzar un medio que no está conectado eléctricamente.
- Estrategia de rotación: En entornos institucionales, se suelen usar medios físicos que se transportan a bóvedas de resguardo externas para cumplir con la regla de seguridad 3-2-1 (mantener copias fuera de sitio).
¿Cuándo usar cada uno?
La elección depende de los objetivos de tiempo y punto de recuperación (RTO1 y RPO2) de la organización:
- Use Respaldos Completos periódicamente (ej. semanalmente) como punto de partida para asegurar que tiene una base íntegra de todos los objetos y datos.
- Use Respaldos Diferenciales en bases de datos con modificaciones frecuentes donde se prefiera un equilibrio entre velocidad de copia y una restauración relativamente sencilla.
- Use Respaldos Incrementales cuando la ventana de tiempo para respaldar sea muy pequeña o el almacenamiento sea limitado, aceptando que la recuperación será más compleja.
- Use Recuperación en un punto en el tiempo (PITR) mediante logs de transacciones cuando necesite la capacidad de recuperar datos hasta un segundo exacto para minimizar la pérdida ante errores humanos o fallos repentinos.
- Use Respaldos en Caliente para la operación diaria y la recuperación rápida ante fallos de hardware o errores humanos, asegurando que el negocio no se detenga.
- Use Almacenamiento en Frío (o medios desconectados) para la protección final contra ciberataques y para el cumplimiento de retención legal de datos históricos (respaldos anuales o de cierre de mes), donde la prioridad es la integridad y el aislamiento sobre la velocidad de acceso.
Diferencias entre manejadores de bases de datos
Cada sistema gestiona estas copias de forma particular a través de sus propias herramientas y modelos:
- SQL Server: Utiliza Modelos de Recuperación (Full, Simple y Bulk-Logged) que determinan cómo se registran las transacciones. El modelo Full permite respaldos del Log de Transacciones para recuperación PITR (Point-In-Time Recovery, recuperación en un punto específico en el tiempo), mientras que el modelo Simple trunca el log automáticamente, permitiendo solo restauraciones de respaldos completos o diferenciales.
- MySQL: Se apoya principalmente en la utilidad
mysqldumppara generar volcados lógicos de SQL o en copias directas de archivos. Para la recuperación point-in-time, es indispensable tener habilitados los binary logs (binlogs), que registran cada cambio realizado en la base de datos. - PostgreSQL: Ofrece la herramienta
pg_dumpcon varios formatos de salida: plain (texto plano), custom (formato propio comprimido), directory y tar. El formato custom es frecuentemente el más eficiente, ya que permite la restauración paralela mediantepg_restore, reduciendo significativamente los tiempos de recuperación en comparación con el texto plano. - Oracle: Se especializa en el uso de Recovery Manager (RMAN) para gestionar estrategias de respaldo en disco y cinta. Incluye tecnología avanzada como Flashback Database, que permite “rebobinar” la base de datos para corregir problemas sin necesidad de una restauración completa desde archivos externos.
Instrucciones e Implementación en los SGBD
1. SQL Server
En SQL Server, los respaldos se pueden realizar mediante Transact-SQL (T-SQL) o la interfaz gráfica de SQL Server Management Studio (SSMS).
- Respaldo Completo (Full): Crea una copia de todos los datos y objetos.
- Instrucción:
BACKUP DATABASE [Nombre_BD] TO DISK = 'C:\Ruta\Archivo.bak'.
- Instrucción:
- Respaldo Diferencial: Solo guarda los cambios realizados desde el último respaldo completo.
- Instrucción:
BACKUP DATABASE [Nombre_BD] TO DISK = 'C:\Ruta\Archivo.bak' WITH DIFFERENTIAL.
- Instrucción:
- Respaldo del Log de Transacciones: Copia los cambios desde el último respaldo del log; requiere que la base de datos no esté en modelo de recuperación “Simple”.
- Instrucción:
BACKUP LOG [Nombre_BD] TO [Dispositivo_o_Ruta].
- Instrucción:
- Dispositivos de Respaldo: Se pueden definir dispositivos lógicos permanentes con el procedimiento
sp_addumpdevice.
2. MySQL
MySQL utiliza principalmente herramientas de utilidad de línea de comandos y registros binarios.
mysqldump: Es la utilidad estándar para realizar volcados lógicos de la base de datos.- Recuperación Point-in-Time (PITR): Para recuperar datos hasta un momento exacto, es indispensable que los binary logs (binlogs) estén activados.
- Instrucción: Al usar
mysqldump, se debe incluir la opción--source-data=2(o--master-data=2en versiones anteriores) para registrar la posición exacta del binlog al momento del respaldo.
- Instrucción: Al usar
mysqlbinlog: Herramienta utilizada para leer y aplicar los cambios registrados en los archivos binlog durante una restauración.
3. PostgreSQL
PostgreSQL se apoya en las herramientas nativas pg_dump y pg_restore, ofreciendo flexibilidad en los formatos de salida.
- Formatos de
pg_dump(Opción-F):p(plain): Genera un archivo de texto plano con sentencias SQL.c(custom): Formato propio comprimido, altamente eficiente y el más recomendado.d(directory): Crea un directorio con un archivo por cada tabla, permitiendo carga paralela.
- Compresión (Opción
-Z): Permite especificar niveles del 0 al 9 para reducir el espacio en disco. - Carga Paralela (Opción
-j): Enpg_restore, se puede usar esta opción para ejecutar múltiples trabajos concurrentes, acelerando la recuperación según el número de núcleos del CPU.
4. Oracle
Oracle gestiona sus respaldos principalmente a través de un administrador especializado y tecnologías de “rebobinado”.
- Recovery Manager (RMAN): Es la herramienta principal para planificar e implementar estrategias de respaldo y recuperación tanto en disco como en cinta.
- Flashback Database: Tecnología que permite diagnosticar y reparar fallas de datos rápidamente, permitiendo regresar la base de datos a un estado anterior sin una restauración completa.
- Tipos de Copia: Permite la creación de copias de imagen y respaldos incrementales rápidos mediante el seguimiento de cambios de bloque.
- Modo ARCHIVELOG: Debe estar habilitado para permitir recuperaciones completas y en un punto en el tiempo.
5. MongoDB
MongoDB utiliza utilidades de línea de comandos para realizar volcados binarios de los datos.
- Respaldo Completo (Volcado Lógico): Se utiliza la herramienta
mongodump. Crea archivos BSON con el contenido de la base de datos.- Instrucción:
mongodump --db [nombre_bd] --out [ruta_carpeta].
- Instrucción:
- Restauración: Se utiliza la herramienta
mongorestore.- Instrucción:
mongorestore --db [nombre_bd] [ruta_carpeta/nombre_bd].
- Instrucción:
- Respaldos en Caliente: Para bases de datos en producción, se suele utilizar la opción
--oplogconmongodumppara capturar las operaciones realizadas durante el proceso de respaldo y garantizar la consistencia. - Instantáneas (Snapshots): En entornos de nube o sistemas de archivos con soporte, se recomienda realizar instantáneas del volumen de almacenamiento (LVM o EBS en AWS) mientras la base de datos tiene el “fsync lock” activado.
6. Apache Cassandra
Cassandra, al ser un sistema distribuido, maneja los respaldos de forma distinta, basándose en la inmutabilidad de sus archivos (SSTables).
- Instantáneas (Snapshots): Es el método nativo principal. El comando
nodetool snapshotcrea enlaces físicos (hard links) de los archivos de datos actuales en una carpeta de “snapshots”.- Instrucción:
nodetool snapshot [nombre_keyspace].
- Instrucción:
- Limpieza de Instantáneas: Dado que ocupan espacio en disco, deben eliminarse manualmente una vez que se han movido a un almacenamiento seguro.
- Instrucción:
nodetool clearsnapshot.
- Instrucción:
- Respaldos Incrementales: Cassandra puede configurarse para guardar una copia de cada SSTable nueva en una carpeta de “backups” activando
incremental_backups: trueen el archivocassandra.yaml. - Restauración: No existe un comando
nodetool restore. El proceso implica detener el nodo, borrar los datos actuales y copiar manualmente los archivos de la instantánea a la carpeta de datos activa antes de reiniciar el servicio.
Recuperacion de Respaldos
1. SQL Server
La recuperación en SQL Server depende del Modelo de Recuperación (Full o Simple) y se puede realizar mediante comandos de Transact-SQL (T-SQL) o la interfaz de SQL Server Management Studio (SSMS).
- Restauración de Respaldo Completo: Se utiliza el comando
RESTORE DATABASE.- Instrucción:
RESTORE DATABASE [Nombre_BD] FROM DISK = 'C:\Ruta\Archivo.bak'. - Si se usa un dispositivo lógico definido previamente:
RESTORE DATABASE [Nombre_BD] FROM [Nombre_Dispositivo].
- Instrucción:
- Recuperación Point-in-Time (PITR): Solo es posible si la base de datos está en modelo FULL. Requiere restaurar el último respaldo completo, los diferenciales y, finalmente, la cadena de respaldos del Log de Transacciones hasta el momento deseado.
- Vía SSMS: Se hace clic derecho sobre la base de datos, se selecciona Tareas (Tasks) -> Restaurar (Restore) -> Base de datos (Database…), donde se puede elegir el punto en la línea de tiempo para la recuperación.
2. MySQL
MySQL utiliza la restauración de volcados lógicos y el procesamiento de registros binarios para recuperaciones precisas.
- Restaurar un Volcado (Dump): Los archivos generados por
mysqldumpson scripts SQL que se ejecutan directamente en el servidor.- Instrucción:
mysql -u [usuario] -p [nombre_bd] < [archivo_respaldo.sql].
- Instrucción:
- Recuperación Point-in-Time (PITR): Se utiliza para recuperar datos hasta un segundo exacto antes de un error (ej. un
DELETEaccidental).- Restaurar el respaldo completo más reciente.
- Aplicar los binary logs (binlogs) desde la posición registrada en el respaldo hasta el momento del error usando la herramienta
mysqlbinlog.
- Instrucción:
mysqlbinlog binlog.000001 binlog.000002 | mysql -u root -p. - Se pueden usar parámetros como
--stop-positiono--stop-datetimepara evitar aplicar la instrucción que causó el daño.
3. PostgreSQL
El método de carga depende de si el volcado se realizó en formato de texto plano o en los formatos especiales de PostgreSQL.
- Formato Texto Plano (Plain): Se carga directamente con la utilidad
psql.- Instrucción:
psql -f [archivo.sql] [nombre_bd].
- Instrucción:
- Formatos Custom, Directory o Tar: Requieren obligatoriamente la herramienta
pg_restore.- Instrucción:
pg_restore -d [nombre_bd] [archivo_respaldo].
- Instrucción:
- Carga Paralela: Para acelerar la recuperación,
pg_restorepermite el uso de la opción-jseguida del número de hilos o núcleos de CPU concurrentes. Se recomienda usar un valor cercano o ligeramente inferior al número de núcleos disponibles para máxima eficiencia.
4. Oracle
Oracle gestiona la recuperación a través de herramientas especializadas diseñadas para la resiliencia y rapidez.
- Recovery Manager (RMAN): Es la herramienta principal para realizar operaciones de restauración y recuperación completa o incompleta (Point-in-Time). Permite recuperar archivos de datos, espacios de tablas (tablespaces) o la base de datos completa.
- Tecnología Flashback: Permite “rebobinar” la base de datos o tablas específicas a un estado anterior para corregir errores lógicos rápidamente, sin necesidad de restaurar archivos desde un respaldo externo.
- Recuperación de Medios en Bloque: Oracle puede reparar únicamente bloques de datos específicos que se hayan corrompido, manteniendo el resto de la base de datos disponible.
- Duplicación: Permite crear bases de datos duplicadas basadas en respaldos existentes para entornos de prueba o reportes.
Regla 3-2-1
La regla 3-2-1 es un estándar de resiliencia diseñado para garantizar la redundancia y disponibilidad de la información crítica mediante tres pilares fundamentales:
- 3 Copias de los datos: Se debe mantener siempre el dato original y al menos dos copias adicionales de respaldo que estén actualizadas. Esto asegura que, ante la pérdida de una copia, existan múltiples alternativas de recuperación.
- 2 Medios distintos: Los respaldos deben almacenarse en tecnologías de almacenamiento diferentes. El objetivo es evitar fallos simultáneos por degradación de hardware; por ejemplo, combinar arreglos de discos locales con almacenamiento en la nube, cintas o discos duros externos.
- 1 Copia fuera de sitio (Off-site): Es obligatorio que al menos una copia de seguridad resida en una ubicación física o lógica distinta a la del centro de datos principal. Esto protege los datos contra desastres geográficos, incendios o eventos que afecten la infraestructura del edificio principal.
Implementación técnica de la regla
La aplicación práctica de esta regla suele incluir las siguientes medidas:
- Sincronización Off-site: Tras completar un respaldo local, el sistema puede disparar automáticamente una copia secundaria hacia una nube institucional o un servidor espejo en una dependencia geográficamente distinta a través de canales cifrados (VPN).
- Uso de medios físicos y “Air-Gap”: El uso de discos duros externos es un método válido para cumplir con el criterio de “fuera de sitio”. Se recomienda aplicar una brecha de aire (Air-Gap), manteniendo estos dispositivos físicamente desconectados de cualquier red una vez terminada la copia para que funcionen como una reserva fría impenetrable ante ataques de ransomware.
- Estrategias de rotación: Para gestionar estas copias, se utilizan esquemas como el de Abuelo-Padre-Hijo, donde los medios se rotan semanalmente y las copias más antiguas (mensuales o anuales) se mantienen en almacenamiento frío de largo plazo.
- Inmutabilidad: Como protección adicional, se prioriza el uso de tecnologías WORM3 (escritura única, lectura múltiple), que impiden la modificación o borrado de los respaldos por un periodo determinado, incluso si las credenciales de administrador son comprometidas.
Conclusiones Finales
La gestión de backups no termina con la ejecución de la copia; la validación y el mantenimiento son pilares críticos para garantizar que la información sea realmente recuperable ante un desastre. Un respaldo que no ha sido probado se considera inválido para fines operativos.
A continuación, se presenta un análisis detallado sobre estos conceptos en el marco de una estrategia integral de seguridad:
1. Validación: La Garantía de Recuperabilidad
La validación busca confirmar la integridad de los datos y asegurar que el sistema pueda “volver a la vida” en los plazos requeridos.
- Importancia del proceso: Muchos profesionales asumen que tener un proceso de copia activo es suficiente, pero fallas como la falta de espacio, corrupción de archivos o configuraciones incorrectas pueden inutilizar los respaldos. El caso de Colonial Pipeline es un ejemplo donde los respaldos no funcionaron correctamente durante un ataque de ransomware, resultando en pérdidas millonarias.
- Métodos de Validación:
- Suma de comprobación (Checksum): Verificaciones automáticas que comparan los bloques grabados con los originales para detectar corrupciones de datos. Aunque asegura la coherencia de los archivos, no garantiza que el sistema operativo arranque correctamente.
- Simulacros de Restauración: La Dirección de TI debe realizar pruebas mensuales de archivos individuales y pruebas semestrales de restauración completa en entornos aislados (VLAN de pruebas) para validar el sistema operativo y las bases de datos.
- Recuperación Instantánea: Técnicas modernas permiten montar los backups como máquinas virtuales sin una restauración completa, capturando imágenes del arranque para confirmar su funcionalidad.
2. Mantenimiento y Monitoreo Continuo
El mantenimiento preventivo asegura que la infraestructura de respaldo esté siempre lista y que los archivos históricos no se conviertan en una carga inmanejable.
- Monitoreo de Salud: Es obligatorio revisar diariamente el Tablero de Control de Respaldos durante la primera hora de operación. Cualquier estado de “Fallo” debe atenderse en menos de 24 horas para no perder el punto de recuperación del día.
- Gestión de Bitácoras (Logs): Las bitácoras registran todos los movimientos, pero su tamaño excesivo puede llenar el disco. El mantenimiento implica respaldar y depurar periódicamente estos archivos para evitar bloqueos del sistema.
- Rotación de Medios Físicos: Se recomienda el esquema Abuelo-Padre-Hijo para gestionar discos externos. El disco “Hijo” se usa a diario, el “Padre” semanalmente (y se lleva fuera de sitio), y el “Abuelo” es un resguardo permanente de fin de mes.
- Disposición Final: Una vez cumplido el periodo de retención legal, los medios físicos deben ser desmagnetizados o destruidos físicamente para evitar la recuperación de datos residuales, documentando el proceso en actas oficiales.
3. Contexto Amplio: Resiliencia y Normatividad
La validación y el mantenimiento se integran en una estrategia de gestión basada en objetivos de negocio y seguridad:
- RTO y RPO: La validación permite medir el Tiempo de Recuperación Objetivo (RTO) real, mientras que la frecuencia de mantenimiento y copia define el Punto de Recuperación Objetivo (RPO).
- Inmutabilidad (WORM): Como parte del mantenimiento de la seguridad, se deben usar tecnologías que impidan modificar o borrar los respaldos por un periodo determinado (ej. 30 días), creando una zona impenetrable contra ransomware.
- Regla 3-2-1: Este estándar exige mantener 3 copias de los datos en 2 medios distintos, con 1 de ellos fuera de sitio (off-site), lo cual requiere un mantenimiento riguroso de la sincronización y la cadena de custodia de los medios físicos.
- Automatización: El uso de herramientas como el Agente SQL permite programar tareas de mantenimiento, reconstrucción de índices y reportes, minimizando el error humano en la gestión diaria.
- RTO (Recovery Time Objective – Objetivo de Tiempo de Recuperación)
Es el tiempo máximo permitido para restaurar un servicio o sistema después de un fallo antes de que el impacto sea inaceptable para la operación.
Enfoque: Se mide en unidades de tiempo (horas, minutos o segundos) y representa la rapidez con la que el departamento de TI debe “volver a la vida” el sistema.
Influencia técnica: Determina el método de respaldo. Por ejemplo, si se requiere un RTO muy corto, se utilizan técnicas como el backup incremental inverso (que mantiene siempre una copia completa actualizada lista para usar) o funciones de recuperación instantánea mediante máquinas virtuales. ↩︎ - RPO (Recovery Point Objective – Objetivo de Punto de Recuperación)
Es la cantidad máxima de datos que una institución está dispuesta a perder medida en tiempo.
Enfoque: Define la frecuencia de los respaldos. Si una empresa tiene un RPO de 24 horas, significa que puede tolerar perder un día de trabajo, por lo que un respaldo diario es suficiente. Si el RPO es de pocos minutos, se requieren respaldos constantes del log de transacciones o protección de datos continua (CDP).
Implementación: El RPO dicta cuándo se deben purgar o retener archivos críticos como los binary logs en MySQL o los logs de transacciones en SQL Server; si estos archivos se eliminan antes de lo planeado, cumplir con el RPO será imposible. ↩︎ - WORM (Write Once, Read Many) es sistema de almacenamiento que permite que la información sea escrita una sola vez y leída muchas veces, lo que impide cualquier alteración, borrado o sobreescritura posterior del registro original ↩︎