如何处理Oracle中TEMP表空间满的问题?-程序员宅基地

技术标签: oracle  故障处理及恢复  session  browser  tools  events  object  

正常来说,在完成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     

 

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日常职责之一,我们可以通过ToadObject 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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hrb_qiuyb/article/details/15628

智能推荐

python-简单用户交互小程序-程序员宅基地

文章浏览阅读872次。1、第一种方式:root@kali:~/python# vim userinput.py#!/usr/bin/python#--*-- coding:utf-8 --*--Name = raw_input('please your name:\n')Age = raw_input('please your age:\n')Sex = raw_input('please

在Redhat9 Linux下安装汉化eclipse3.1.2的c/c++开发平台-程序员宅基地

文章浏览阅读6.1k次。在Redhat9 Linux下安装汉化eclipse3.1.2的c/c++开发平台By: 吴垠Date: 2006-06-09Email: [email protected]版权信息:该文章版权由Wu Yin所有。可在非商业目的下任意传播和复制。对于商业 目的下对本文的任何行为需经作者同意。联系方式:lazy_fox#msn.com1. 本文需要的资源都可

atl dll中调用wtl_dll中使用wtl开发窗口-程序员宅基地

文章浏览阅读1.6k次。环境 xp sp3,vs20031.新建 ATL-ATL项目,项目名test0507,不要选中属性化,不要选中支持 mfc,2.stdafx.h添加#include #include #include #include #include #include #include #include 3.在原有的Ctest0507Module类基础上添加Add_dll中使用wtl开发窗口

【404 笔记】总结-程序员宅基地

文章浏览阅读174次。mvc mvp mvvmhttps://juejin.cn/post/6914971761163370509https://juejin.cn/post/6846687603547176974Handler谈谈消息机制Handler作用 ?有哪些要素 ?流程是怎样的 ?负责跨线程通信,这是因为在主线程不能做耗时操作,而子线程不能更新UI,所以当子线程中进行耗时操作后需要更新UI时,通过Handler将有关UI的操作切换到主线程中执行。https://www.jianshu.com/p/70d57

ZF网络架构深度详解-程序员宅基地

文章浏览阅读1w次,点赞50次,收藏121次。前言:ZF网络是2013年提出的,网上有很多关于它的介绍和讲解,但是很多内容讲的不太好(个人感觉),于是花时间收集了一些资料,整理了一些比较好的文章,从头到尾把ZFNet说了一遍。一、ZFNet简介1.1 为什么起名ZFnetwork ILSVRC 2013获胜者是来自Matthew Zeiler和Rob Fergus的卷积网络。它被称为ZFNet(Zeiler&..._zf网络

第二十章 注解-程序员宅基地

文章浏览阅读2.1w次,点赞29次,收藏44次。文章目录0.概述1.基本语法定义注解元注解2.编写注解处理器注解元素3.使用apt处理注解4.将观察者模式用于apt5.基于注解的单元测试让测试类继承自泛型类的一个特定版本0.概述注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便地使用这些数据注解使我们能够以将由编译器来测试和验证的格式,存储有关程序的额外信息注解的优点:更加干净易读的代码以及编译器类型检查等@Override,表示当前的方法定义将覆盖超类中的方法。如果你不小心拼写错误,或者方

随便推点

visio将数据显示到形状上_visio形状数据-程序员宅基地

文章浏览阅读2.3k次。遇到的问题:“此数据图形无法应用到选定范围中的一个或多个无效形状”目的:将数据显示到形状上步骤: 1、定义形状的属性,即定义形状包含哪些数据;2、定义将哪些属性显示到形状上。将形状拖到画布中,右键,选择“数据”->定义形状数据。此处自定义形状具有的属性,如:设备名称、设备IP、设备位置等形状数据定义完成后,选择“编辑数据图形”,定义将哪些属性显示到形..._visio形状数据

STM32F4X ADC_stm32注入触发转换_hwx1546的博客-程序员宅基地

文章浏览阅读110次。ADC全称是Analog-Digital-Converter,模拟数字转换,也叫模数转换。为什么嵌入式系统需要ADC,我们知道在自然界中广泛存在模拟量,比如声、光、电、磁等。但是对于嵌入式系统来说,如果想要识别自然界的模拟量,就必须将模拟量转换成MCU熟悉的数字量,而在模拟量和数字量之间进行转换的模块就叫模数转换器。_stm32注入触发转换

侧滑菜单DrawerLayout+Toolbar结合使用,切换菜单-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏6次。因为最近项目中用到侧滑菜单,于是就想到了谷歌提供的这个类网上看了看资料完成了侧滑菜单的功能,并写了一个demo记录下来,加深记忆和以后做类似功能时,直接看看笔记比住较方便主布局文件分为两个一个是侧滑菜单覆盖toolbar一个是不覆盖toolbar具体看效果图,无赖不会上传gif1.覆盖toolbar2、不覆盖toolbar2、menu主布局文件(

Boost Asio异步发送数据(async_write)崩溃问题记录_boost udp异步崩溃-程序员宅基地

文章浏览阅读3.3k次,点赞2次,收藏2次。背景服务端与客户端之间的网络通信(使用Boost Asio库异步编程模式实现),客户端会向服务端请求数据。在刚开始的测试中,是没有出现问题的。后来有一次测试时,服务端查询完数据后,向客户端发送时总是崩溃。通过gdb调试,可以发现是在调用到异步发送函数(boost::asio::async_write)后崩溃的。打印的栈信息如下:Program terminated with signa..._boost udp异步崩溃

CG动画制作项目第十一篇:后期剪辑以及音效、配音处理(一)-程序员宅基地

文章浏览阅读3.3k次。在做完所有的渲染过程之后,我们的工作相应的也进入到了后期阶段。后期需要处理的事情包括:视频剪辑、调色、特效处理、音效添加、配音、声音处理、BGM、二维镜头调整等等视频剪辑比较简单,目的是为了可以将一个完整流畅的动画展现在大家面前。可是我们如果单纯的拼接一组镜头,我们会感觉到这个动画显得非常的单调,然后我们就需要对我们的动画进行润色。其中之一是调色,调色对我们的动画的表现力有很大的提升,比如一个很悲...

帝国cms多表连接查询及结果集的调用-程序员宅基地

文章浏览阅读1.8k次。SQL语句:select //查询 a.*, //a表的所有列 b.truename as writer, //b表的truename 起个别名叫 writer ,实际对应a表中的字段w

推荐文章

热门文章

相关标签