Recuperando uma tablespace criada e danificada entre um backup e outro

Olá,

Isso já aconteceu aqui no meu trabalho um dia no passado e ficamos em dúvida de como proceder para voltar os dados.
Acontece que tinhamos um backup diário do RMAN full e 09:00 da manhã um tablespace foi criado pela equipe de banco de dados, porém em um caminho indevido, quando foi por volta do 12:00 o nosso administrador de Sistema operacional deu um “rm” no datafile que achou estar perdido fora da pasta onde os outros arquivo estavam.
Vou tentar ilustrar o mesmo cenário e claro mostrar que não há com que se preocupar se o seu banco de dados está em modo archivelog, o problema é bem menor do que parece.
Meu banco está no windows e em archivelog, logo, para remover o arquivo eu vou obrigatóriamente ter que parar o banco todo para ilustrar o que aconteceu no Unix.

1) Schema do meu banco de dados (RMAN> report schema;)

Até o momento não tenho backup do meu banco de dados, o mesmo acabou de ser disparado por mim como mostrado na figura 2.

2) Verificação de Backup (RMAN> list backup;) e backup do banco (RMAN> backup as backupset database;)

Depois de ter feito um backup eu criei uma nova tablespace para realizar alguns testes, e ela não está inclusa no meu backupset, isso é óbvio, espero.

3) Criação das tablespaces

Dei um “shutdown abort” no banco e removi manualmente pelo Sistema Operacional o datafile dessa tablespace que acabei de criar e que ainda não estava no meu backupset. Quando tento subir o banco novamente, dá erro pois o dbwr não encontra o arquivo.

4) Tentativa de subir o banco de dados

Agora a mágica…

Mesmo sem estar contido no meu conjunto de backups o Rman conseguiu restaurar o datafile e recuperar a tablespace e abrir o banco, e porque ele conseguiu fazer isso?

Simples! Porque quando eu criei a tablespace isso ficou lá no meu redolog. Isso também resolveria para tabelas, índices e etc. Até aí nenhuma novidade, o que é novidade nisso, é que em versões anteriores ao 10g, o DBA tinha que manualmente criar um arquivo vazio com um programas como (touch, vi, Edit e etc) no sistema operacional e depois fazer o processo com o RMAN.

A Oracle sempre ajuda os DBA’s a cada versão.

Deixe uma resposta

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