OTN Appreciation Day: Oracle Flashback


Navegando por las redes, me he enterado de esta gran idea de Tim Hall creador del famoso blog oracle-base: OTN Appreciation Day. Donde como parte de la comunidad OTN compartamos alguna de las  características que más nos gusta de las tecnologías Oracle.

Hoy quiero compartir una de las características que más me gusta desde Oracle 10g y ha venido mejorando hasta la versión 12c.

Se trata de Oracle Flashback, una característica que permite revertir “errores de usuario”. Me gusta describirlo, y en algunas ocasiones la he explicado así, como una característica que nos permite regresar en el tiempo y revertir operaciones que generalmente se tratan de errores de usuario, por ejemplo:
  • Recuperar tablas eliminadas.
  • Revertir transacciones ya cometidas (ojo que no se trata de hacer rollback sino realizar la operación inversa a la cometida)
  • Incluso revertir la base de datos completa a un punto atrás en el tiempo.

La base fundamental de la mayoría de características flashback son los segmentos UNDO, segmentos que son creados cada vez que se ejecuta una transacción y son utilizados de manera circular. Junto a los parámetro de base de datos como UNDO_RETENTION y  la característica RETENTION GUARANTEE de los UNDO tablespace poseemos la capacidad de almacenar las versiones anteriores de los datos modificados para poder revertirlos en cualquier momento.

Mas a detalle las características de Oracle Flashback son:

Flashback Table: nos permite revertir los datos de una tabla a un momento anterior. Util para esos famosos “Update/delete sin clausula where”.

Flashback Query: Nos permite ver como estaban los datos en un tiempo atrás, sin revertirlos sino solamente explorando a través de los segmentos UNDO.

Flashback Version Query: podemos ver un histórico de versiones de cambios en una tabla, para comparaciones de datos.

Flashback Drop: una de las más útiles, nos permite recuperar tablas eliminadas.  Para esta característica Oracle se base en una “Recicle Bin” para mantener por cierto tiempo objetos eliminados con la característica de poder ser recuperados.

Flashback database: agrupa de cierto modo todas las anteriores, con esta característica podemos rebobinar la base de datos completa y regresarla a un estado anterior en el tiempo. Esta característica requiere de un poco más de ayuda y además de los segmentos UNDO utilizara una nueva estructura denominada Flahback data archive.

La siguiente tabla describe las dependencias:


Esto es solo una breve introducción a esta fabulosa tecnología que posee tantas opciones y característica que se podría escribir una tesis al respecto.

En Oracle Database 12c, se mantienen las mismas características y ciertas con mejoras sobre la arquitectura  Multi-Tenant y esperemos ver las noticias que presenta 12c Release 2.

Salud,

Comments

Popular posts from this blog

Cómo extraer Archive Logs desde un Backup Piece

Ejemplo práctico con SQL Tuning Advisor y SQL Access Advisor

Guía rápida de uso de Oracle ASMLib