FLASHBACK QUERY - ¿Cómo recuperar datos sin esfuerzo en una base Oracle?
Esta simple funcionalidad te puede ayudar a evitar realizar un restore y con eso ahorrar muchas horas de trabajo 😉.
Con el Flashback Query se puede extraer el estado de una tabla en un cierto instante temporal anterior. Se puede usar, por ejemplo, para comparar las filas que una tabla tiene hoy con las que tenía ayer.
Si sos DBA, imaginate que una persona hizo un DELETE sin un filtro por equivocación, si esa persona te avisa rápido, vos serías capaz de recuperar los datos de una manera sencilla y rápida.
Para funcionar, esta característica sólo utiliza el tablespace de UNDO.
Vayamos a la práctica
Supongamos que sabemos que se han borrado filas hace menos de una hora, entonces hacemos lo siguiente:
SELECT * FROM owner.tabla_ejemplo AS OF TIMESTAMP SYSTIMESTAMP - INTERVAL '60' MINUTE;
Dicha consulta nos traerá todas las filas que tenía la tabla_ejemplo hace una hora.
También podríamos crear una tabla_soporte que contenga todos los registros de la tabla_ejemplo hace una hora de la siguiente manera:
CREATE TABLE owner.tabla_soporte AS
SELECT * FROM owner.tabla_ejemplo AS OF TIMESTAMP SYSTIMESTAMP - INTERVAL '60' MINUTE;
Una desventaja de este último ejemplo es que no se crearán ni los índices, ni las constraints de la tabla original.
Hasta el próximo post 🙂
Saludos desde Buenos Aires, Argentina.

