ora-01652 无法通过128 (在表空间 TEMP中)扩展temp段

--查看临时表空间使用状况

select * from (
Select a.tablespace_name,
to_char(a.bytes/1024/1024,'99,999.999') total_bytes,
to_char(b.bytes/1024/1024,'99,999.999') free_bytes,
to_char(a.bytes/1024/1024 - b.bytes/1024/1024,'99,999.999') use_bytes,
to_char((1 - b.bytes/a.bytes)*100,'99.99') || '%'use
from (select tablespace_name,
sum(bytes) bytes
from dba_data_files
group by tablespace_name) a,
(select tablespace_name,
sum(bytes) bytes
from dba_free_space
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
union all
select c.tablespace_name,
to_char(c.bytes/1024/1024,'99,999.999') total_bytes,
to_char( (c.bytes-d.bytes_used)/1024/1024,'99,999.999') free_bytes,
to_char(d.bytes_used/1024/1024,'99,999.999') use_bytes,
to_char(d.bytes_used*100/c.bytes,'99.99') || '%'use
from
(select tablespace_name,sum(bytes) bytes
from dba_temp_files group by tablespace_name) c,
(select tablespace_name,sum(bytes_cached) bytes_used
from v$temp_extent_pool group by tablespace_name) d
where c.tablespace_name = d.tablespace_name
)
order by tablespace_name

--查看表空间是否允许自动扩容,若不允许,且使用率过高,则需新增表空间文件

select d.file_name,d.tablespace_name,d.autoextensible from dba_data_files d
 

--查询临时表空间文件

select d.file_name,d.tablespace_name,d.autoextensible from dba_temp_files d;

--新增表空间临时文件

ALTER TABLESPACE TEMP
ADD TEMPFILE '/home/oracle/app/oradata/ora/temp11.dbf'
SIZE 4G
AUTOEXTEND ON
NEXT 128M;

删除数据文件

例如,我想删除临时表空间下的某个文件,那么我们有两种方式删除临时表空间的数据文件。

方法1:

SQL> alter tablespace temp droptempfile'/home/oradata/powerdes/temp03.dbf' ;                     

 

Tablespace altered.

 

SQL>

# 这个方法会删除物理文件

[oracle@pldb1 ~]$ ll /home/oradata/powerdes/temp03.dbf

ls: cannot access /home/oradata/powerdes/temp03.dbf: No such file or directory

[oracle@pldb1 ~]$

方法2:

SQL> alter database tempfile '/home/oradata/powerdes/temp04.dbf' drop including datafiles;    

 

Database altered.

 

SQL>

 

 

注意:删除临时表空间的临时数据文件时,不需要指定INCLUDING DATAFILES 选项也会真正删除物理文件,否则需要手工删除物理文件。

 

调整文件大小

如下例子,需要将临时数据文件从128M大小调整为256M

SQL> alter database tempfile '/home/oradata/powerdes/temp02.dbf' resize 256M;

 

Database altered.

 

SQL>

 

文件脱机联机

-- 脱机

alterdatabasetempfile'/home/oradata/powerdes/temp02.dbf'offline;

 

-- 联机

alterdatabasetempfile'/home/oradata/powerdes/temp02.dbf'online;

收缩临时表空间

排序等操作使用的临时段,使用完成后会被标记为空闲,表示可以重用,占用的空间不会立即释放,有时候临时表空间会变得非常大,此时可以通过收缩临时表空间来释放没有使用的空间。收缩临时表空间是ORACLE 11g新增的功能。

SQL> ALTERTABLESPACE TEMP SHRINKSPACEKEEP8G;

 

SQL> ALTERTABLESPACE TEMP SHRINKTEMPFILE'/home/oradata/powerdes/temp05.dbf'

其他关于临时表空间的操作参见

http://blog.csdn.net/mchdba/article/details/51685173

原文地址:https://www.cnblogs.com/leis/p/6678559.html