处理方法: 建立新的TEMP表空间--->将default_temp_tablespace变更为新建立的TEMP表空间--->删除旧的TEMP表空间,清理空间出来。
1、检查TEMP表空间状态
select tablespace_name,file_name ,file_id,bytes/1024/1024 as "size(M)" from dba_temp_files;
2、新建立TEMP表空间
create temporary tablespace TEMP1 tempfile '/usr/ora10g/data/temp01.dbf' size 100M AUTOEXTEND ON NEXT 1m MAXSIZE UNLIMITED;
3、修改数据默认临时表空间为新建立的TEMP空间,检查用户的默认TEMP表空间
alter database default temporary tablespace temp1;
Select username,default_temporary;
4、删除旧的TEMP表空间及数据文件
drop tablespace temp including contents and datafiles;
5、检查操作系统旧的TEMP文件删除情况,空间是否被释放,如果未被释放需要使用 lsof 命令找到deleted的进程,KILL这些进程后空间自动释放
lsof |grep deleted
oracle 9866 oracle 11u REG 8,7 25005400064 6619320 /usr/oracle
/oradata/oa/temp01.dbf (deleted)
oracle 16459 oracle 11u REG 8,7 25005400064 6619320 /usr/oracle
/oradata/oa/temp01.dbf (deleted)
[root@localhost oa]# kill -9 9866
[root@localhost oa]# kill -9 16459
6、旧的TEMP数据文件开始在操作系统中清除
[root@localhost oa]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda5 29G 6.3G 22G 23% /
/dev/sda3 494M 20M 449M 5% /boot
none 1007M 0 1007M 0% /dev/shm
/dev/sda7 97G 84G 7.7G 92% /usr
[root@localhost oa]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda5 29G 6.3G 22G 23% /
/dev/sda3 494M 20M 449M 5% /boot
none 1007M 0 1007M 0% /dev/shm
/dev/sda7 97G 80G 12G 88% /usr
[root@localhost oa]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda5 29G 6.3G 22G 23% /
/dev/sda3 494M 20M 449M 5% /boot
none 1007M 0 1007M 0% /dev/shm
/dev/sda7 97G 77G 16G 84% /usr
[root@localhost oa]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda5 29G 6.3G 22G 23% /
/dev/sda3 494M 20M 449M 5% /boot
none 1007M 0 1007M 0% /dev/shm
/dev/sda7 97G 68G 24G 74% /usr