Seguimiento de Cambios de Tabla con Flashback en Viaje en Tiempo

Utilice Flashback Time Travel para ver estados anteriores de objetos de base de datos o para devolver objetos de base de datos a un estado anterior sin utilizar la recuperación de medios físicos puntual.

Acerca de Flashback Time Travel

Flashback Time Travel permite realizar un seguimiento y almacenar los cambios transaccionales en una tabla a lo largo de su vida útil. El flashback de viaje en tiempo es útil para cumplir las políticas de etapa de registro y los informes de auditoría. También puede utilizar Flashback Time Travel en varios escenarios, como la aplicación de la trituración digital, el acceso a datos históricos y la recuperación selectiva de datos.

El flashback de viaje en tiempo se denomina flashback de archivo de datos en versiones anteriores de Oracle Database. Las API de flashback de viaje en tiempo y algunos términos de flashback de viaje en tiempo, como el privilegio FLASHBACK ARCHIVE, conservan la nomenclatura de flashback de archivo de datos.

Cada instancia de Autonomous Database tiene un archivo de flashback denominado flashback_archive que soporta operaciones de flashback de viaje en tiempo. El tiempo de retención por defecto para flashback_archive es de 60 días. Consulte Modify the Retention Time for Flashback Time Travel para obtener información sobre el cambio del tiempo de retención por defecto.

Existen restricciones para activar el flashback de viaje en tiempo para una tabla, incluidas las siguientes:

  • Debe tener el privilegio de objeto FLASHBACK ARCHIVE para flashback_archive. Por defecto, el usuario ADMIN tiene este privilegio.
  • La tabla no debe ser ninguna de las siguientes:
    • Una tabla anidada
    • Una tabla temporal
    • Una mesa remota
    • Una tabla externa
  • La tabla no puede contener columnas LONG.
  • La tabla no puede contener columnas anidadas.

Consulte Notas para Flashback Time Travel para obtener una lista de restricciones adicionales de Flashback Time Travel.

Consulte Uso de la Tecnología de Oracle Flashback para obtener más información sobre la Tecnología de Flashback.

Activación de Flashback de Viaje en Tiempo para una Tabla

Describe los pasos para activar el flashback de viaje en tiempo para una tabla en Autonomous Database.

Por defecto, el flashback de viaje en tiempo está desactivado para las tablas nuevas y existentes.

A continuación se muestra el requisito para activar el flashback de viaje en tiempo:
  • Debe estar conectado como usuario ADMIN o tener el privilegio de objeto FLASHBACK ARCHIVE.

    El usuario ADMIN o el usuario que tiene el privilegio FLASHBACK ARCHIVE WITH GRANT OPTION puede otorgar el privilegio de objeto FLASHBACK ARCHIVE a otro usuario.

    Por ejemplo:

    GRANT FLASHBACK ARCHIVE ON FLASHBACK_ARCHIVE TO <username>
    GRANT FLASHBACK ARCHIVE ON FLASHBACK_ARCHIVE TO <username> WITH GRANT OPTION

    Consulte Gestión de roles y privilegios de usuarios en Autonomous Database para obtener más información.

Puede activar el flashback de viaje en tiempo para una tabla existente o una tabla nueva que esté creando.

  1. Para activar el flashback de viaje en tiempo al crear una tabla:
    CREATE TABLE employee (EMPNO NUMBER(4) NOT NULL, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4)) FLASHBACK ARCHIVE;
  2. Para activar el flashback de viaje en tiempo para una tabla existente:
    ALTER TABLE departments FLASHBACK ARCHIVE;

Después de activar el flashback de viaje en tiempo para una tabla, puede desactivar el flashback de viaje en tiempo. Consulte Desactivación de Flashback Time Travel para una Tabla para obtener más información.

Desactivación del Viaje en Tiempo de Flashback para una Tabla

Describe el procedimiento para desactivar el flashback de viaje en tiempo para una tabla en Autonomous Database.

Después de activar el flashback de viaje en tiempo para una tabla, puede desactivarlo como usuario ADMIN o si tiene el privilegio de objeto FLASHBACK ARCHIVE.

Por ejemplo, para desactivar el flashback de viaje en tiempo para la tabla employee:
ALTER TABLE employee NO FLASHBACK ARCHIVE;

Modificación del Tiempo de Retención para el Flashback de Viaje en Tiempo

Describe el procedimiento para modificar el tiempo de retención de Flashback Time Travel en Autonomous Database.

Puede modificar el tiempo de retención de Flashback Time Travel si está conectado como usuario ADMIN o si tiene el privilegio EXECUTE en DBMS_CLOUD_ADMIN.

Por ejemplo, para definir el tiempo de retención en 365 días:
BEGIN
  DBMS_CLOUD_ADMIN.SET_FLASHBACK_ARCHIVE_RETENTION
   (retention_days => 365);
END;
/

Consulte el procedimiento SET_FLASHBACK_ARCHIVE_RETENTION para obtener información detallada sobre el procedimiento.

Depuración de Datos Históricos para Flashback de Viajes en Tiempo

Describe el procedimiento para depurar datos históricos para el viaje en tiempo de flashback en Autonomous Database.

Puede depurar datos históricos para Flashback Time Travel si está conectado como usuario ADMIN o si tiene el privilegio EXECUTE en DBMS_CLOUD_ADMIN.

Por ejemplo, para depurar todos los datos históricos de Flashback Time Travel:
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'ALL');
END;
/
Ejemplo para depurar los datos históricos de flashback de viaje en tiempo antes de un registro de hora especificado:
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'TIMESTAMP', before_timestamp => '12-JUL-2023 10:24:00');
END;
/
Ejemplo para depurar datos históricos de viaje en tiempo de flashback de más de 1 día:
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'TIMESTAMP', before_timestamp => SYSTIMESTAMP - INTERVAL '1' DAY);
END;
/
Ejemplo para depurar los datos históricos de Flashback Time Travel antes de la scn especificada:
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'SCN',before_scn=> '5928826');
END;
/

Consulte el procedimiento PURGE_FLASHBACK_ARCHIVE para obtener información detallada sobre el procedimiento.

Ver información de flashback de viaje en tiempo

Describe las vistas del diccionario de datos para ver información sobre los archivos de Flashback Time Travel en Autonomous Database.

Puede ver información sobre los archivos de flashback de viaje en tiempo en vistas de diccionario de datos estático.

Ver Descripción
*_FLASHBACK_ARCHIVE Muestra información sobre los archivos de Flashback Time Travel.
*_FLASHBACK_ARCHIVE_TS Muestra los tablespaces de los archivos de viaje en tiempo de flashback.
*_FLASHBACK_ARCHIVE_TABLES Muestra información sobre las tablas que tienen el flashback de viaje en tiempo activado.

Notas para Flashback de Viaje en Tiempo

Proporciona notas y restricciones para utilizar el viaje en tiempo de flashback en Autonomous Database.

Tenga en cuenta las siguientes restricciones de Flashback Time Travel:

  • No puede activar Flashback Time Travel en tablas con el tipo de dato LONG o columnas de tablas anidadas.

  • No puede activar el flashback de viaje en tiempo en una tabla anidada, una tabla temporal, una tabla externa, una vista materializada, una tabla de consulta avanzada (AQ), tablas particionadas híbridas o un objeto no de tabla.

  • Flashback Time Travel no soporta sentencias DDL que mueven, dividen, fusionan o fusionan particiones o subparticiones, mueven tablas o convierten columnas LONG en columnas LOB.

  • Fallo al agregar o activar una restricción, incluida la restricción de clave ajena, en una tabla que se ha activado para el flashback de viaje en tiempo con ORA-55610.

    Se soporta el borrado o desactivación de una restricción (incluida la restricción de clave ajena) en una tabla que se ha activado para el flashback de viaje en tiempo.

  • Después de activar Flashback Time Travel en una tabla, Oracle recomienda esperar al menos 20 segundos antes de insertar datos en la tabla y esperar hasta 5 minutos antes de utilizar la consulta de flashback en la tabla.
  • Hay un flashback de archivo de datos por instancia de Autonomous Database, denominado flashback_archive, y no puede crear archivos de datos de flashback adicionales.

  • No puede borrar el flashback de archivo de datos, flashback_archive, en una instancia de Autonomous Database.

  • No puede crear, modificar ni borrar tablespaces para el flashback de archivo de datos. Por lo tanto, no puede ejecutar estas sentencias:

    • ALTER FLASHBACK ARCHIVE flashback_archive ADD TABLESPACE;
    • ALTER FLASHBACK ARCHIVE flashback_archive MODIFY TABLESPACE;
    • ALTER FLASHBACK ARCHIVE flashback_archive REMOVE TABLESPACE;
  • Si activa Flashback Time Travel en una tabla, pero la gestión automática de deshacer (AUM) está desactivada, se produce el error ORA-55614 al intentar modificar la tabla.

  • Para activar el flashback de viaje en tiempo en una tabla, la tabla no puede utilizar ninguna de las siguientes palabras reservadas de flashback de viaje en tiempo como nombres de columna:
    • STARTSCN
    • ENDSCN
    • RID
    • XID
    • OP
    • OPERATION