应用系统不能运行,告警日志报告临时表空间不能扩展,估计是业务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. 现在查看系统空间,空间已经被回收。
oracle 临时段详解,oracle临时段的处理
最新推荐文章于 2024-08-15 22:58:24 发布