Oracle

用於銷毀 Oracle 11g 中所有斷開連接的數據文件的全域命令

  • February 27, 2016

是否有刪除/清除.bdfOracle 11g R2 數據庫中所有斷開連接的文件的全域命令?

這是場景:

通過為每個使用者定義的使用者和表空間成功執行以下命令,從 Oracle 11g R2 數據庫中刪除了每個使用者定義的使用者和使用者定義的表空間:

DROP USER username CASCADE;
DROP TABLESPACE tablespacename INCLUDING CONTENTS AND DATAFILES; 

但是,包含.dbf與所有刪除的表空間對應的文件的文件夾仍然包含所有相同的.dbf文件,每個文件都具有相同的原始文件大小。因此,就好像數據只是從數據庫中分離出來而不破壞底層數據文件一樣。

.dbf出於對副作用的恐懼,我不願簡單地刪除所有相應的文件。那麼在 Oracle 11g R2 中是否有一個全域命令可以讓管理員安全地刪除所有曾經與 Oracle 11g R2 實例連接的未使用的數據文件?

我正在使用 SQL Developer 和 SQLPlus,因此這些工具中的任何一個命令或實用程序都可以工作。

根據您對此行為的描述和您的其他評論,我猜您的數據庫在 Windows 上執行。

您使用的命令應該足夠並刪除數據文件。除了在 Windows 上。在 Windows 上,數據文件並不總是被刪除,這是一個已知的限制。

在刪除表空間或數據文件之前,將它們離線:

alter tablespace ... offline;

要麼

alter database datafile ... offline drop;

並在上述之後刪除數據文件/表空間:

drop tablespace ... including contents and datafiles;

要麼

alter tablespace ... drop datafile ...;

如果它們仍然存在,只需在作業系統級別刪除它們即可。不,沒有這樣的命令可以從數據庫中刪除數據庫不知道的數據文件。

參考:

刪除包含內容和數據文件的表空間數據文件不會自動刪除(Doc ID 389467.1)

引用自:https://dba.stackexchange.com/questions/130629