Tenere traccia delle modifiche alle tabelle con Flashback Time Travel

Utilizzare Flashback Time Travel per visualizzare gli stati passati degli oggetti di database o per restituire gli oggetti di database a uno stato precedente senza utilizzare il recupero dei supporti point-in-time.

Informazioni su Flashback Time Travel

Flashback Time Travel ti consente di monitorare e memorizzare le modifiche transazionali a una tabella nel corso della sua vita. Flashback Time Travel è utile per la conformità con le politiche della fase di registrazione e i report di audit. Puoi anche utilizzare Flashback Time Travel in vari scenari, come l'applicazione della triturazione digitale, l'accesso ai dati storici e il recupero selettivo dei dati.

Flashback Time Travel è stato chiamato Flashback Data Archive nelle versioni precedenti di Oracle Database. Le API Flashback Time Travel e alcuni termini Flashback Time Travel, come il privilegio FLASHBACK ARCHIVE, mantengono la denominazione Flashback Data Archive.

Ogni istanza di Autonomous Database dispone di un archivio Flashback denominato flashback_archive che supporta le operazioni Flashback Time Travel. Il tempo di conservazione predefinito per flashback_archive è di 60 giorni. Per informazioni sulla modifica del tempo di conservazione predefinito, vedere Modifica del tempo di conservazione per i viaggi temporali di flashback.

Esistono limitazioni per abilitare Flashback Time Travel per una tabella, tra cui:

  • È necessario disporre del privilegio dell'oggetto FLASHBACK ARCHIVE per flashback_archive. Per impostazione predefinita, l'utente ADMIN dispone di questo privilegio.
  • La tabella non deve essere una delle seguenti:
    • Una tabella nidificata
    • Una tabella temporanea
    • Una tabella remota
    • Una tabella esterna
  • La tabella non può contenere colonne LONG.
  • La tabella non può contenere colonne nidificate.

Vedere Note per Flashback Time Travel per un elenco di ulteriori restrizioni di Flashback Time Travel.

Per ulteriori informazioni sulla tecnologia Flashback, vedere Uso della tecnologia Oracle Flashback.

Abilita Flashback Time Travel per una tabella

Descrive i passi per abilitare Flashback Time Travel per una tabella in Autonomous Database.

Per impostazione predefinita, Flashback Time Travel è disabilitato per le tabelle nuove ed esistenti.

Di seguito è riportato il prerequisito per abilitare Flashback Time Travel:
  • È necessario aver eseguito il login come utente ADMIN o disporre del privilegio oggetto FLASHBACK ARCHIVE.

    L'utente ADMIN o l'utente che dispone del privilegio FLASHBACK ARCHIVE WITH GRANT OPTION può concedere il privilegio dell'oggetto FLASHBACK ARCHIVE a un altro utente.

    Ad esempio:

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

    Per ulteriori informazioni, vedere Gestire ruoli e privilegi utente in Autonomous Database.

È possibile abilitare Flashback Time Travel per una tabella esistente o una nuova tabella che si sta creando.

  1. Per abilitare Flashback Time Travel quando si crea una tabella:
    CREATE TABLE employee (EMPNO NUMBER(4) NOT NULL, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4)) FLASHBACK ARCHIVE;
  2. Per abilitare Flashback Time Travel per una tabella esistente:
    ALTER TABLE departments FLASHBACK ARCHIVE;

Dopo aver abilitato Flashback Time Travel per una tabella, è possibile disabilitare Flashback Time Travel. Per ulteriori informazioni, vedere Disabilita viaggi temporali flashback per una tabella.

Disabilita viaggio temporale flashback per una tabella

Descrive la procedura per disabilitare Flashback Time Travel per una tabella in Autonomous Database.

Dopo aver abilitato Flashback Time Travel per una tabella, è possibile disabilitarla come utente ADMIN o se si dispone del privilegio oggetto FLASHBACK ARCHIVE.

Ad esempio, per disabilitare Flashback Time Travel per la tabella employee:
ALTER TABLE employee NO FLASHBACK ARCHIVE;

Modificare il tempo di conservazione per Flashback Time Travel

Descrive la procedura per modificare il tempo di conservazione per Flashback Time Travel in Autonomous Database.

È possibile modificare il tempo di conservazione per Flashback Time Travel se si è connessi come utente ADMIN o se si dispone del privilegio EXECUTE su DBMS_CLOUD_ADMIN.

Ad esempio, per impostare il tempo di conservazione su 365 giorni:
BEGIN
  DBMS_CLOUD_ADMIN.SET_FLASHBACK_ARCHIVE_RETENTION
   (retention_days => 365);
END;
/

Per informazioni dettagliate sulla procedura, vedere SET_FLASHBACK_ARCHIVE_RETENTION Procedure.

Rimuovi dati cronologici per Flashback Time Travel

Descrive la procedura per rimuovere i dati cronologici per Flashback Time Travel in Autonomous Database.

È possibile rimuovere i dati cronologici per Flashback Time Travel se si è connessi come utente ADMIN o se si dispone del privilegio EXECUTE su DBMS_CLOUD_ADMIN.

Ad esempio, per rimuovere tutti i dati cronologici di Flashback Time Travel:
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'ALL');
END;
/
Esempio per rimuovere i dati cronologici di Flashback Time Travel prima di un indicatore orario specificato:
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'TIMESTAMP', before_timestamp => '12-JUL-2023 10:24:00');
END;
/
Esempio di rimozione dei dati cronologici di Flashback Time Travel più vecchi di 1 giorno:
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'TIMESTAMP', before_timestamp => SYSTIMESTAMP - INTERVAL '1' DAY);
END;
/
Esempio per rimuovere i dati storici di Flashback Time Travel prima dello scn specificato:
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'SCN',before_scn=> '5928826');
END;
/

Per informazioni dettagliate sulla procedura, vedere PURGE_FLASHBACK_ARCHIVE Procedure.

Visualizza informazioni Flashback Time Travel

Descrive le viste del dizionario dati per visualizzare informazioni sui file Flashback Time Travel in Autonomous Database.

È possibile visualizzare informazioni sui file Flashback Time Travel nelle viste del dizionario dati statici.

Visualizza Descrizione
*_FLASHBACK_ARCHIVE Visualizza informazioni sui file Flashback Time Travel.
*_FLASHBACK_ARCHIVE_TS Visualizza le tablespace dei file di Flashback Time Travel.
*_FLASHBACK_ARCHIVE_TABLES Visualizza informazioni sulle tabelle per le quali è abilitato il flashback del viaggio nel tempo.

Note per Flashback Time Travel

Fornisce note e limitazioni per l'utilizzo di Flashback Time Travel su Autonomous Database.

Tenere presenti le seguenti restrizioni di Flashback Time Travel:

  • Impossibile abilitare Flashback Time Travel nelle tabelle con tipo di dati LONG o colonne di tabella nidificate.

  • Non è possibile abilitare Flashback Time Travel in una tabella nidificata, una tabella temporanea, una tabella esterna, una vista materializzata, una tabella AQ (Advanced Query), una tabella ibrida partizionata o un oggetto non tabella.

  • Flashback Time Travel non supporta istruzioni DDL che spostano, dividono, uniscono o uniscono partizioni o partizioni secondarie, spostano tabelle o convertono colonne LONG in colonne LOB.

  • L'aggiunta o l'abilitazione di un vincolo, incluso il vincolo di chiave esterna, in una tabella abilitata per Flashback Time Travel non riesce con ORA-55610.

    È supportato l'eliminazione o la disabilitazione di un vincolo (incluso il vincolo di chiave esterna) in una tabella abilitata per Flashback Time Travel.

  • Dopo aver abilitato Flashback Time Travel su una tabella, Oracle consiglia di attendere inizialmente almeno 20 secondi prima di inserire i dati nella tabella e di attendere fino a 5 minuti prima di utilizzare Flashback Query sulla tabella.
  • È presente un archivio di dati di flashback per ogni istanza di Autonomous Database, denominata flashback_archive, e non è possibile creare archivi di dati di flashback aggiuntivi.

  • Non è possibile eliminare Flashback Data Archive, flashback_archive, all'interno di un'istanza di Autonomous Database.

  • Non è possibile creare, modificare o eliminare le tablespace per l'archivio dati flashback. Pertanto, non è possibile eseguire queste istruzioni:

    • ALTER FLASHBACK ARCHIVE flashback_archive ADD TABLESPACE;
    • ALTER FLASHBACK ARCHIVE flashback_archive MODIFY TABLESPACE;
    • ALTER FLASHBACK ARCHIVE flashback_archive REMOVE TABLESPACE;
  • Se si abilita Flashback Time Travel in una tabella, ma Automatic Undo Management (AUM) è disabilitato, l'errore ORA-55614 si verifica quando si tenta di modificare la tabella.

  • Per abilitare Flashback Time Travel su una tabella, la tabella non può utilizzare le seguenti parole riservate Flashback Time Travel come nomi di colonna:
    • STARTSCN
    • ENDSCN
    • RID
    • XID
    • OP
    • OPERATION