临时表空间占用大量空间(新建)
因为创建索引,原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后将释放磁盘空间。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步