Recycle Bin – Recuperação Inteligente
Assim como em uma partida de basquete, onde você pode “resgatar” um jogador para colocar de volta na quadra após uma substituição, o Oracle permite que você recupere dados e objetos que foram “substituídos” (ou seja, excluídos) graças ao Recycle Bin. Nesta segunda parte, vamos aprender a visualizar, gerenciar e restaurar objetos que foram excluídos, mas que ainda permanecem disponíveis para recuperação.
A primeira coisa que queremos fazer é verificar o que está no Recycle Bin. Para isso, podemos usar a visualização ‘RECYCLEBIN’, onde veremos uma lista de objetos deletados que ainda estão disponíveis para restauração.
SELECT object_name, original_name, type, createtime
FROM recyclebin;
Esse comando exibe informações úteis, como o nome original do objeto, o tipo (por exemplo, tabela, índice, etc.), e a data de criação do objeto no Recycle Bin. Isso ajuda a identificar exatamente qual objeto queremos recuperar, especialmente se houver versões múltiplas do mesmo.
Dica Prática: Imagine que você tenha excluído a tabela ‘banco_de_reservas’ algumas vezes. Ao consultar o ‘RECYCLEBIN’, verifique a coluna ‘createtime’ para identificar a versão exata que deseja restaurar, já que todas terão o mesmo nome original.
Restaurando Objetos do Recycle Bin
Para restaurar objetos, você pode usar o comando ‘FLASHBACK TABLE’ com a cláusula ‘TO BEFORE DROP’. Vamos a um exemplo:
Exemplo 1: Recuperando uma tabela pelo nome original
FLASHBACK TABLE banco_de_reservas TO BEFORE DROP;
FLASHBACK TABLE "BIN$JjVK64R3C0zgY2cAqMD88w==$0" TO BEFORE DROP;
Este comando restaura a versão mais recente da tabela ‘banco_de_reservas’ do Recycle Bin.
Exemplo 2: Recuperando uma tabela e alterando seu nome
Se você preferir restaurar a tabela com um novo nome, pode usar a cláusula ‘RENAME TO’:
FLASHBACK TABLE banco_de_reservas TO BEFORE DROP RENAME TO int2_admin_emp;
Esse comando restaura a tabela ‘banco_de_reservas’ e a renomeia para ‘int2_admin_emp’. Esse procedimento é útil se você precisar manter ambas as versões (a atual e a recuperada) para comparações ou auditorias.
Exemplo 3: Restaurando uma versão específica pelo nome no Recycle Bin
Quando uma tabela foi excluída várias vezes, podemos restaurar uma versão específica pelo nome gerado no Recycle Bin. Exemplo:
Primeiro, consulte o ‘RECYCLEBIN’ para obter o nome exclusivo do sistema:
SELECT object_name, original_name, createtime
FROM recyclebin
WHERE original_name = 'BANCO_DE_RESERVAS';
Agora, escolha o nome correspondente e restaure-o:
FLASHBACK TABLE "BIN$JpjH7ZU0CZXgY2cAqMC3OA==$0" TO BEFORE DROP;
Importante: Os nomes de objetos no Recycle Bin são sensíveis a maiúsculas e minúsculas e precisam de aspas duplas ao serem usados.
Excluindo Objetos do Recycle Bin
Se o Recycle Bin está ficando cheio ou se você deseja liberar espaço de armazenamento, pode purgar objetos específicos ou até mesmo todos os objetos do Recycle Bin.
Exemplo 1: Purgar uma tabela específica do Recycle Bin
PURGE TABLE banco_de_reservas;
Este comando remove permanentemente a tabela ‘banco_de_reservas’ do Recycle Bin, liberando o espaço correspondente.
Na imagem acima, a sequência de comandos mostra o processo: primeiro, verificamos que há três tabelas no Recycle Bin. Em seguida, optamos por apagar banco_de_reservas. Ao confirmar, vemos que ela foi removida da lista, restando apenas as outras duas tabelas.
Exemplo 2: Purgar todo o Recycle Bin
Para limpar todo o Recycle Bin, use:
Isso remove todos os objetos do Recycle Bin do usuário atual.
Nota: Este comando não pode ser revertido, então tenha certeza de que não precisará mais dos objetos antes de executar um ‘PURGE’.
Esses comandos e conceitos sobre o Recycle Bin permitem que você mantenha o controle e a recuperação de dados, trazendo flexibilidade na gestão de tabelas e objetos. Assim como no basquete, você pode ter o controle total sobre quem “sai” e quem “volta” à ativa na sua base de dados