oracle临时段的处理

应用系统不能运行,告警日志报告临时表空间不能扩展,估计是业务sql存在大量排序,只能增加临时表空间缓解这个问题。
另外还可能要清理临时段重整临时表空间释放空间:


查看一下认谁在用临时段:


SQL> SELECT /*+ rule */ se.username,se.sid,se.serial#,se.sql_address,se.machine,se.program,
su.tablespace,su.segtype, su.contents
FROM v$session se,v$sort_usage su
WHERE se.saddr=su.session_addr;


USERNAME        SID    SERIAL# SQL_ADDR MACHINE          PROGRAM          TABLESPACE       SEGTYPE   CONTENTS
-------- ---------- ---------- -------- ---------------- ---------------- ---------------- ---------
SYS             154         12 257A8240 WORKGROUP/LENOVO sqlplusw.exe     TEMP             SORT      TEMPORARY
                                        -94B4B86F


杀掉这个会话:

SQL> Alter system kill session '154,12';


回缩 TEMP表空间


    确定TEMP表空间的ts#

SQL> select ts#, name FROM v$tablespace;

       TS# NAME
---------- --------------------------------------------------
         0 SYSTEM
         1 UNDOTBS1
         2 SYSAUX
         4 USERS
         6 EXAMPLE
         7 DNA
         8 INDEXA
         9 STREAMS_TBS
        10 TEST
         3 TEMP
        11 PREF

11 rows selected.


    执行清理操作

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


Session altered.


level 4 是ts#+1


回收临时表空间过度扩展占用的系统空间


SQL> select max(segblk#) from v$sort_usage;

MAX(SEGBLK#)
------------

          91017


SQL> select 91017*8192/1024/1024 from dual;

91017*8192/1024/1024
--------------------
          711.070313


SQL> select file#,ts#,name from v$tempfile;

     FILE#        TS# NAME
---------- ---------- --------------------------------------------------
         1          3 D:/ORACLE/10.2/DB_1/ORADATA/ORCL/TEMP01.DBF


SQL> alter database tempfile 'D:/ORACLE/10.2/DB_1/ORADATA/ORCL/TEMP01.DBF' resize 700m;


Database altered.


现在查看系统空间,空间已经被回收。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值