O BDMS_FLASHBACK é um conjunto de funções e procedimentos em um banco de dados Oracle, que permite recuperar dados de uma tabela ou do próprio banco de dados como um todo para um ponto anterior no tempo sem necessidade de restaurar um backup.
Antes de mais nada, certifique-se que o FlashBack está habilitado no seu banco de dados através do seguinte comando:
SELECT flashback_on FROM v$database;
Caso não esteja, habilite-o:
ALTER DATABASE FLASHBACK ON;
A função DBMS_FLASHBACK.ENABLE_AT_TIME nos permite visualizar os dados em uma tabela em um ponto específico no tempo através do comando:
EXECUTE DBMS_FLASHBACK.ENABLE_AT_TIME(SYSTIMESTAMP - INTERVAL '1' HOUR);
Após o passo anterior será possível visualizar os dados da tabela no passado:
SELECT * FROM minha_tabela AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' HOUR);
O DBMS_FLASHBACK.TRANSACTION_BACKOUT é usado para reverter transações específicas. Este bloco PL/SQL reverte a última transação realizada na tabela nos últimos 1 minuto.
DECLARE
my_transaction_id NUMBER;BEGIN
SELECT MAX(versions_xid) INTO my_transaction_id
FROM minha_tabela
VERSIONS BETWEEN TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' MINUTE) AND SYSTIMESTAMP;
DBMS_FLASHBACK.TRANSACTION_BACKOUT (
numtxns => 1,
xid => my_transaction_id,
options_flag => DBMS_FLASHBACK.CASCADE_FORCE
);
END;
No mais, podemos concluir que O DBMS_FLASHBACK é uma ferramenta poderosa que fornece um meio eficiente de recuperar dados e transações em um banco de dados Oracle. A capacidade de visualizar e reverter alterações é vital para manter a integridade dos dados e garantir a consistência do banco de dados ao longo do tempo.
Top comments (0)