知识大全 ORACLE临时表空间的清理

Posted 空间

篇首语:当筵意气临九霄,星离雨散不终朝。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ORACLE临时表空间的清理相关的知识,希望对你有一定的参考价值。

ORACLE临时表空间的清理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  ORACLE临时表空间的清理

   查看使用率

  column TablespaceName format a heading Tablespace Name

  column TotalUsedBytes format heading File Sizes|(K)

  column TotalFreeBytes format heading Free Bytes|(K)

  column FreeRatio format heading Free|(%)

  column TotalExtensibleBytes format heading Extensible|Sizes (K)

  column TotalExtends format heading Ext

  pute sum label Total: of TotalFreeBytes TotalUsedBytes TotalExtensibleBytes on report

  break on report

  select b TablespaceName

  round(sum(b UsedByte) / ) TotalUsedBytes

  round(sum(a FreeByte) / ) TotalFreeBytes

  round(sum(b ExtensibleByte) / ) TotalExtensibleBytes

  round(sum(a FreeByte + b ExtensibleByte) * / sum(b UsedByte + b ExtensibleByte) ) FreeRatio

  sum(a Extend) TotalExtends

  from (select sum(bytes) FreeByte

  count(*) Extend

  file_id FileID

  tablespace_name TablespaceName

  from dba_free_space

  group by file_id

  tablespace_name

  union all

  select sum(bytes_free) FreeByte

  count(*) Extend

  file_id FileID

  tablespace_name TablespaceName

  from v$temp_space_header

  group by file_id

  tablespace_name) a

  (select decode(autoextensible YES decode(sign(maxbytes bytes) maxbytes bytes ) ) ExtensibleByte

  bytes UsedByte

  file_id FileID

  tablespace_name TablespaceName

  from dba_data_files

  union all

  select decode(autoextensible YES decode(sign(maxbytes bytes) maxbytes bytes ) ) ExtensibleByte

  bytes UsedByte

  file_id FileID

  tablespace_name TablespaceName

  from dba_temp_files) b

  where b FileID = a FileID(+) and

  b TablespaceName= a TablespaceName(+)

  group by b TablespaceName;

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

  法一 重启库

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

  法二 Metalink给出的一个方法

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

  SQL>alter tablespace temp increase ;

  SQL>alter tablespace temp increase ;

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

   使用如下语句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

   那些正在使用临时段的进程

  SQL>Alter system kill session sid serial# ;

   把TEMP表空间回缩一下

  SQL>Alter tablespace TEMP coalesce;

  法四 使用诊断事件的一种方法 也是被我认为是 杀手锏 的一种方法

   确定TEMP表空间的ts#

  SQL>select ts# name from sys ts$ ;

  TS# NAME

  

   SYSYEM

   RBS

   USERS

   * TEMP

   TOOLS

   INDX

   DRSYS

   执行清理操作

  SQL>alter session set events immediate trace name DROP_SEGMENTS level ;

  说明

  temp表空间的TS# 为 * So TS#+ =

  其它

   出现如上问题的原因我认为可能是由于大的排序超出了TEMP表空间的空间允许范围引起的 也可能包含着其它的异常的因素

   观注TEMP等这些空间的状态是Dba日常职责之一 我们可以通过Toad Object Browser等这些工具办到 也可以用如下的语句

  SELECT UPPER(F TABLESPACE_NAME) 表空间名

  D TOT_GROOTTE_MB 表空间大小(M)

  D TOT_GROOTTE_MB F TOTAL_BYTES 已使用空间(M)

  TO_CHAR(ROUND((D TOT_GROOTTE_MB F TOTAL_BYTES) / D TOT_GROOTTE_MB *

   )

   ) 使用比

  F TOTAL_BYTES 空闲空间(M)

  F MAX_BYTES 最大块(M)

  FROM (SELECT TABLESPACE_NAME

  ROUND(SUM(BYTES) / ( * ) ) TOTAL_BYTES

  ROUND(MAX(BYTES) / ( * ) ) MAX_BYTES

  FROM SYS DBA_FREE_SPACE

  GROUP BY TABLESPACE_NAME) F

  (SELECT DD TABLESPACE_NAME

  ROUND(SUM(DD BYTES) / ( * ) ) TOT_GROOTTE_MB

  FROM SYS DBA_DATA_FILES DD

  GROUP BY DD TABLESPACE_NAME) D

  WHERE D TABLESPACE_NAME = F TABLESPACE_NAME

cha138/Article/program/Oracle/201311/18994

相关参考

知识大全 Oracle临时表空间过大问题解决

Oracle临时表空间过大问题解决  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  查询数据库服务

知识大全 收缩临时表空间

Oracle性能优化:收缩临时表空间  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  当排序操作重

知识大全 Oracle中的临时表用法汇总

Oracle中的临时表用法汇总  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!语法  在Oracle

知识大全 Oracle临时表 优化查询速度

Oracle临时表优化查询速度  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前言    目前所

知识大全 ORACLE临时表的应用

ORACLE临时表的应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前言  目前所有使用Or

知识大全 Oracle临时表用法的经验心得

Oracle临时表用法的经验心得  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  文章主要介绍的是

知识大全 回收临时表空间ORA-03297解决

回收临时表空间ORA-03297解决  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!今天发现临时表空

知识大全 Oracle临时表的几种好用方案介绍

Oracle临时表的几种好用方案介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  以下的文章主

知识大全 Oracle数据库中的临时表用法

Oracle数据库中的临时表用法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这篇文章主要介绍

知识大全 OracleTemp临时表空间处理

OracleTemp临时表空间处理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Tempora