回缩temp表空间

time:2008/03/25
author: skate

如果temp表空间很满的时候,我们要回缩表空间,根据表空间的类型,回缩的方法也不同

1.字典管理表空间:

temp(非本地管理表空间)   回收    
  可以将表空间的缺省存储参数pctincrease改为非0。一般将其设为1,如:    
  alter   tablespace   temp    
  default   storage(pctincrease   1);    
  这样smon便会将自由范围自动合并。也可以手工合并自由范围:    
  alter   tablespace   temp   coalesce;  

2. 本地管理表空间

可以通过重新创建temp的方法

1.创建过渡的temp1
2,更改缺省临时表空间的为temp1
3.删除临时表空间temp  //由于还有其他会话可能使用临时段,所以没有删除datafile
4.重新创建临时表空间temp
5.重置默认临时表空间temp
6. 删除哪个过渡的临时表空间temp2
7.更改用户的临时表空间


1. 
 
SQL> select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
TEMP
USERS
EXAMPLE
PERFSTAT

已选择7行。

 

SQL> select name,bytes from v$tempfile;
NAME
-----------------------------------------------------------------------------
     BYTES
----------
F:/ORACLE/PRODUCT/10.2.0/ORADATA/MOVO/TEMP01.DBF
  20971520

SQL> create temporary tablespace temp2
  2  tempfile 'F:/ORACLE/PRODUCT/10.2.0/ORADATA/MOVO/temp02.dbf' size 10m
  3  autoextend on  next 1m maxsize 20m;
create temporary tablespace temp2
*
第 1 行出现错误:
ORA-01031: 权限不足


SQL> conn /as sysdba
已连接。
SQL> create temporary tablespace temp2
  2  tempfile 'F:/ORACLE/PRODUCT/10.2.0/ORADATA/MOVO/temp02.dbf' size 10m
  3  autoextend on  next 1m maxsize 20m;

表空间已创建。

2.

SQL> alter database default temporary tablespace temp2;

数据库已更改。

3.

SQL> drop tablespace temp including contents  and datafiles;

表空间已删除。

4.

SQL> create temporary tablespace temp
  2  tempfile 'F:/ORACLE/PRODUCT/10.2.0/ORADATA/MOVO/temp01.dbf' size 10m
  3  autoextend on next 1m maxsize 20m;
create temporary tablespace temp
*
第 1 行出现错误:
ORA-01119: 创建数据库文件 'F:/ORACLE/PRODUCT/10.2.0/ORADATA/MOVO/temp01.dbf'
时出错
ORA-27038: 所创建的文件已存在
OSD-04010: 指定了 <create> 选项, 但文件已经存在

注意 :这个错误的原因是,临时段还在被某个会话用,没有删除临时表空间的数据库文件

5.

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

SQL> startup
ORACLE 例程已经启动。
Total System Global Area  574619648 bytes
Fixed Size                  1250212 bytes
Variable Size             171969628 bytes
Database Buffers          394264576 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
数据库已经打开。

这个是时候还是不能创建temp空间,因为那个临时表空间仍然存在,我可以手工删除临时数据文件


SQL> create temporary tablespace temp
  2  tempfile 'F:/ORACLE/PRODUCT/10.2.0/ORADATA/MOVO/temp01.dbf' size 10m
  3  autoextend on next 1m maxsize 20m;

表空间已创建。


6.

SQL> alter database default temporary tablespace temp;

数据库已更改。

7.

SQL> alter  user scott temporary tablespace temp;

用户已更改。

 

-----end----
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值