Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11294244
  • 博文数量: 8065
  • 博客积分: 10002
  • 博客等级: 中将
  • 技术积分: 96708
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 17:06
文章分类

全部博文(8065)

文章存档

2008年(8065)

分类: 服务器与存储

2008-07-16 14:21:15

由于某些操作,会使你的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
阅读(372) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~