删除Oracle数据库表空间时,数据库文件删不掉怎么办?


使用以下语句删除Oracle数据库表空间时,有时会成功,数据库文件也会一起删除。

drop tablespace PARTS_INDEX including contents and datafiles;

但有时,显示Tablespace dropped,但数据库文件依然存在,重新创建数据库表空间时会出错。

create tablespace PARTS_INDEX
nologging
datafile 'D:\ORACLE\ORADATA\PARTS\PARTS_INDEX.DBF' size 200M autoextend on next 10M maxsize unlimited extent management local

ORA-01119: 创建数据库文件 'D:\ORACLE\ORADATA\PARTS\PARTS_INDEX.DBF' 时出错
ORA-27038: skgfrcre: 文件存在
OSD-04010: 指定了 <create> 选项, 但文件已经存在

此时,手动删除该文件,能够删除。

具体原因待查。

解决办法:

在创建表空间语句中使用reuse关键词,例如:

-- 创建索引表空间
drop tablespace PARTS_INDEX including contents and datafiles;
create tablespace PARTS_INDEX
    nologging
    datafile 'D:\ORACLE\ORADATA\PARTS\PARTS_INDEX.DBF' size 200M reuse autoextend on next 10M maxsize unlimited extent management local;

reuse参数解释:

(1)如果file 已经存在,并且在创建时指定了file size,那么就重用原文件,并应用新的size,如果没有指定file size,则保留原有的大小。

(2)如果file 不存在,oracle 将忽略该参数。

测试环境:WinXP+Oracle9i。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM