刪除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