查看: 423|回复: 6

如何找出引发ORA-1652错误的SQL语句?

[复制链接]
论坛徽章:
311
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
发表于 2019-8-12 11:04 | 显示全部楼层 |阅读模式
ORACLE 11204 单节点


Mon Aug 12 00:22:09 2019
ORA-1652: unable to extend temp segment by 128 in tablespace                 TEMP
Sun Aug 11 23:18:42 2019


请问:如何找出引发此错误的SQL语句?


论坛徽章:
3
发表于 2019-8-12 16:06 | 显示全部楼层
根据dba_hist_active_sess_history中的temp_space_allocated和sample_time大概能定位到谁占temp多吧,
触发报错的大概率是罪魁祸首,但也可能是受害者。

使用道具 举报

回复
论坛徽章:
311
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
 楼主| 发表于 2019-8-12 17:35 | 显示全部楼层
andy_lau 发表于 2019-8-12 16:06
根据dba_hist_active_sess_history中的temp_space_allocated和sample_time大概能定位到谁占temp多吧,触发 ...

搜索15 - 25 分钟内的进程,总共21个进程,发现只有3个进程消耗TEMP空间,获取这些进程的SQL_ID后,找出对应的SQL,分析后发现,不像是罪魁祸首,

使用道具 举报

回复
认证徽章
论坛徽章:
8
2009新春纪念徽章
日期:2009-01-04 14:52:28祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:07:24ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:51:522015年新春福章
日期:2015-03-06 11:57:31
发表于 2019-8-12 17:52 | 显示全部楼层
1、时间久了,没办法一定获取到当时的SQL语句;
2、可以写个脚本,定期检测temp空间使用情况,一旦达到某个阀值(例如:90%),即刻获取当时占用temp top 10的SQL语句。

使用道具 举报

回复
论坛徽章:
188
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
发表于 2019-8-12 20:46 | 显示全部楼层
--//一般这样:
ALTER system SET EVENTS '&&1 TRACE NAME ERRORSTACK LEVEL &&2';
...
ALTER system SET EVENTS '&&1 TRACE NAME ERRORSTACK OFF';

使用道具 举报

回复
论坛徽章:
188
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
发表于 2019-8-12 20:50 | 显示全部楼层
--//触发器
connect / as sysdba
drop table temp_usage_t;
create table temp_usage_t ( msg varchar2(4000) );

create or replace trigger failed_to_extend_temp
after servererror on database
declare
l_sql_text ora_name_list_t;
l_n        number;
begin
if ( is_servererror(1652) )
then
insert into temp_usage_t values ( 'ora_sysevent = ' || ora_sysevent );
insert into temp_usage_t values ( 'ora_login_user = ' || ora_login_user );
insert into temp_usage_t values ( 'ora_server_error = ' || ora_server_error(1) );

l_n := ora_sql_txt( l_sql_text );
for i in 1 .. l_n
loop
insert into temp_usage_t values ( 'l_sql_text(' || i || ') = ' || l_sql_text(i)) ;
end loop;
end if;
end;
/

使用道具 举报

回复
认证徽章
论坛徽章:
4
目光如炬
日期:2016-12-05 01:21:53秀才
日期:2016-12-21 16:55:07秀才
日期:2018-07-23 14:00:48ITPUB18周年纪念章
日期:2019-03-12 14:03:46
发表于 2019-8-14 10:52 | 显示全部楼层
lfree 发表于 2019-8-12 20:50
--//触发器connect / as sysdbadrop table temp_usage_t;create table temp_usage_t ( msg varchar2(4000)  ...

这个也可能是受害者触发吧。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


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

大会官网>>
TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表