2016-1-8 ORA-1652: unable to extend temp segment by 128 in tablespace解决方案

    一次ORA-1652的诊断过程,系统不能使用,重启后可以使用。

weblogic日志:

####<2016-1-8 上午09时40分27秒 CST> <Error> <WebLogicServer> <zc-sc-app01> <fwms_app01_8003> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1452217227682> <BEA-000337> <[STUCK] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "603" seconds working on the request "Http Request Information: weblogic.servlet.internal.ServletRequestImpl@5d4d331d[GET /web/defect/extend-attr/5b469596984e4c53ae0f4cdafd3fd39b]

", which is more than the configured time (StuckThreadMaxTime) of "600" seconds in "server-failure-trigger". Stack trace:
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:152)
java.net.SocketInputStream.read(SocketInputStream.java:122)
oracle.net.ns.Packet.receive(Packet.java:300)

oracle.net.ns.DataPacket.receive(DataPacket.java:106)

####<2016-1-8 上午09时56分53秒 CST> <Error> <WebLogicServer> <zc-tzjh-app1> <IPMS_APP01_8101> <[STANDBY] ExecuteThread: '114' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1452218213276> <BEA-000337> <[STUCK] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "607" seconds working on the request "weblogic.servlet.internal.ServletRequestImpl@56d8af13[
GET /web/menu_icon/zongheguanli.png?tSession=1452217537514 HTTP/1.1
X-Forwarded-For: 10.119.124.109
Accept: */*
Referer: http://10.121.180.109/web/app/MyApp.jsp
Accept-Language: zh-CN
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; GWX:DOWNLOADED)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Cookie: DWRSESSIONID=UmKxc9wQCOJBrOHXa$Zx1oNVu9l; JSESSIONIDMINI=BtcLWPJprp2xpBhqbsgv7NzKmJ8yLZhvxFLpThyGcz50JzGyh4vH!2102636630; ComtopSessionSID=<SNAID>BtcLWPJprp2xpBhqbsgv7NzKmJ8yLZhvxFLpThyGcz50JzGyh4vH!2102636630!1452217406173</SNAID>; cs_cStorage_=1
]", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:
weblogic.common.resourcepool.ResourcePoolImpl.reserveResourceInternal(ResourcePoolImpl.java:385)
weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:342)
weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:329)
weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:417)
weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:324)

alert日志:
Fri Jan 08 09:41:39 2016
ORA-1652: unable to extend temp segment by 128 in tablespace                 TEMP 
Fri Jan 08 09:41:39 2016
ORA-1652: unable to extend temp segment by 128 in tablespace                 TEMP 
Fri Jan 08 10:01:36 2016
ORA-1652: unable to extend temp segment by 128 in tablespace                 TEMP 
Fri Jan 08 10:11:35 2016
ORA-1652: unable to extend temp segment by 128 in tablespace                 TEMP 

AWR:

 Snap IdSnap TimeSessionsCursors/SessionInstances
Begin Snap:573208-Jan-16 09:00:4854873.32
End Snap:573308-Jan-16 10:00:5954573.02
Elapsed: 60.18 (mins)   
DB Time: 126.97 (mins)   
EventWaitsTotal Wait Time (sec)Wait Avg(ms)% DB timeWait Class
DB CPU 6414.3 84.2 
direct path write temp323,000479.816.3User I/O
Elapsed Time (s)ExecutionsElapsed Time per Exec (s)%Total%CPU%IOSQL IdSQL ModuleSQL Text
3,579.671,6662.1546.9999.760.00ga37qxa3p485gJDBC Thin Clientselect tddakentit0_.ID as ID66...
2,917.886486.3138.3081.9616.41dxcdycgfr1w5n select nvl(round(avg(ctime), 2...
190.66631.782.5014.1585.298yavyxsts8hu9 select a.tablespace_name table...
28.2164.700.3799.740.00brb01q8dygvy6 select SQL_TEXT d_maxtime_sql ...
16.6662.780.2299.740.0045b35s83zwmah select round(max(ELAPSED_TIME)...
11.5725.790.1558.510.004x91zq0fkd05y DECLARE job BINARY_INTEGER := ...
11.5761.930.1558.510.004snzdp176n9wv CALL C_DATA_SYNCH_MAI...
11.3425.670.1559.110.005k565njgcd272 CALL G_DATA_SYNCH('MM...
7.742460.030.1097.860.002h1xrpzcygsdzJDBC Thin Clientselect distinct p.portlet_id, ...
6.701,7290.000.0987.110.00dfb1dmsvm3nx8JDBC Thin Clientselect m.media_id, m.storage_p...

检查temp表空间select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;

发现有32G,且是自动扩展的。


select sql_id, count(*) from gv$session where event = 'direct path write temp'
 group by sql_id  order by count(*) desc;

--查询无数据
 
select sql_id, count(*) from dba_hist_active_sess_history
 where event = 'direct path write temp'
 group by sql_id  order by count(*) desc;

SQL_ID          COUNT(*)
------------- ----------

dxcdycgfr1w5n   71739
3v1z2vmmzadm4  16
bmndrgc7xkmjb  12
3mnjv5g06mv0x  7

看sql_id为dxcdycgfr1w5n就是AWR中那条执行慢的SQL

dxcdycgfr1w5nselect nvl(round(avg(ctime), 2), 0) d_lock_wait_time from v$lock where REQUEST > 0


先看下这条SQL的执行计划:

select nvl(round(avg(ctime),2),0) d_lock_wait_time from v$lock where
REQUEST > 0
Plan hash value: 2399206389
---------------------------------------------------------------------------
| Id  | Operation               | Name       | Rows  | Bytes | Cost (%CPU)|
---------------------------------------------------------------------------
|   0 | SELECT STATEMENT        |            |       |       |     1 (100)|
|   1 |  SORT AGGREGATE         |            |     1 |    63 |            |
|*  2 |   HASH JOIN             |            |     1 |    63 |     0   (0)|
|   3 |    MERGE JOIN CARTESIAN |            |   100 |  3800 |     0   (0)|
|*  4 |     FIXED TABLE FULL    | X$KSUSE    |     1 |    19 |     0   (0)|
|   5 |     BUFFER SORT         |            |   100 |  1900 |     0   (0)|
|   6 |      FIXED TABLE FULL   | X$KSQRS    |   100 |  1900 |     0   (0)|
|   7 |    VIEW                 | GV$_LOCK   |    10 |   250 |     0   (0)|
|   8 |     UNION-ALL           |            |       |       |            |
|*  9 |      FILTER             |            |       |       |            |
|  10 |       VIEW              | GV$_LOCK1  |     2 |    50 |     0   (0)|
|  11 |        UNION-ALL        |            |       |       |            |
|* 12 |         FIXED TABLE FULL| X$KDNSSF   |     1 |    77 |     0   (0)|
|* 13 |         FIXED TABLE FULL| X$KSQEQ    |     1 |    77 |     0   (0)|
|* 14 |      FIXED TABLE FULL   | X$KTADM    |     1 |    77 |     0   (0)|
|* 15 |      FIXED TABLE FULL   | X$KTATRFIL |     1 |    77 |     0   (0)|
|* 16 |      FIXED TABLE FULL   | X$KTATRFSL |     1 |    77 |     0   (0)|
|* 17 |      FIXED TABLE FULL   | X$KTATL    |     1 |    77 |     0   (0)|
|* 18 |      FIXED TABLE FULL   | X$KTSTUSC  |     1 |    77 |     0   (0)|
|* 19 |      FIXED TABLE FULL   | X$KTSTUSS  |     1 |    77 |     0   (0)|
|* 20 |      FIXED TABLE FULL   | X$KTSTUSG  |     1 |    77 |     0   (0)|
|* 21 |      FIXED TABLE FULL   | X$KTCXB    |     1 |    77 |     0   (0)|

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

实际测试:

SQL> select nvl(round(avg(ctime), 2), 0) d_lock_wait_time from v$lock where REQUEST > 0;
  select nvl(round(avg(ctime), 2), 0) d_lock_wait_time from v$lock where REQUEST > 0

ERROR at line 1:
ORA-01652: unable to extend tem segment by 128 in tablespace TEMP
Elapsed:00:07:50.70  

SQL>exec dbms_stats.gather_fixed_objects_stats();

再次执行只需要0.3s,执行计划不是笛卡尔积了。


对于RAC的情况下,两个节点都要收集,不然,还有问题。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值