Pular para o conteúdo

Recuperando Tabelas Removidas por Engano

Um certo dia, um dos analistas me pediu pra remover uma tabela do banco de dados, a qual não seria mais utilizada pelo sistema. Então me escreveu: Por favor, remova a tabela xxx. No entanto, a tabela que deveria ser removida era a xxxy, ou seja, outra tabela…… Embora eu tenha sempre um backup à mão e também os scripts de criação de todo banco, o que eu poderia fazer pra rapidamente voltar a tabela para o banco pra que a equipe de desenvolvimento não ficasse parada? Se eu utilizasse o script, os dados estariam perdidos, e se eu voltasse o backup (tirado na noite anterior), todos os dados cadastrados naquela manhã também seriam perdidos. A solução foi usar um importante recurso do Oracle 10g, o FLASHBACK. Com o Flashback, conseguimos recuperar as tabelas que são removidas (dropadas), desde que elas estejam na lixeira.

A forma de se recuperar a tabela é bastante simples:

FLASHBACK TABLE <nome_do_esquema>.”<item_da_lixeira>” TO BEFORE DROP;

O nome do esquema é necessário sempre que você está fazendo uma operação em objetos de outros esquemas. O item da lixeira é o nome da tabela que foi removida. Quando executamos o comando drop table, a tabela não é removida totalmente do banco, ela continua inclusive no mesmo esquema, mas ela recebe um outro nome com o prefixo BIN$$, atribuído pelo próprio SGBD durante a operação de drop. E é esse o nome que iremos usar para recuperá-la, o qual pode ser consultado através da view RECYCLEBIN.
Vamos ver um exemplo:

FLASHBACK TABLE MARY."BIN$$aXTfzqrmrGO0UGOFN34mOw==$0" TO BEFORE DROP;

É importante ressaltar que uma tabela pode ser ainda acessada e consultada após ser dropada, desde que não se limpe a lixeira… Além disso, o Flashback pode ser usado também para recuperar tabelas alteradas por engano, mas isso é assunto pra outro post 🙂
Para relembrar, podemos limpar a tabela excluída por drop com o comando:

PURGE TABLE MARY."BIN$$aXTfzqrmrGO0UGOFN34mOw==$0";

Espero ter contribuído com mais essa dica….

Abraços

Quão útil foi este post ?

Clique em uma estrela para classificar o post

nota média 0 / 5. Contagem de votos: 0

Sem votos ! Seja o primeiro a classificar !

Marcações:

1 comentário em “Recuperando Tabelas Removidas por Engano”

Deixe um comentário para Julio Cesar Correa Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress