Recuperar bases de datos Oracle dañadas

La gestión de bases de datos Oracle requiere no solo un diseño sólido, sino también la capacidad de afrontar situaciones críticas, como archivos dañados o estructuras corruptas. En este artículo exploraremos diversas técnicas para recuperar datos, diagnosticar fallos y aplicar estrategias de prevención que aseguren la continuidad operativa y la integridad de la información.

Diagnóstico de corrupciones y fallos iniciales

Antes de emprender cualquier acción de recuperación, es fundamental entender la naturaleza del daño. Un diagnóstico preciso minimiza el riesgo de pérdida adicional y favorece una estrategia adecuada.

Identificación de síntomas

  • Alertas en el archivo alert.log: mensajes ORA-600 o ORA-ORA-01113.
  • Errores en tablespaces que impiden la apertura de la base de datos.
  • Bloqueos por inconsistencia en archivos de datos o control.

Verificación de integridad

Utilizar herramientas internas como DBVERIFY (utl32k) o el comando ANALYZE para comprobar bloques:

  • DBVERIFY: comprueba niveles físicos de archivos de datos.
  • ANALYZE TABLE … VALIDATE STRUCTURE: detecta filas y bloques corruptos.

Estos pasos previos permiten catalogar si el problema es físico (hardware, discos) o lógico (corrupción de metadatos).

Herramientas y técnicas de recuperación

Oracle ofrece soluciones nativas y opciones de terceros para afrontar incidentes. A continuación, repasamos los métodos más empleados para rescatar datos perdidos o corruptos.

RMAN (Recovery Manager)

RMAN es la herramienta recomendada para la mayoría de procesos de backup y recuperación:

  • RECOVER DATABASE: aplica redo logs para restaurar hasta un punto en el tiempo.
  • VALIDATE BACKUPSET: verifica la consistencia de los conjuntos de copia.
  • RECOVER TABLESPACE / DATAFILE: recupera objetos específicos sin reiniciar toda la instancia.

Import/Export y Data Pump

Cuando el daño es lógico y afecta a esquemas o tablas específicas:

  • EXPDP/IMPDP: exportación e importación de objetos, válido para migrar datos saludables.
  • Transportable Tablespaces: extraer un tablespace íntegro e importarlo en otra instancia.

Flashback Database y Flashback Table

Para eventos recientes de eliminación o actualización masiva:

  • FLASHBACK DATABASE TO TIMESTAMP: retrocede toda la base de datos a un estado previo.
  • FLASHBACK TABLE nombre_tabla TO BEFORE DROP: recupera tablas borradas.

Requiere habilitar flashback log y suficiente espacio en FRA (Fast Recovery Area).

Recuperación a nivel de archivos de control y redo logs

Los archivos de control y redo logs son críticos para mantener la coherencia transaccional. Su corrupción puede dejar la base en modo mounting o nomount.

Restauración de control file

  • Auto-backup de control file con RMAN: RESTORE CONTROLFILE FROM AUTOBACKUP.
  • Manual: copiar un control file de standby si existe Data Guard configurado.
  • Recrear control file: CREATE CONTROLFILE …; exige un script previo de definición.

Recuperación de redo logs

  • Multiplexación de redo logs: mantener al menos dos miembros por grupo para redundancia.
  • DROP UNTIL SEQUENCE … ARCHIVELOG: manejar secuencias incompletas.
  • Standby redologs: activar Data Guard y solicitar recuperación gradual.

Procedimientos avanzados y escenarios críticos

En entornos de misión crítica, a veces se requiere combinar varias técnicas o recurrir a herramientas externas.

Recuperación parcial con exportaciones incrementales

Ideal para tablaspaces grandes donde un full backup no es viable:

  • Incremental Level 0 + Level 1: aplicar backups diferenciales.
  • Use RMAN DUPLICATE con SKIP READONLY para omitir tablespaces sanos.

Data Guard y recuperación switchover/failover

Proporciona disponibilidad continua:

  • Switchover: cambia a la standby sin pérdida de datos.
  • Failover: asume la standby si la primaria falla irrevocablemente.

Herramientas de terceros

En determinadas situaciones, los productos especializados ofrecen recuperación forense o reparación de bloques:

  • Software de escaneo físico de archivos corruptos.
  • Utilidades para extraer segmentos de tablespaces dañados.

Prevención y mejores prácticas

Un plan de recuperación eficaz combina procedimientos reactivos con acciones proactivas:

  • Backups frecuentes y verificados.
  • Uso de multiplexación para control files y redo logs.
  • Implementación de flashback y punto de recuperación (PITR).
  • Monitorización continua de discos y discrepancias de I/O.
  • Simulacros periódicos de recuperación para validar procesos.

Adicionalmente, documentar cada paso y mantener scripts actualizados garantiza tiempos de respuesta óptimos ante siniestros.