Neste post, demonstro como é possível recuperar um datafile que tenha sido exlcuído do filesystem. Esta técnica é aplicada apenas em ambiente Linux e para tal funcionar existem as seguintes condições, big ifs :
- Se a base de daos não tiver sido reiniciada.
- Se o servidor não tiver sido reiniciado.
- Se o datafile não tiver o status de offline antes do ocorrido.
Preparação: criação de um tablespace e simular o problema, no caso com o rm.
Processo de recuperação:
Os processos background (PMON, DBWR, SMON etc) tem acesso a todos os files abertos pela instância Oracle, portanto, quando se faz um lsof pelo PID de um dos processos background iremos obter o descritor do datafile que foi apagado.
Para lembrar, neste caso em que o datafile foi apagado, a única coisa que é excluído é o descritor o mesmo ainda permanece no disco, e o mesmo poderá ser sobre-escrito, por isso é importante que ação seja logo após ao “problema”. Isso também explica o porquê que a instância nem a maquina pode ser reiniciada (perde o endereço do descritor).
Este processo tb pode ser utilizado para recuperar redo logs e outros arquivos associados a instância.
Tablespace operacional :):):):)
Pelo menos para este tipo de situação, o Murphy irá chupar dedo!!!
Saudações Vascaínas…