1 某业务系统数据库告警如下:
Tue Dec 14 16:50:14 2021
ORA-1652: unable to extend temp segment by 128 in tablespace TEMP1
2 在17:00
查看临时表空间,几个节点进行查看,使用率为
0%
;但为什么会报临时表空间不足?距离告警时间只有10分钟。
节点
1
TABLESPACE_NAME Total(MB) Used(MB) Free(MB) Pct. Free(%)
------------------------------ ---------- ---------- ---------- ------------
TEMP1 215040 0 215040 100
TEMP 155647 3 155644 100
TEMP2 28672 0 28672 100
节点
2
:
TABLESPACE_NAME Total(MB) Used(MB) Free(MB) Pct. Free(%)
------------------------------ ---------- ---------- ---------- ------------
TEMP1 215040 0 215040 100
TEMP 155647 2 155645 100
TEMP2 28672 0 28672 100
3
根据
ASH
查看
16:40-16:50
执行的相关
SQL
,在节点
2
上发现如下
SQL
进行排序。
4
查看相关
SQL
的执行计划,发现进行排序耗费的临时表空间为
18E
,即为
18*1024*1024G
,这明显应该是写的
SQL
有问题,产生笛卡尔积的结果。
5
使用
PLSQL
进行对相关
SQL
进行格式化,发现此
SQL
没有
where
条件,故导致笛卡尔积。
select table_A.CONS_ID as "CONS_ID", table_A.CUST_ID as "CUST_ID",
...................
'' as "TYPE_CODE"
from table_A, table_B, table_C, table_D order by ORG_NO, table_A.CONS_NO
6 原因分析:在查询临时表空间是否够用?如果是RAC,则每个节点都需要进行查询,原因为RAC环境下,临时表空间为共用的,即在节点1查询临时表空间是够用的,在节点2有可能已经耗尽。如果事件已经发生,不能通过当前会话查询出耗尽临时表空间的SQL,那么可以通过生成每个节点的ASH,查看顶级事件中是否有sort关键字的SQL,并查看执行计划,来验证是否耗尽临时表空间。
临时表空间ORA-1652问题解决
来源:这里教程网
时间:2026-03-03 17:21:14
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 临时表空间ORA-1652问题解决
临时表空间ORA-1652问题解决
26-03-03 - 【CORE】在UNIX环境下从核心文件获取堆栈信息
【CORE】在UNIX环境下从核心文件获取堆栈信息
26-03-03 - 「Oracle」客户端 PL/SQL DEVELOPER 安装使用
「Oracle」客户端 PL/SQL DEVELOPER 安装使用
26-03-03 - Oracle的过载保护-数据库资源限制
Oracle的过载保护-数据库资源限制
26-03-03 - 「Oracle」数据库字符集编码修改
「Oracle」数据库字符集编码修改
26-03-03 - 连上无线网却不能上网?为你解答
连上无线网却不能上网?为你解答
26-03-03 - databas如何避免重复故障
databas如何避免重复故障
26-03-03 - database(Oracle MySQL)查询速度和数据量有关系吗?
database(Oracle MySQL)查询速度和数据量有关系吗?
26-03-03 - Oracle clone database
Oracle clone database
26-03-03 - 系统进程是什么?怎么通过系统进程进行病毒分析?
系统进程是什么?怎么通过系统进程进行病毒分析?
26-03-03
