Restaurar tabelas eliminadas a partir da lixeira
- Flashback Drop usa a lixeira para recuperar as tabelas eliminadas.
- A lixeira (recycle bin) é uma tabela do dicionário de dados que rastreia os objetos eliminados.
- É possível restaurar as versões atual ou anterior das tabelas eliminadas a partir da lixeira.
- Quando você elimina um objeto com a lixeira ativada, o espaço alocado para o objeto eliminado e para todos os objetos associados (como índices) passa a constar imediatamente na view do dicionário de dados
DBA_FREE_SPACE
. - Quando uma tabela é eliminada, a tabela e seus objetos dependentes são renomeadas com um nome atribuído pelo sistema, usando um formato
BIN$unique_id$version
. - Para consultar a lixeira, você pode utilizar a view do dicionário de dados
USER_RECYCLEBIN
.RECYCLEBIN
é um sinônimo global paraUSER_RECYCLEBIN
. - A view do dicionário de dados
USER_RECYCLEBIN
tem as mesmas colunas da viewDBA_RECYCLEBIN
, exceto que aUSER_RECYCLEBIN
não possui a coluna owner. - Para
restaurar
uma tabela da lixeira, use o comandoFLASHBACK TABLE ... TO BEFORE DROP
. - Se você tentar restaurar uma tabela que foi recriada depois de sua eliminação, receberá um erro, a menos que você inclua a cláusula
RENAME TO
para atribuir um novo nome à tabela restaurada. - O espaço na lixeira e, por extensão, o espaço no tablespace contendo a lixeira são gerenciados automaticamente pelo Oracle.
- Todos os objetos eliminados continuam disponíveis para recuperação na lixeira, desde que os novos objetos não necessitem do espaço ocupado pelos objetos eliminados.
- Você pode emitir o comando
PURGE
para remover manualmente as tabelas da lixeira. - Quando um objeto reside na lixeira, você também pode utilizar a instrução
SELECT
para acessar a tabela eliminada, que continuará constando nas views do dicionário de dadosDBA_TABLES
,DBA_OBJECTS
eDBA_SEGMENTS
.
Executar um Flashback Query
- O Flashback Query permite exibir uma ou mais linhas de uma tabela em um tempo no passado.
- Para garantir o êxito das operações de flashback ou das consultas de longa execução às custas da atividade DML, você deve especificar
RETENTION GUARANTEE
para o tablespace de undo. - É possível verificar o status da retenção de um tablespace de undo consultando a view do dicionário de dados
DBA_TABLESPACES
. - O Flashback Query usa a cláusula
AS OF
para especificar o ponto anterior no tempo como um timestamp ou um SCN. - O Flashback Version Query, outro recurso de flashback, propicia um nível com mais detalhamento do que a consulta com
AS OF
(Flashback Query). - O Flashback Version Query usa a cláusula
VERSIONS BETWEEN
para especificar um intervalo de SCNs ou timestamps para análise de uma tabela específica.
Usar o Flashback Transaction
- A view do dicionário de dados
FLASHBACK_TRANSACTION_QUERY
tem todas as informações de que você necessita para identificar o código SQL necessário para reverter uma transação. - Para utilizar o Flashback Transaction Query, você deve ativar o registro em log adicional para o fluxo de redo log. Esses são os mesmos dados que o Log Miner utiliza, embora em outra interface.
- Você deve conceder permissões sobre a package
DBMS_FLASHBACK
, assim como o privilégioSELECT ANY TRANSACTION
aos usuários que usarão o Flashback Transaction Query, - A coluna
UNDO_SQL
doFLASHBACK_TRANSACTION_QUERY
contém o código SQL que pode ser utilizado para reverter o efeito de uma transação. - O Enterprise Manager (EM) fornece uma GUI fácil de usar como front-end para a procedure
DBMS_FLASHBACK.TRANSACTION_BLACKOUT
- As quatro opções de reversão de transações são:
CASCADE
,NOCASCADE
,NOCASCADE_FORCE
eNONCONFLICT_ONLY
.
Leia também:
Capítulo 9: Configurando e Usando Flashback (parte 2)
Capítulo 9: Configurando e Usando Flashback (parte 3)
Referência Bibliográfica
Este post, assim como todos os posts sobre Certificação OCP deste blog, são trechos do livro “OCP Oracle Database 11g – Administração II (Guia do Exame 1Z0-053)”, da editora Bookman – www.bookman.com.br
Recomendo este livro a todos que pretendem estudar para o exame. Meus posts são apenas algumas dicas para quem já está estudando por outros materiais, e por isso exige uma base de conhecimento anterior em cada um dos capitulos. Para uma referência completa de estudos é recomendado a compra do livro correspondente, bem como a documentação oficial da Oracle.