oracle数据库清理临时表空间

本文章是一个简单的关于oracle数据库教程清理临时表空间 哦,如果你正在找oracle数据库清理临时表空间就进来看看吧。

法一、重启库

  库重启时,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

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

  SQL>Alter system kill session 'sid,serial#';

  3、把TEMP表空间回缩一下

  SQL>Alter tablespace TEMP coalesce;

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

  1、 确定TEMP表空间的ts#

  SQL>select ts#, name from sys.ts$ ;

  TS# NAME

  -----------------------

  0 SYSYEM

  1 RBS

  2 USERS

  3* TEMP

  4 TOOLS

  5 INDX

  6 DRSYS

  2、 执行清理操作

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

  说明:

  temp表空间的TS# 为 3*, So TS#+ 1= 4

  其它:

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

  2、 观注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 * 100,

  2),

  '990.99') "使用比",

  F.TOTAL_BYTES "空闲空间(M)",

  F.MAX_BYTES "最大块(M)"

  FROM (SELECT TABLESPACE_NAME,

  ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,

  ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES

  FROM SYS.DBA_FREE_SPACE

  GROUP BY TABLESPACE_NAME) F,

  (SELECT DD.TABLESPACE_NAME,

  ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB

  FROM SYS.DBA_DATA_FILES DD

  GROUP BY DD.TABLESPACE_NAME) D

  WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME

  ORDER BY 4 DESC

时间: 2025-01-26 14:38:48

oracle数据库清理临时表空间的相关文章

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

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

Oracle起步---创建临时表空间/表空间/创建用户/授权

1. 安装: 百度一下你就知道 2. sqlplus登录/sqlplus命令登录 在安装Oracle时,你需要记住设置的"全局数据库名"(默认为orcl) 和 口令,在以两种方式登录时: 用户名: sys(超级用户==sysdba) / system(管理员用户 和sys想比区别在于system不能创建表空间)... 口 令:注意这里不仅仅要输入你设置的口令,在后面还要加上as sysdba   如:orcl as sysdba  3. 创建临时表空间/表空间/创建用户/授权 代码如下

Oracle数据库创建表空间及用户

摘要: /*createtablespacesystemv datafile'/opt/oracle/oradata/ibm/systemv01.dbf'size10m autoextendon;*/ /*droptablespacesystemv includingcontentsanddatafiles;*/ createuser"SYSTEMV" identifiedby"123456"defaulttablespace"SYSTEMV"

Oracle数据库中临时表的深入研究

oracle|临时表|数据|数据库 最近考虑到我们的数据库端写存储过程关于临时表使用的情况,由于我们现在还不清楚数据库端到底是怎么处理的,是否和Sql Server的处理方式相同,是否会存在隐患等等一些问题,为了避免将来不必要的麻烦我做了深入的研究和查看了一些权威的资料,现在和大家共享,希望大家在处理 Oracle临时表是注意一下: 首先是创建临时表的语法: CREATE GLOBAL TEMPORARY TABLE table "(" column datatype [DEFAULT

Linux下和Windows下创建Oracle数据库,表空间,Oracle用户

通过SSH工具或是XShell工具进入远程Linux下. 其中,通过SSH工具登录的界面如下: 其中Host Name是远程服务器的ip地址.User Name是服务器的一个用户名,端口号默认22,Connect进去后可以填写服务器的密码. 通过XShell工具登录的界面如下: 点击上面的New按钮,填写HOST主机地址,即服务器的IP地址,点击OK即可.   输入命令:    cd /    到根目录下 启动tomcat usr/local/tomcat/bin/startup.sh(这是to

sql oracle 数据库-一个表空间可以拥有两个用户吗

问题描述 一个表空间可以拥有两个用户吗 Create tablespace pro Datafile 'doradataworkts01.dbf Size 3m Autoextend on 请问上面datafile workts01.dbf文件里面包括表空间吗? 解决方案 当你创建用户的时候你就知道了,系统会让你制定表空间,若不制定就会设置为默认 1个数据库实例可以有多个表空间,一般用户是在表空间下的, 也就是说表空间是用户的上级,自然一个表空间就可以有多个用户了

Oracle临时表空间问题解决的例子

今天一哥们讲OA里面的某些模块失效了,一查系统日志,原来是Oracle数据库的临时表空间满了,中午吃饭的时候就把数据库重启一下(这种方式最简便也不容易出错),没想到临时表空间还是有问题,后面进行如下处理得到恢复: 1.查看临时表空间大小: select name,to_char(bytes/1024/1024)||'M' from v$tempfile; 结果显示临时表大小为0M,如下显示: NAME TO_CHAR(BYTES/1024/1024)||'M' /app/oracle/orada

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等都可能会用到临时表空间.当

Oracle 10g中用RMAN恢复临时表空间增强

我们知道在Oracle10gR2以前的版本中,如果使用RMAN恢复数据库,临时表空间的临时文件是不会自动恢复的. 这曾经引发了一系列的麻烦,很多DBA在恢复完成之后忘记添加临时文件,经常到应用出错时才能发现. 从Oracle10gR2开始,使用RMAN恢复数据库之后,Oracle会自动重新创建临时文件,由于临时文件是Sparse File,所以创建会非常迅速,通常你不会感觉得到. 以下是我曾经恢复的一段日志,其中记录了Oracle的恢复处理过程: Thu Sep 14 22:52:06 2006