清空Oracle临时表空间

本文介绍了一种解决Oracle临时表空间占用过大的方法。通过创建新的临时表空间并替换原有表空间,最终解决了因临时表空间过大导致的Oracle无法正常工作的问题。此外还提供了一种适用于较小临时表空间的清理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

清空Oracle临时表空间

Tags: Oracle
今天发现一Oracle的SQL语句执行超过了2分钟,因为本人从事的项目数据量都不大,还没遇到过2分钟以上不出结果的时候。因此十分疑惑。执行了一段时间之后,发觉Oracle无法连接出现异常。此时登录Oracle安装服务器,sqlplus无法连接。查看硬盘空间,发现硬盘已满。。。。

经过仔细查看,发现Oracle临时表空间-temp表空间,居然已经有4.2G。于是怀疑之前执行的SQL是否有问题。说实话,这也够夸张的,一个SQL高出4G左右的数据?接下来,重启了Oracle,发现已经不能通过Oracle的SMON进行清理了。于是手工 清空Oracle临时表空间。
  1. # /启动数据库  
  2. # startup  
  3. # //创建另一个临时表空间  
  4. # create temporary tablespace TEMP2 TEMPFILE '/opt/ora10/oradata/XE/temp02.dbf' SIZE 10M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED;  
  5. # //改变缺省临时表空间为刚刚创建的新临时表空间temp2  
  6. # alter database default temporary tablespace temp2;  
  7. # //删除原来临时表空间  
  8. # drop tablespace temp including contents and datafiles;  
  9. # //重新创建临时表空间temp  
  10. # create temporary tablespace TEMP TEMPFILE '/opt/ora10/oradata/XE/temp01.dbf' SIZE 512M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED;  
  11. # //重置缺省临时表空间为新建的temp表空间  
  12. # alter database default temporary tablespace temp;  
  13. # //删除中转用临时表空间  
  14. # drop tablespace temp2 including contents and datafiles;  
  15. # //重新指定用户表空间为重建的临时表空间  
  16. # alter user scott temporary tablespace temp;  
复制代码
另外当临时表空间数据量不是很大的时候可以使用eygle推荐的方法:
  1.    1. alter tablespace temp permanent;  
  2.    2. alter tablespace temp coalesce;  
  3.    3. alter tablespace temp temporary;  
复制代码
by:xiexiejiao.cn

来自:http://www.gisbox.cn/thread-696-1-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值