Suivi des modifications de table avec Flashback Time Travel

Utilisez Flashback Time Travel afin de visualiser les états passés d'objets de base de données ou de rétablir un état antérieur sans utiliser la restauration physique jusqu'à un point dans le temps.

À propos de Flashback Time Travel

Flashback Time Travel vous permet de suivre et de stocker les modifications transactionnelles apportées à une table pendant sa durée de vie. Flashback Time Travel permet de se conformer aux stratégies de phase d'enregistrement et de générer des états d'audit. Vous pouvez également utiliser Flashback Time Travel dans différents scénarios tels que la mise en application du broyage numérique, l'accès aux données historiques et la récupération sélective des données.

Flashback Time Travel était appelé Flashback Data Archive dans les versions précédentes d'Oracle Database. Les API Flashback Time Travel et certains termes Flashback Time Travel, tels que le privilège FLASHBACK ARCHIVE, conservent la dénomination Flashback Data Archive.

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

Des restrictions s'appliquent à l'activation de Flashback Time Travel pour une table, notamment les suivantes :

  • Vous devez disposer du privilège d'objet FLASHBACK ARCHIVE pour flashback_archive. Ce privilège est accordé à l'utilisateur ADMIN par défaut.
  • La table ne doit pas être de l'un des types suivants :
    • Une table imbriquée
    • Une table temporaire
    • Table distante
    • Table externe
  • La table ne peut pas contenir de colonnes LONG.
  • La table ne peut pas contenir de colonnes imbriquées.

Reportez-vous à Remarques relatives à Flashback Time Travel pour obtenir la liste des restrictions supplémentaires relatives à Flashback Time Travel.

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

Activation de Flashback Time Travel pour une table

Décrit les étapes d'activation de 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 d'objet FLASHBACK ARCHIVE.

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

    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 privilèges utilisateur et des privilèges sur Autonomous Database.

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

  1. Pour activer Flashback Time Travel lorsque vous créez 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, procédez comme suit :
    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

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

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

Par exemple, afin de désactiver Flashback Time Travel pour la table employee, procédez comme suit :
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 pour 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, procédez comme suit :
BEGIN
  DBMS_CLOUD_ADMIN.SET_FLASHBACK_ARCHIVE_RETENTION
   (retention_days => 365);
END;
/

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

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 pour 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, procédez comme suit :
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'ALL');
END;
/
Exemple de purge des données historiques de Flashback Time Travel avant un horodatage indiqué :
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 de 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 numéro 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 à PURGE_FLASHBACK_ARCHIVE Procédure.

Afficher les informations Flashback Time Travel

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

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

Visualiser 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 relatives à Flashback Time Travel

Fournit des remarques et des restrictions relatives à l'utilisation de Flashback Time Travel sur Autonomous Database.

Notez les restrictions relatives à Flashback Time Travel suivantes :

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

  • Vous ne pouvez pas activer Flashback Time Travel sur une table imbriquée, temporaire, externe, matérialisée, de requête avancée (AQ), partitionnée hybride ou non.

  • Flashback Time Travel ne prend pas en charge les instructions DDL qui permettent de déplacer, de fractionner ou de fusionner des partitions ou sous-partitions, de déplacer des tables ou de convertir des colonnes LONG en colonnes LOB.

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

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

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

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

  • Vous ne pouvez pas créer, modifier ou supprimer des tablespaces du fichier Flashback Data Archive. Par conséquent, vous ne pouvez 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 la gestion automatique de l'annulation est désactivée, l'erreur ORA-55614 se produit lorsque vous essayez de modifier la table.

  • Pour pouvoir activer Flashback Time Travel sur une table, celle-ci ne peut pas utiliser l'un des mots réservés suivants comme noms de colonne :
    • STARTSCN
    • ENDSCN
    • RID
    • XID
    • OP
    • OPERATION