Hoje a gente vai falar sobre RMAN table recovery, uma das features novas do Oracle 12c, e a minha visão pessoal sobre essa feature.
A documentação oficial você pode encontrar aqui.
Basicamente o RMAN usa o mecanismo de Point in Time recovery e automatiza o jeito que a gente pode fazer recover de uma única tabela. Antes do Oracle 12c a gente conseguia fazer isso manualmente.
Por dentro desse mecanismo, o RMAN cria uma instância auxiliar pra fazer o recovery, pega só a informação necessária: o RMAN restaura e recupera as tablespaces SYSTEM, SYSAUX, UNDO + a tablespace onde a tabela reside, e usa um datapump (expdp e impdp, se você configurar pra importar isso no banco) pra pegar a informação no ponto no tempo.
Por que usar esse mecanismo?
- Porque ele permite recuperar uma informação antiga que foi dropada (acidentalmente ou não por algum usuário, claro que se você tiver o backup anterior) sem precisar fazer restore do banco inteiro.
- É muito fácil de usar: ele permite recuperar a informação a partir de backup em tape ou disco. Você só precisa ter a informação disponível.
- Você pode configurar pra importar a tabela com outro nome, ou só gerar um dump.
Por que não usar esse mecanismo? (até 12cR1)
- Se você tem índice associado à tabela requerida e esse índice estava em uma tablespace diferente, você pode ter alguns problemas.
- Você não pode configurar opções como paralelismo ou excluir índices no datapump.