Suivre les modifications de table à l'aide de Flashback Time Travel

Utilisez Flashback Time Travel pour afficher les états passés des objets de base de données ou pour renvoyer les objets de base de données à un état antérieur sans utiliser de restauration physique ponctuelle.

À propos de Flashback Time Travel

Flashback Time Travel vous permet de suivre et de stocker les modifications transactionnelles apportées à une table pendant toute sa durée de vie. Flashback Time Travel est utile pour la conformité avec les stratégies d'enregistrement et les rapports d'audit. Vous pouvez également utiliser Flashback Time Travel dans différents 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 s'appelait Flashback Data Archive dans les versions antérieures d'Oracle Database. Les API Flashback Time Travel et certains termes Flashback Time Travel tels que le privilège FLASHBACK ARCHIVE conservent le nom Flashback Data Archive.

Chaque instance de base de données Autonomous AI Database comporte une Flashback Archive nommée flashback_archive qui prend en charge les opérations Flashback Time Travel. Le temps de conservation par défaut pour flashback_archive est de 60 jours. Voir Modifier le temps de conservation pour les déplacements avec flashback pour plus d'informations sur la modification du temps de conservation par défaut.

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

  • Vous devez disposer du privilège d'objet FLASHBACK ARCHIVE pour flashback_archive. Par défaut, l'utilisateur ADMIN dispose de ce privilège.
  • La table ne doit pas comporter l'une des valeurs 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.

Voir Notes pour les déplacements avec temps Flashback pour obtenir la liste des restrictions de déplacement avec temps Flashback supplémentaires.

Pour plus d'informations sur la technologie Flashback, voir 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 une base de données IA autonome.

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

Voici la marche à suivre pour activer Flashback Time Travel :
  • Vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège objet FLASHBACK ARCHIVE.

    L'utilisateur ADMIN ou l'utilisateur doté du privilège FLASHBACK ARCHIVE WITH GRANT OPTION peut accorder le privilège 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, voir Gérer les rôles et les privilèges d'utilisateur sur la base de données d'IA autonome.

Vous pouvez activer Flashback Time Travel pour une table existante ou une nouvelle 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 :
    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, voir Désactiver le temps de déplacement Flashback pour une table.

Désactiver Flashback Time Travel pour une table

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

Une fois que Flashback Time Travel est activé pour une table, vous pouvez la 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;

Modifier le temps de conservation pour les déplacements Flashback Time

Décrit la procédure permettant de modifier le temps de conservation pour Flashback Time Travel dans Autonomous Database.

Vous pouvez modifier le temps 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 régler la durée de conservation à 365 jours :
BEGIN
  DBMS_CLOUD_ADMIN.SET_FLASHBACK_ARCHIVE_RETENTION
   (retention_days => 365);
END;
/

Voir Procédure SET_FLASHBACK_ARCHIVE_RETENTION pour des informations détaillées sur la procédure.

Épurer les données historiques pour Flashback Time Travel

Décrit la procédure d'épuration des données historiques pour Flashback Time Travel dans Autonomous Database.

Vous pouvez épurer 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 Flashback Time Travel :
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'ALL');
END;
/
Exemple d'épuration des données historiques Flashback Time Travel avant un horodatage spécifié :
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'TIMESTAMP', before_timestamp => '12-JUL-2023 10:24:00');
END;
/
Exemple d'épuration 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 d'épuration des données historiques Flashback Time Travel avant le balayage spécifié :
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'SCN',before_scn=> '5928826');
END;
/

Voir Procédure PURGE_FLASHBACK_ARCHIVE pour des informations détaillées sur la procédure.

Afficher les informations de déplacement Flashback Time

Décrit les vues du dictionnaire de données pour 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.

Voir 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 Flashback Time Travel suivantes :

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

  • 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 AQ (Advanced Query), des tables partitionnées hybrides ou un objet non-table.

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

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

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

  • Après avoir activé Flashback Time Travel sur une table, Oracle recommande d'attendre initialement 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 AI Database, nommée flashback_archive, et vous ne pouvez pas créer d'autres Flashback Data Archives.

  • Vous ne pouvez pas supprimer Flashback Data Archive, flashback_archive, dans une instance de base de données d'IA autonome.

  • Vous ne pouvez pas créer, modifier ou supprimer des tablespaces pour 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 des annulations (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, la table ne peut pas utiliser les mots réservés Flashback Time Travel suivants comme noms de colonne :
    • STARTSCN
    • ENDSCN
    • RID
    • XID
    • OP
    • OPERATION