Realice un seguimiento de los cambios en la tabla con Flashback Time Travel

Utilice Flashback Time Travel para ver los 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. Flashback Time Travel resulta útil para la conformidad con las políticas de etapas de registro y los informes de auditoría. También puede utilizar Flashback Time Travel en distintos escenarios, como la aplicación de trituración digital, el acceso a datos históricos y la recuperación selectiva de datos.

Viaje en Tiempo de Flashback se ha denominado Archivo de Datos de Flashback en versiones anteriores de Oracle Database. Las API de Flashback Time Travel y algunos términos de Flashback Time Travel, como el privilegio FLASHBACK ARCHIVE mantienen la nomenclatura de Flashback Data Archive.

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

Existen restricciones para activar Flashback Time Travel 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 tabla remota
    • Una tabla externa
  • La tabla no puede contener columnas LONG.
  • La tabla no puede contener columnas anidadas.

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

Consulte la sección sobre el uso de la tecnología Oracle Flashback para obtener más información sobre esta tecnología.

Activación de Flashback Time Travel para una tabla

Descripción de los pasos para activar Flashback Time Travel para una tabla en Autonomous Database.

Por defecto, la opción Tiempo de viaje de flashback está desactivada para tablas nuevas y existentes.

Nota

Flashback Time Travel no está soportado en Autonomous Database con la versión de base de datos Oracle Database 21c.
A continuación se muestra el requisito para activar Flashback Time Travel:
  • 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 pueden 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 privilegios y roles de usuario en Autonomous Database para obtener más información.

Puede activar Flashback Time Travel para una tabla existente o una tabla nueva que esté creando.

  1. Para activar Viaje en tiempo de flashback 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 Flashback Time Travel para una tabla existente:
    ALTER TABLE departments FLASHBACK ARCHIVE;

Después de activar Flashback Tiempo de Viaje para una tabla, puede desactivar Flashback Tiempo de Viaje. Consulte Desactivación de Flashback Time Travel para una tabla para obtener más información.

Desactivación de Flashback Time Travel para una tabla

Describe el procedimiento para desactivar Flashback Time Travel para una tabla en Autonomous Database

Después de activar Flashback Time Travel para una tabla, puede desactivarla como usuario ADMIN o si tiene el privilegio de objeto FLASHBACK ARCHIVE.

Por ejemplo, para desactivar Flashback Time Travel para la tabla employee:
ALTER TABLE employee NO FLASHBACK ARCHIVE;

Modificación del tiempo de retención para Flashback Time Travel

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 Procedimiento SET_FLASHBACK_ARCHIVE_RETENTION para obtener información detallada sobre el procedimiento.

Depuración de datos históricos para Flashback Time Travel

Describe el procedimiento para depurar datos históricos para Flashback Time Travel 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 Time Travel 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 Flashback Time Travel anteriores a 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 Procedimiento PURGE_FLASHBACK_ARCHIVE para obtener información detallada sobre el procedimiento.

Visualización de la información de Flashback Time Travel

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 Time Travel en vistas estáticas del diccionario de datos.

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 Flashback Time Travel.
*_FLASHBACK_ARCHIVE_TABLES Muestra información sobre las tablas que tienen activado Viaje en Tiempo de Flashback.

Notas sobre Flashback Time Travel

Proporciona notas y restricciones para utilizar Flashback Time Travel en Autonomous Database.

Tenga en cuenta las siguientes restricciones de Flashback Time Travel:

  • Flashback Time Travel no está soportado en Autonomous Database con la versión de base de datos Oracle Database 21c.

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

  • No puede activar Flashback Time Travel en tablas anidadas, tablas temporales, tablas externas, vistas materializadas, tablas de consulta avanzada (AQ), tablas particionadas híbridas ni objetos que no sean de tabla.

  • Flashback Time Travel no soporta sentencias DDL que puedan mover, dividir, fusionar particiones o particiones secundarias, mover tablas o convertir columnas LONG en columnas LOB.

  • La adición o activación de una restricción, incluida la restricción de clave ajena, en una tabla que se ha activado para Flashback Time Travel falla con ORA-55610.

    Está soportado el bloqueo o la desactivación de una restricción (incluida la restricción de clave ajena) en una tabla que se haya activado para Flashback Time Travel.

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

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

  • No puede crear, modificar ni borrar tablespaces para el archivo de datos de flashback. 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 Flashback Time Travel en una tabla, la tabla no puede utilizar ninguna de las siguientes palabras reservadas de Flashback Time Travel como nombres de columna:
    • STARTSCN
    • ENDSCN
    • RID
    • XID
    • OP
    • OPERATION