Rastreie Alterações na Tabela com Flashback de Tempo

Usar o recurso Flashback Time Travel para exibir estados passados de objetos de banco de dados ou retornar objetos de banco de dados a um estado anterior sem usar a recuperação de mídia pontual.

Sobre o Flashback Time Travel

O Flashback Time Travel permite que você rastreie e armazene alterações transacionais em uma tabela durante sua vida útil. O Flashback Time Travel é útil para conformidade com políticas de estágio de registro e relatórios de auditoria. Você também pode usar o Flashback Time Travel em vários cenários, como a aplicação de trituração digital, o acesso a dados históricos e a recuperação seletiva de dados.

O Flashback Time Travel foi chamado de Flashback Data Archive nas versões anteriores do Oracle Database. As APIs do Flashback Time Travel e alguns termos do Flashback Time Travel, como o privilégio FLASHBACK ARCHIVE, mantêm a nomenclatura do Flashback Data Archive.

Cada instância do Autonomous Database tem um Arquivo Flashback chamado flashback_archive que suporta operações de Viagem no Tempo de Flashback. O tempo de retenção padrão para flashback_archive é de 60 dias. Consulte Modificar o Tempo de Retenção para Viagem no Tempo de Flashback para obter informações sobre como alterar o tempo de retenção padrão.

Há restrições para ativar o Flashback Time Travel para uma tabela, incluindo o seguinte:

  • Você deve ter o privilégio de objeto FLASHBACK ARCHIVE para flashback_archive. Por padrão, o usuário ADMIN tem esse privilégio.
  • A tabela não deve ser uma das seguintes:
    • Uma tabela aninhada
    • Uma tabela temporária
    • Uma tabela remota
    • Uma tabela externa
  • A tabela não pode conter colunas LONG.
  • A tabela não pode conter colunas aninhadas.

Consulte Observações sobre o Flashback Time Travel para obter uma lista de restrições adicionais do Flashback Time Travel.

Consulte Usando a Tecnologia Oracle Flashback para obter mais informações sobre a Tecnologia Flashback.

Ativar Viagem no Tempo de Flashback para uma Tabela

Descreve as etapas para ativar o Flashback Time Travel para uma tabela no Autonomous Database.

Por padrão, o recurso Flashback Time Travel é desativado para tabelas novas e existentes.

Este é o pré-requisito para ativar o Flashback Time Travel:
  • Você deve estar conectado como usuário ADMIN ou ter o privilégio de objeto FLASHBACK ARCHIVE.

    O usuário ADMIN ou o usuário que tem o privilégio FLASHBACK ARCHIVE WITH GRANT OPTION pode conceder o privilégio de objeto FLASHBACK ARCHIVE a outro usuário.

    Por exemplo:

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

    Consulte Gerenciar Atribuições e Privilégios do Usuário no Autonomous Database para obter mais informações.

Você pode ativar o Flashback Time Travel para uma tabela existente ou uma nova tabela que você está criando.

  1. Para ativar o Flashback Time Travel ao criar uma tabela:
    CREATE TABLE employee (EMPNO NUMBER(4) NOT NULL, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4)) FLASHBACK ARCHIVE;
  2. Para ativar a Viagem no Tempo de Flashback para uma tabela existente:
    ALTER TABLE departments FLASHBACK ARCHIVE;

Depois de ativar o Flashback Time Travel para uma tabela, você poderá desativar o Flashback Time Travel. Consulte Desativar Deslocamento no Tempo de Flashback de uma Tabela para obter mais informações.

Desativar Viagem no Tempo de Flashback para uma Tabela

Descreve o procedimento para desativar o Flashback Time Travel de uma tabela no Autonomous Database.

Depois que o Flashback Time Travel for ativado para uma tabela, você poderá desativá-lo como o usuário ADMIN ou se tiver o privilégio de objeto FLASHBACK ARCHIVE.

Por exemplo, para desativar o Flashback Time Travel para a tabela employee:
ALTER TABLE employee NO FLASHBACK ARCHIVE;

Modificar o Tempo de Retenção para Viagem no Tempo de Flashback

Descreve o procedimento para modificar o tempo de retenção do Flashback Time Travel no Autonomous Database.

Você pode modificar o tempo de retenção da Viagem no Tempo de Flashback se estiver conectado como usuário ADMIN ou se tiver o privilégio EXECUTE em DBMS_CLOUD_ADMIN.

Por exemplo, para definir o tempo de retenção como 365 dias:
BEGIN
  DBMS_CLOUD_ADMIN.SET_FLASHBACK_ARCHIVE_RETENTION
   (retention_days => 365);
END;
/

Consulte SET_FLASHBACK_ARCHIVE_RETENTION Procedures para obter informações detalhadas sobre o procedimento.

Expurgar Dados Históricos para Viagem no Tempo de Flashback

Descreve o procedimento para expurgar dados históricos do Flashback Time Travel no Autonomous Database.

Você poderá expurgar dados históricos do Flashback Time Travel se estiver conectado como usuário ADMIN ou se tiver o privilégio EXECUTE em DBMS_CLOUD_ADMIN.

Por exemplo, para limpar todos os dados históricos do Flashback Time Travel:
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'ALL');
END;
/
Exemplo de limpeza dos dados históricos de Viagem no Tempo de Flashback antes de um timestamp especificado:
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'TIMESTAMP', before_timestamp => '12-JUL-2023 10:24:00');
END;
/
Exemplo de limpeza de dados históricos de Viagem no Tempo de Flashback com mais de 1 dia:
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'TIMESTAMP', before_timestamp => SYSTIMESTAMP - INTERVAL '1' DAY);
END;
/
Exemplo para limpar os dados históricos de Viagem no Tempo de Flashback antes do scn especificado:
BEGIN
  DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
   (scope => 'SCN',before_scn=> '5928826');
END;
/

Consulte PURGE_FLASHBACK_ARCHIVE Procedures para obter informações detalhadas sobre o procedimento.

Exibir Informações de Viagem no Tempo de Flashback

Descreve views do dicionário de dados para exibir informações sobre arquivos Flashback Time Travel no Autonomous Database.

Você pode exibir informações sobre arquivos Flashback Time Travel em views estáticas do dicionário de dados.

Exibir Descrição
*_FLASHBACK_ARCHIVE Exibe informações sobre arquivos Flashback Time Travel.
*_FLASHBACK_ARCHIVE_TS Exibe tablespaces dos arquivos Flashback Time Travel.
*_FLASHBACK_ARCHIVE_TABLES Exibe informações sobre tabelas que têm o recurso Flashback Time Travel ativado.

Observações para Viagem no Tempo de Flashback

Fornece observações e restrições para usar o Flashback Time Travel no Autonomous Database.

Observe as seguintes restrições de Flashback Time Travel:

  • Não é possível ativar o Flashback Time Travel em tabelas com tipo de dados LONG ou colunas de tabela aninhadas.

  • Não é possível ativar a Viagem no Tempo de Flashback em uma tabela aninhada, tabela temporária, tabela externa, view materializada, tabela de Consulta Avançada (AQ), tabelas particionadas híbridas ou objeto não de tabela.

  • O Flashback Time Travel não suporta instruções DDL que movem, dividem, mesclam ou unem partições ou subpartições, movem tabelas ou convertem colunas LONG em colunas LOB.

  • A adição ou ativação de uma Restrição, incluindo Restrição de Chave Estrangeira, em uma tabela que foi ativada para Viagem no Tempo de Flashback falha com ORA-55610.

    É suportada a eliminação ou desativação de uma Restrição (incluindo Restrição de Chave Estrangeira) em uma tabela que tenha sido ativada para Viagem no Tempo de Flashback.

  • Depois de ativar o Flashback Time Travel em uma tabela, a Oracle recomenda inicialmente aguardar pelo menos 20 segundos antes de inserir dados na tabela e aguardar até 5 minutos antes de usar o Flashback Query na tabela.
  • Há um Flashback Data Archive por instância do Autonomous Database, chamado flashback_archive, e você não pode criar Flashback Data Archives adicionais.

  • Você não pode eliminar o Flashback Data Archive, flashback_archive, em uma instância do Autonomous Database.

  • Não é possível criar, modificar nem eliminar tablespaces para o Flashback Data Archive. Portanto, não é possível executar estas instruções:

    • ALTER FLASHBACK ARCHIVE flashback_archive ADD TABLESPACE;
    • ALTER FLASHBACK ARCHIVE flashback_archive MODIFY TABLESPACE;
    • ALTER FLASHBACK ARCHIVE flashback_archive REMOVE TABLESPACE;
  • Se você ativar o Flashback Time Travel em uma tabela, mas o AUM (Gerenciamento Automático de Undo) estiver desativado, o erro ORA-55614 ocorrerá quando você tentar modificar a tabela.

  • Para ativar o Flashback Time Travel em uma tabela, a tabela não pode usar nenhuma das seguintes palavras reservadas do Flashback Time Travel como nomes de coluna:
    • STARTSCN
    • ENDSCN
    • RID
    • XID
    • OP
    • OPERATION