Suivi des modifications de table avec Flashback Time Travel

Utilisez Flashback Time Travel pour afficher les états passés des objets de base de données ou pour rétablir l'état précédent des objets de base de données sans recourir à la restauration physique à un point dans le temps.

A propos de Flashback Time Travel

Flashback Time Travel vous permet de suivre et de stocker les modifications transactionnelles apportées à une table au cours de sa durée de vie. Flashback Time Travel est utile pour la conformité aux stratégies de phase d'enregistrement et aux rapports d'audit. Vous pouvez également utiliser Flashback Time Travel dans divers scénarios tels que l'application du déchiquetage numérique, l'accès aux données historiques et la récupération sélective des données.

Flashback Time Travel a été appelé Flashback Data Archive dans les versions précédentes d'Oracle Database. Les API Flashback Time Travel et certaines conditions Flashback Time Travel telles que le privilège FLASHBACK ARCHIVE conservent le nom Flashback Data Archive.

Chaque instance Autonomous Database dispose d'une Flashback Archive nommée flashback_archive qui prend en charge les opérations Flashback Time Travel. La durée de conservation par défaut pour flashback_archive est de 60 jours. Pour plus d'informations sur la modification de la durée de conservation par défaut, reportez-vous à Modify the Retention Time for Flashback Time Travel.

Il existe des restrictions pour activer Flashback Time Travel pour une table, notamment les suivantes :

  • Vous devez disposer du privilège objet FLASHBACK ARCHIVE pour flashback_archive. Par défaut, l'utilisateur ADMIN dispose de ce privilège.
  • La table ne doit pas être l'une des suivantes :
    • Une table imbriquée
    • Une table temporaire
    • Une table distante
    • Une table externe
  • La table ne peut pas contenir de colonnes LONG.
  • La table ne peut pas contenir de colonnes imbriquées.

Reportez-vous à la section Notes for Flashback Time Travel pour obtenir la liste des restrictions supplémentaires de Flashback Time Travel.

Pour plus d'informations sur la technologie Flashback, reportez-vous à Utilisation de la technologie Oracle Flashback.

Activer Flashback Time Travel pour une table

Décrit les étapes permettant d'activer Flashback Time Travel pour une table dans Autonomous Database.

Par défaut, Flashback Time Travel est désactivé pour les tables nouvelles et existantes.

Pour activer Flashback Time Travel, procédez comme suit :
  • Vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège objet FLASHBACK ARCHIVE.

    L'utilisateur ADMIN ou l'utilisateur disposant du privilège FLASHBACK ARCHIVE WITH GRANT OPTION peut accorder le privilège objet FLASHBACK ARCHIVE à un autre utilisateur.

    Par exemple :

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

    Pour plus d'informations, reportez-vous à Gestion des rôles et des privilèges utilisateur sur Autonomous Database.

Vous pouvez activer Flashback Time Travel pour une table existante ou une nouvelle table que vous créez.

  1. Pour activer Flashback Time Travel lors de la création d'une table :
    CREATE TABLE employee (EMPNO NUMBER(4) NOT NULL, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4)) FLASHBACK ARCHIVE;
  2. Pour activer Flashback Time Travel pour une table existante :
    ALTER TABLE departments FLASHBACK ARCHIVE;

Après avoir activé Flashback Time Travel pour une table, vous pouvez désactiver Flashback Time Travel. Pour plus d'informations, reportez-vous à Désactivation de Flashback Time Travel pour une table.

Désactivation de Flashback Time Travel pour une table

Décrit la procédure de désactivation de Flashback Time Travel pour une table dans Autonomous Database.

Une fois que Flashback Time Travel est activé pour une table, vous pouvez le désactiver en tant qu'utilisateur ADMIN ou si vous disposez du privilège objet FLASHBACK ARCHIVE.

Par exemple, pour désactiver Flashback Time Travel pour la table employee :
ALTER TABLE employee NO FLASHBACK ARCHIVE;

Modification de la durée de conservation pour Flashback Time Travel

Décrit la procédure de modification de la durée de conservation pour Flashback Time Travel dans Autonomous Database.

Vous pouvez modifier la durée de conservation de Flashback Time Travel si vous êtes connecté en tant qu'utilisateur ADMIN ou si vous disposez du privilège EXECUTE sur DBMS_CLOUD_ADMIN.

Par exemple, pour définir la durée de conservation sur 365 jours :
BEGIN
  DBMS_CLOUD_ADMIN.SET_FLASHBACK_ARCHIVE_RETENTION
   (retention_days => 365);
END;
/

Pour plus d'informations sur la procédure, reportez-vous à la section SET_FLASHBACK_ARCHIVE_RETENTION Procedure.

Purger les données historiques pour Flashback Time Travel

Décrit la procédure de purge des données historiques pour Flashback Time Travel dans Autonomous Database.

Vous pouvez purger les données historiques de Flashback Time Travel si vous êtes connecté en tant qu'utilisateur ADMIN ou si vous disposez du privilège EXECUTE sur DBMS_CLOUD_ADMIN.

Par exemple, pour purger toutes les données historiques de Flashback Time Travel :
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'ALL');
END;
/
Exemple de purge des données historiques de Flashback Time Travel avant un horodatage donné :
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'TIMESTAMP', before_timestamp => '12-JUL-2023 10:24:00');
END;
/
Exemple de purge des données historiques Flashback Time Travel datant de plus d'1 jour :
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'TIMESTAMP', before_timestamp => SYSTIMESTAMP - INTERVAL '1' DAY);
END;
/
Exemple de purge des données historiques de Flashback Time Travel avant le scn indiqué :
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'SCN',before_scn=> '5928826');
END;
/

Pour plus d'informations sur la procédure, reportez-vous à la section PURGE_FLASHBACK_ARCHIVE Procedure.

Afficher les informations de voyage Flashback Time

Décrit les vues du dictionnaire de données permettant d'afficher des informations sur les fichiers Flashback Time Travel dans Autonomous Database.

Vous pouvez afficher des informations sur les fichiers Flashback Time Travel dans des vues statiques du dictionnaire de données.

Afficher Description
*_FLASHBACK_ARCHIVE Affiche des informations sur les fichiers Flashback Time Travel.
*_FLASHBACK_ARCHIVE_TS Affiche les tablespaces des fichiers Flashback Time Travel.
*_FLASHBACK_ARCHIVE_TABLES Affiche des informations sur les tables pour lesquelles Flashback Time Travel est activé.

Notes pour Flashback Time Travel

Fournit des notes et des restrictions pour l'utilisation de Flashback Time Travel sur Autonomous Database.

Notez les restrictions de déplacement Flashback Time suivantes :

  • Vous ne pouvez pas activer Flashback Time Travel sur les tables avec le type de données LONG ou les colonnes de table imbriquée.

  • Vous ne pouvez pas activer Flashback Time Travel sur une table imbriquée, une table temporaire, une table externe, une vue matérialisée, une table Advanced Query (AQ), des tables partitionnées hybrides ou un objet non-table.

  • Flashback Time Travel ne prend pas en charge les instructions LDD qui déplacent, fractionnent, fusionnent ou fusionnent des partitions ou des sous-partitions, déplacent des tables ou convertissent des colonnes LONG en colonnes LOB.

  • L'ajout ou l'activation d'une contrainte, y compris la contrainte de clé étrangère, sur une table activée pour Flashback Time Travel échoue avec ORA-55610.

    La suppression ou la désactivation d'une contrainte (y compris la contrainte de clé étrangère) sur une table activée pour Flashback Time Travel est prise en charge.

  • Après avoir activé Flashback Time Travel sur une table, Oracle recommande d'attendre au départ au moins 20 secondes avant d'insérer des données dans la table et d'attendre jusqu'à 5 minutes avant d'utiliser Flashback Query sur la table.
  • Il existe une Flashback Data Archive par instance Autonomous Database, nommée flashback_archive, et vous ne pouvez pas créer d'autres Flashback Data Archives.

  • Vous ne pouvez pas supprimer la Flashback Data Archive, flashback_archive, dans une instance Autonomous Database.

  • Vous ne pouvez pas créer, modifier ou supprimer des tablespaces pour Flashback Data Archive. Vous ne pouvez donc pas exécuter les instructions suivantes :

    • ALTER FLASHBACK ARCHIVE flashback_archive ADD TABLESPACE;
    • ALTER FLASHBACK ARCHIVE flashback_archive MODIFY TABLESPACE;
    • ALTER FLASHBACK ARCHIVE flashback_archive REMOVE TABLESPACE;
  • Si vous activez Flashback Time Travel sur une table, mais que l'option Automatic Undo Management (AUM) est désactivée, l'erreur ORA-55614 se produit lorsque vous tentez de modifier la table.

  • Pour activer Flashback Time Travel sur une table, celle-ci ne peut pas utiliser les mots réservés Flashback Time Travel suivants en tant que noms de colonne :
    • STARTSCN
    • ENDSCN
    • RID
    • XID
    • OP
    • OPERATION