我们采取以下步骤来删除表空间。
1. 确保非违约
我们要删除的表空间不能是数据库的默认永久表空间或数据库的默认临时表空间。
SQL> select count(*) cnt from database_properties where property_value = 'ERPTBS';
CNT
----------
0或者,确保该表空间不是用户的默认表空间,以防止出现意外错误。
SQL> select count(*) cnt from dba_users where default_tablespace = 'ERPTBS' or temporary_tablespace = 'ERPTBS' or local_temp_tablespace = 'ERPTBS';
CNT
----------
02. 使表空间脱机
在删除表空间之前,我们应该确保表空间是OFFLINE。
SQL> select status from dba_tablespaces where tablespace_name = 'ERPTBS';
STATUS
---------
ONLINE如果它在线,我们应该让它离线。
SQL> alter tablespace erptbs offline;
Tablespace altered.
SQL> select status from dba_tablespaces where tablespace_name = 'ERPTBS';
STATUS
---------
OFFLINE在繁忙时间使其离线可能需要一些时间。
3. 删除表空间
删除表空间有 4 个比例。
简单的
如果表空间不包含任何对象,我们可以在不指定任何内容的情况下进行简单的删除。
SQL> drop tablespace erptbs;
Tablespace dropped.该操作保留其数据文件而不删除它们。
内容
如果表空间包含一个或多个对象,我们可以通过在语句中添加修饰符INCLUDING CONTENTS从表空间的数据文件中删除内容。
SQL> drop tablespace erptbs including contents;
Tablespace dropped.该操作清除其中的所有段并将数据文件留在文件系统中。如果要重用数据文件来创建表空间,则需要使用REUSE关键字。
数据文件
如果您想物理删除表空间,您可以同时删除数据文件。
SQL> drop tablespace erptbs including contents and datafiles;
Tablespace dropped.删除表空间以及数据文件。
约束
如果有任何外部约束,主要是参照完整性依赖于该表空间中的对象,您也可以删除它们。
SQL> drop tablespace erptbs including contents and datafiles cascade constraints;
Tablespace dropped.原文标题:Drop Tablespace Examples
原文作者:Ed Chen
原文链接:https://logic.edchen.org/drop-tablespace-examples/
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




