临时表空间占用大量空间(新建)

因为创建索引,原TEMP表空间空间不够,临时增加4个数据文件。导致temp占用太多的磁盘空间。因此新建TEMP2表空间,删除原先TEMP表空间。

查看temp空间信息:

Select * from dba_temp_files;

新建表空间:

CREATE TEMPORARY TABLESPACE temp2 TEMPFILE  '/fkdata1/yxfk/temp201.dbf' size 1g autoextend on;

修改数据库默认表空间:

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp2;

修改用户默认表空间:

select  'alter user '||username||' TEMPORARY TABLESPACE TEMP2;'   from dba_users where TEMPORARY_TABLESPACE='TEMP' 

删除temp表空间

drop tablespace TEMP including contents and datafiles;

删除过程中,长时间未响应,等待事件enq:ts-connection,源头阻塞进程为smon。

select * from v$sort_usage where tablespace_name=’TEMP’;

使用sql查询还有哪些会话正在使用TEMP表空间

Kill相关会话。

操作系统看看磁盘

df -h

如果磁盘空间未减少,查看还在占用temp文件的进程。

lsof -n|grep temp

得到相关的pid

ps -ef|grep pid

查看进程,判断是否可kill.

Kill后将释放磁盘空间。

原文地址:https://www.cnblogs.com/muzisanshi/p/12970651.html