[Oracle] OCP 11g – Capítulo 9: Configurando e Usando Flashback (parte 1) | Certificação BD 4shared
[Oracle] OCP 11g – Capítulo 9: Configurando e Usando Flashback (parte 1)
Postado por Milton Bastos | dez 6, 2012 | 1Z0-053 | 0 |
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 para USER_RECYCLEBIN.
A view do dicionário de dados USER_RECYCLEBIN tem as mesmas colunas da view DBA_RECYCLEBIN, exceto que a USER_RECYCLEBIN não possui a coluna owner.
Para restaurar uma tabela da lixeira, use o comando FLASHBACK 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 dados DBA_TABLES, DBA_OBJECTS e DBA_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égio SELECT ANY TRANSACTION aos usuários que usarão o Flashback Transaction Query,
A coluna UNDO_SQL do FLASHBACK_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 e NONCONFLICT_ONLY.