所以我不小心删除了一些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
答案 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
命令并不意味着您可以删除数据文件。该命令的真正含义是您要删除数据文件,意图删除表空间。