如果不再需要一個表空間及其內(nèi)容(該表空間所包含的段,或所有的數(shù)據(jù)文件),就可以將該表空間中從數(shù)據(jù)庫中刪除。ORACLE數(shù)據(jù)庫中的任何
表空間,除系統(tǒng)必須的表空間(SYSTEM,SYSAUX,TEMP)外,都可以被刪除。
一旦一個表空間已經(jīng)被刪除,該表空間的數(shù)據(jù)就不能恢復(fù)了。因而,一定要確保一個將被刪除的表空間所包含的所有數(shù)據(jù)將來都不再需要了。
另外,在從數(shù)據(jù)庫刪除表空間的前后,都需要對數(shù)據(jù)庫做一次完全備份。這樣即使錯誤的刪除了一個表空間,如果數(shù)據(jù)庫在刪除表空間后遇到
問題,還能夠恢復(fù)該數(shù)據(jù)庫。
不能刪除包含任何活動端的表空間。為了簡單,應(yīng)該是表空間在被刪除之間脫機。
要刪除一個表空間,使用DROP TABLESPACE tablespace_name語句。用戶必須擁有DROP
TABLESPACE系統(tǒng)權(quán)限才能刪除一個表空間。
要刪除一個非空的表空間,就要使用INCLUDING CONTENTS選項,否則會有錯誤提示。
以上的語句只會從數(shù)據(jù)字典、控制文件刪除表空間信息,而與其相關(guān)的數(shù)據(jù)文件仍然存在于磁盤上。但是,當(dāng)表空間一旦被刪除,無論它所包
括的數(shù)據(jù)文件是否被刪除,這些數(shù)據(jù)文件愛你都會時區(qū)作用。
從ORACLE 9I開始,在刪除表空間的同時還可以聯(lián)機的刪除與其相關(guān)的數(shù)據(jù)文件。當(dāng)然,如果在ORACLE刪除表空間的同時,沒有只是它刪除數(shù)據(jù)
文件,就必須在以后使用合適的操作系統(tǒng)命令來刪除他們。
要刪除一個表空間的同時刪除與他相關(guān)的數(shù)據(jù)文件,就必須使用INCLUDING CONTENTS AND DATAFILES子句。
ALTER TABLESPACE mytbs06 OFFLINE;
DROP TABLESPACE mytbs06 INCLUDING CONTENTS AND DATAFILES;