删除临时表空间或者默认临时表空间

1、如果临时表空间不是默认临时表空间以及默认临时表空间组成员,直接执行如下语句

 drop tablespace temp1
including contents
and  datafiles 
cascade constraint;

--  including contents 删除包含内容   and  datafiles 表示物理文件也删除  不再需要我们进入系统进行手工删除金数据文件。
--cascade constraint  表示连参照完整性约束一起删除。如果其他表空间中的约束引用了要被删除的表空间的主键 --和唯一约束,则必须指定这个选项,否则删除表空间,会报告错误

2、查看是否是默认临时表空间

SELECT t.property_name, t.property_value
  FROM database_properties t
 WHERE t.property_name = 'DEFAULT_TEMP_TABLESPACE';

3、查看是否是默认临时表空间组成员

 SELECT t.*
   FROM dba_tablespace_groups t, database_properties db
  WHERE t.group_name=db.property_value
  and db.property_name='DEFAULT_TEMP_TABLESPACE';

在这里插入图片描述
看到默认临时表空间组为TEMPGRP,组内成员为TEMP,TEMP2,TEMP3,TEMP4个临时表空间。
4、如果需要删除临时表空间是默认临时表空间
需要创建或者设置另外一个表空间为默认临时表空间。
创建默认临时表空间

--先创建临时表空间
create temporary tablespace temp02   tempfile' /data/dmis/tmpdata/temp101.dbf' size 1024M autoextend on;
--修改默认表空间为新创建的临时表空间
alter database default temporary tablespace temp02;

然后再删除原来的临时表空间

 drop tablespace temp1
including contents
and  datafiles 
cascade constraint;
 

5、删除临时表空间是默认临时表空间组
此时需要将该临时表空间从临时表空间组中移除

  alter tablespace temp1 tablespace group '';

然后再执行删除

执行删除后,发现删除语句长时间执行没有结果,估计是有其他进程在使用该临时表空间

通过如下语句进行判断

--获取 相应saddr
select USERNAME,SESSION_ADDR,SQL_ID,TABLESPACE,CONTENTS,BLOCKS from v$sort_usage;

--根据saddr 获取session   SID SERIAL# 
SELECT INST_ID,
           sid,
           serial#,
           USERNAME,
           STATUS,
           MACHINE,
           SQL_ID,
           EVENT,
           (SYSDATE - LOGON_TIME) * 86400 AS "s",
           LAST_CALL_ET
  FROM gv$session
 WHERE saddr = #SESSION_ADDR;
--杀掉使用临时表空间进程
 alter system kill session '#sid,#SERIAL' immediate;

再执行删除。
然后可以通过如下语句查看,该临时表空间以及表空间文件是否删除

select  t.file_name,t.tablespace_name from  dba_temp_files t;
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜菜的中年程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值