由于某些操作,会使你的temporay tablespace占用了很大的表空间,如何释放磁盘空间?
下文介绍了一种最简单的方式……
1。 第一种方式,直接resize tempfile , 虽然简单,但是很容易无效
sys@mescp> select tablespace_name,file_name ,
2 file_id,bytes/1024/1024 as "size(M)"
3 from dba_temp_files
4 /
TABLESPACE_NAME FILE_NAME FILE_ID size(M)
-------------------- ---------------------------------- ---------- ----------
TEMP /orabin/oradata/mescp/temp01.dbf 1 1024
TEMP /orabin/oradata/mescp/tmp1_01.dbf 2 4096
2 rows selected.
sys@mescp> alter database tempfile 1 resize 16M;
alter database tempfile 1 resize 16M
*
ERROR at line 1:
ORA-03297: file contains used data beyond requested RESIZE value
-- 失败了
2。第二种,建立另一个临时表空间,并把它设为default temporary tablespace,再删除原来的temporary tablespace以及tempfile
3。 我提供的方式
sys@mescp> alter database tempfile 1 drop ;
Database altered.
sys@mescp> alter tablespace temp add tempfile
2 '/orabin/oradata/mescp/temp01.dbf'
3 size 16M reuse autoextend on next 16M maxsize 4096M;
Tablespace altered.
sys@mescp> alter database tempfile 2 drop ;
Database altered.
sys@mescp> alter tablespace temp add tempfile
2 '/orabin/oradata/mescp/tmp1_01.dbf'
3
sys@mescp> 3 size 16M reuse autoextend on next 16M maxsize 4096M;
sys@mescp> /
Tablespace altered.
sys@mescp> select tablespace_name,file_name ,
2 file_id,bytes/1024/1024 as "size(M)"
3 from dba_temp_files
4 /
TABLESPACE_NAME FILE_NAME FILE_ID size(M)
-------------------- ---------------------------------- ---------- ----------
TEMP /orabin/oradata/mescp/temp01.dbf 1 16
TEMP /orabin/oradata/mescp/tmp1_01.dbf 2 16
2 rows selected.
--无需重新建立temporary tablespace,无需修改database的default temporary tablespace
阅读(405) | 评论(0) | 转发(0) |