Estou usando o Oracle 10g XE. Percebi um erro de bloco corrompido no arquivo de dados 1 no log de alerta. Como descobri, o Oracle XE não oferece suporte ao Block Media Recovery (precisa ser Enterprise Edition).
Então eu fiz o seguinte:
shutdown immediate;
startup mount;
recover database;
alter database open;
Mas os blocos corrompidos ainda estão lá.
Meu comando de recuperação não deveria ter resolvido esse problema? Por que não?
Editar
Eu restaurei antes de recuperar e agora funciona. Portanto, as seguintes etapas estão funcionando:
shutdown immediate;
startup mount;
restore database;
recover database;
alter database open;
A recuperação apenas procura o SCN e, se o SCN for atual para o arquivo de dados, não recupera nada? Nem mesmo os corrompidos?
Como eu acho que a recuperação é apenas para aplicar logs de arquivo (ou logs online) para alcançar o SCN atual, mas não corrigir corrupções.
Como você descobriu por si mesmo,
RECOVER
é apenas o processo de aplicação de logs .Como a corrupção ocorre no nível físico, você deve restaurar os arquivos de dados afetados de um backup feito ANTES da ocorrência da corrupção.
RESTORE
reconstrói os atributos físicos do arquivo de dados, portanto, qualquer corrupção física (por exemplo, falha de disco) será corrigida.