Eu tenho um arquivo de dados em um estado de recuperação:
SQL> select status from v$datafile where file#=201;
STATUS
---------------------
RECOVER
Não tenho certeza de como foi danificado, parece que algo deu errado logo após o tempo de criação.
SQL> select creation_change#,creation_time,checkpoint_change#,checkpoint_time,last_change#,last_time
from v$datafile where file#=201;
CREATION_CHANGE# CREATION_TIME CHECKPOINT_CHANGE# CHECKPOINT_TIME LAST_CHANGE# LAST_TIME
---------------- ------------------- ------------------ ------------------- ------------- -------------------
141311481693 29/08/2019 16:54:57 141311481694 29/08/2019 16:54:57 141311481738 29/08/2019 16:55:15
Eu verifiquei todas as tabelas em um tablespace ao qual este arquivo pertence e tudo parecia OK. Primeiro tentei
SELECT /*+ FULL(t) */ count(*) from table_name;
para todas as mesas, depois tentei ANALYZE TABLE table_name VALIDATE STRUCTURE;
. Sem erros.
Tenho certeza de que não há opção para descartar um arquivo de dados offline/recuperar. Ou existe?
Eu tenho um pensamento em mente: crie um novo tablespace, mova todos os objetos para lá e então recrie o TS com um arquivo de dados com falha nele. Em seguida, mova tudo de volta. Isso é bom para fazer? Ou eu estou esquecendo de alguma coisa?
Conselho por favor.
Movi todos os meus dados para o novo tablespace e, em seguida, recriei o antigo e movi tudo de volta. Tudo parece em ordem, sem perda de dados.