FLASHBACK QUERY - Consultar como estaba una tabla en el pasado
Dicha funcionalidad sirve para consultar el estado de una tabla en un cierto instante temporal anterior.
Soy una persona, luego un ingeniero y magister que posee más de 15 años de experiencia administrando base de datos Oracle y diseñando arquitecturas para satisfacer las necesidades del negocio y también para innovar.
Eventos como orador: • Speaker del Oracle Developer Community Tour 2018 • Speaker del Oracle Groundbreakers Tour 2019 LATAM
Experiencia Técnica: • Oracle Cloud Infrastructure (OCI). • Exadata Cloud at Customer. • Migración de base de datos utilizando Golden Gate con corte de servicio tendiendo a cero. • Administrador de PDBaaS, dentro de una nube privada interna de Oracle. • Oracle In-Memory. • Oracle Data Masking / Oracle Data Redaction. • Automatización de aplicación de parches PSU utilizando el Cloud Control. • Actualmente me desempeño como Administrador de Bases de Datos, principalmente de Oracle, versiones 11g, 12c, 18c y 19c con arquitectura multitenant. • Utilización del comando DUPLICATE para actualizar ambientes de testeo con información productiva. • Realizo todo lo que concierne a la administración de bases de datos, como ser instalaciones de motores (Single Instance, RAC y RAC Extendido) 11g, 12c, 18c y 19c. Realizo upgrades y, migraciones de bases de datos entre servidores con distintos sistemas operativos, aplicaciones de parches PSU, CPU, OOP, respaldos y recuperaciones a través de RMAN. • Recuperación de objetos rápida y retroceso de la instancia en el tiempo utilizando la tecnología Oracle Flashback. • Creación de ambientes de contingencia utilizando Oracle Data Guard. Pruebas de Switchover y Failover. También utilizo Oracle Snapshot StandBy para aprovechar mejor estos ambientes de contingencia. • Instalación y configuración del Cloud Control 12c/13c. • Administro bases de datos que se alojan en el Oracle Exadata Machine. • Experiencia en la administración de bases de datos que soportan el sistema SAP, realizo tareas como refresh, particionamiento de tablas, etc. • Oracle Golden Gate 11g, 12c, 18c y 19c. • Sistemas operativos: AIX, Unix (HP-UX), Linux (RedHat – Centos), Windows. • Scripting en bash. • He configurado bases espejos (Stand By) de manera manual para motores con licencia Standard.
Se puede usar para comparar las filas que una tabla tiene hoy con las que tenía ayer por ejemplo.
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.

