Oracle清理和重建临时表空间

正常来说,在完成Select语句、create index等一些使用TEMP表空间的排序操作后,Oracle是会自动 释放掉临时段a的。但有些有侯我们则会遇到临时段没有被释放,TEMP表空间几乎满的状况,甚至是我们 重启了数据库仍没有解决问题。这个问题在论坛中也常被网友问到,下面我总结一下,给出几种处理方法 。

法一、重启库

库重启时,Smon进程会完成临时段释放,TEMP表空间的清理操作,不过很多的时侯我们的库是不允许 down的,所以这种方法缺少了一点的应用机会,不过这种方法还是很好用的。

法二、Metalink给出的一个方法

修改一下TEMP表空间的storage参数,让Smon进程观注一下临时段,从而达到清理和TEMP表空间的目的 。

SQL>alter tablespace temp increase 1;

SQL>alter tablespace temp increase 0;

法三、我常用的一个方法,具体内容如下:

1、 使用如下语句a查看一下认谁在用临时段

  SELECT username,

  sid,

  serial#,

  sql_address,

  machine,

  program,

  tablespace,

  segtype,

  contents

  FROM v$session se,

  v$sort_usage su

  WHERE se.saddr=su.session_addr

时间: 2024-11-05 04:51:48

Oracle清理和重建临时表空间的相关文章

Oracle 10g的临时表空间组操作

Oracle 10g 引进了临时表空间组(temporary tablespace group)的概念,它允许用户在不同的会话中 同时利用多个临时表空间. 1. 临时表空间组的主要特征 一个临时表空间组必须由至少一个临时表空间组成,并且无明确的最大数量限制. 如果删除了一个临时表空间组的所有成员,该组也自动被删除. 临时表空间的名字不能与临时表空间组的名字相同. 在给用户分配一个临时表空间时,可以使用临时表空间组的名字代替实际的临时表空间名;在给数据库 分配默认临时表空间时也可以使用临时表空间组

Oracle Temp临时表空间及其故障处理

 Oracle Temp临时表空间及其故障处理  Oracle 11g中Temp临时表空间.文件的新特性  临时表空间是Oracle体系结构中比较特殊的结构.通常情境下,数据库使用者只需要设置对应的临时表空间(到用户),临时段分配等工作都是系统自动完成.当临时数据不需要时,Oracle后台进程SMON也会负责将临时段回收. 在Oracle的备份恢复体系中,临时文件的地位比较低.在进行备份动作时,RMAN都不会进行临时文件恢复.在恢复启动过程中,如果发现临时文件不存在,通常Oracle也会自动将临

临时表空间损坏的修复

最近测试环境需要把一些现有的存储空间匀出一部分来给新增的环境使用. unix组的人很快就空间按照指定的比例重新切分好了.环境交给我的时候,我先把数据库起来,没有任何问题,因为需要到处一个创建用户的语句,就简单执行了一个查询. select dbms_metadata.get_ddl('USER',u.username) from dba_users u WHERE USERNAME in('TEST'); 但是让我意外的,报了如下的错误. SQL> select dbms_metadata.ge

oracle数据库清理临时表空间

本文章是一个简单的关于oracle数据库教程清理临时表空间 哦,如果你正在找oracle数据库清理临时表空间就进来看看吧. 法一.重启库 库重启时,Smon进程会完成临时段释放,TEMP表空间的清理操作,不过很多的时侯我们的库是不允许down的,所以这种方法缺少了一点的应用机会,不过这种方法还是很好用的. 法二.Metalink给出的一个方法 修改一下TEMP表空间的storage参数,让Smon进程观注一下临时段,从而达到清理和TEMP表空间的目的. SQL>alter tablespace

Oracle临时表空间

当 Oracle 在执行一些 SQL 时,会需要一些临时空间来存储执行时产生的中间数据.这些临时空 间由 Orac le 从指定的临时表空间中分配给进程.主要有三种情况会占用临时空间:临时表/索引操作.排序和 临时 LO B 对象操作. A.临时表/索引: 在会话中,当第一次对临时表进行 INSERT(包括 CTAS)时 ,Orac le 会从临时表空间中为临时 表 及其索引分配临时空间一存储数据. B.排序: 任何会使用到排序的操作,包括 JOIN.创建(重建)INDEX.ORDER  BY.

如何重做Oracle临时表空间

应用场景:临时表空间满了,无法释放 解决方法总结如下: --1 创建中转临时表空间 create temporary tablespace temp02 tempfile '/oradata/CRPT_TEMP_TRA.dbf' size 20G reuse autoextend on next 1M ; --2 修改用户临时表空间为中转临时表空间 alter user crmreport temporary tablespace temp02 --3 删除用户原始的临时表空间 TBS_CRPT

ORACLE 临时表空间使用率过高的原因及临时解决方案

数据库temp临时表空间增大,一般在数据安装时设置临时表空间大小,默认的情况下都是设置为自动增长.这样会引起一个问题:在数据库使用中temp表空间会自动扩展的越来越大,造成磁盘空间使用不足. 引起临时表空间增大主要使用在以下几种情况: 1.order by or group by (disc sort占主要部分): 2.索引的创建和重创建: 3.distinct操作: 4.union & intersect & minus sort-merge joins: 5.Analyze 操作: 6

oracle临时表空间大量占用问题的处理

一个电信运营商客户的核心交易系统,临时表空间大量被占用,临时表空间被撑到了600GB.这样的问题复杂吗?取决于很多因素,不过今天所要讲的案例,并不复杂,如果我们对临时表空间在何种情况下使用有足够了解. 首先,我们要去检查是什么会话占用了临时表空间,具体占用了多少,临时段的具体类型是什么.正如我们要想知道这个月的花费过大,去分析原因时就要去看是哪些开销过大.开销了多少金额.开销的用途等. 这个步骤比较简单,查询v$sort_usage就可以了: view plaincopy to clipboar

ORACLE临时表空间总结

临时表空间概念   临 时表空间用来管理数据库排序操作以及用于存储临时表.中间排序结果等临时对象,当ORACLE里需要用到SORT的时候,并且当PGA中 sort_area_size大小不够时,将会把数据放入临时表空间里进行排序.像数据库中一些操作: CREATE INDEX. ANALYZE.SELECT DISTINCT.ORDER BY.GROUP BY. UNION ALL. INTERSECT.MINUS.SORT-MERGE JOINS.HASH JOIN等都可能会用到临时表空间.当