--查看临时表空间使用状况
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