我有一个处于恢复状态的数据文件:
SQL> select status from v$datafile where file#=201;
STATUS
---------------------
RECOVER
我不确定它是如何损坏的,看起来在它创建之后就出现了问题。
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
我检查了该文件所属的表空间中的每个表,一切似乎都正常。首先我尝试
SELECT /*+ FULL(t) */ count(*) from table_name;
了每张桌子,然后我尝试了ANALYZE TABLE table_name VALIDATE STRUCTURE;
. 没有错误。
我很确定没有选项可以删除脱机/恢复数据文件。或者有吗?
我有一个想法:创建一个新表空间,将所有对象移到那里,然后重新创建包含失败数据文件的 TS。然后把所有东西都搬回来。这是可以做的吗?还是我错过了什么?
请指教。
我将所有数据移至新表空间,然后重新创建旧表空间并将所有数据移回。一切看起来井井有条,没有数据丢失。