错误地删除了一些Oracle DBF文件 - 我怎么能告诉Oracle XE忘记它们?

时间:2010-02-02 11:53:10

标签: sql oracle dbf oracle-xe

所以我不小心删除了一些DBF文件(只有特定于我的表空间的文件),幸运的是我只是刚开始加载数据所以没有丢失任何东西,除非现在无法重新创建表空间。

如果我跑:

select name from v$datafile;

结果包括我删除的DBF文件。

我试图运行我在互联网上找到的命令,删除Oracle认为相关的DBF文件:

alter database datafile '<A_DBF_file_that_no_longer_exists>' offline drop;

结果是:

alter database datafile succeeded

但是,当我运行select语句时,仍然会返回已删除的数据文件。 当我尝试创建新的表空间时,我收到错误:

SQL Error: ORA-01543: tablespace 'my_tablespace_name' already exists
01543. 00000 -  "tablespace '%s' already exists"
*Cause:    Tried to create a tablespace which already exists
*Action:   Use a different name for the new tablespace

2 个答案:

答案 0 :(得分:4)

删除受影响的表空间。删除数据文件不会自动删除表空间。

DROP TABLESPACE mytablespace 
   INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;

答案 1 :(得分:2)

尝试

DROP TABLESPACE <tablespace name> INCLUDING CONTENTS;
对于更多信息,

How to drop a datafile from a tablespace可能会很有趣:

  

注意: ALTER DATABASE DATAFILE <datafile name> OFFLINE DROP命令并不意味着您可以删除数据文件。该命令的真正含义是您要删除数据文件,意图删除表空间。