如果不再需要一个表空间及其内容(该表空间所包含的段,或所有的数据文件),就可以将该表空间中从数据库中删除。ORACLE数据库中的任何
表空间,除系统必须的表空间(SYSTEM,SYSAUX,TEMP)外,都可以被删除。
一旦一个表空间已经被删除,该表空间的数据就不能恢复了。因而,一定要确保一个将被删除的表空间所包含的所有数据将来都不再需要了。
另外,在从数据库删除表空间的前后,都需要对数据库做一次完全备份。这样即使错误的删除了一个表空间,如果数据库在删除表空间后遇到
问题,还能够恢复该数据库。
不能删除包含任何活动端的表空间。为了简单,应该是表空间在被删除之间脱机。
要删除一个表空间,使用DROP TABLESPACE tablespace_name语句。用户必须拥有DROP
TABLESPACE系统权限才能删除一个表空间。
要删除一个非空的表空间,就要使用INCLUDING CONTENTS选项,否则会有错误提示。
以上的语句只会从数据字典、控制文件删除表空间信息,而与其相关的数据文件仍然存在于磁盘上。但是,当表空间一旦被删除,无论它所包
括的数据文件是否被删除,这些数据文件爱你都会时区作用。
从ORACLE 9I开始,在删除表空间的同时还可以联机的删除与其相关的数据文件。当然,如果在ORACLE删除表空间的同时,没有只是它删除数据
文件,就必须在以后使用合适的操作系统命令来删除他们。
要删除一个表空间的同时删除与他相关的数据文件,就必须使用INCLUDING CONTENTS AND DATAFILES子句。
ALTER TABLESPACE mytbs06 OFFLINE;
DROP TABLESPACE mytbs06 INCLUDING CONTENTS AND DATAFILES;