本文共 2337 字,大约阅读时间需要 7 分钟。
ORA-01652: unable to extend temp segment by 128 in tablespace TEMP
因为问题发生在上午,从shared pool里查看对应的sql已经查不到了,这个时候使用ash是一个很方便的方式。 参考问题发生的时间点,抓取了一个4分钟的ash报告。 首先看到时间基本都消耗在了两个程序上,其中一个还是toad连接进来的session. Service | Module | % Activity | Action | % Action |
USG01 | EnvelopeMT@ccbdbpr2 (TNS V1-V3) | 72.81 | UNNAMED | 72.81 |
| TOAD 11.0.0.116 | 21.58 | UNNAMED | 21.58 |
想看看具体的session情况,可以结合等待事件来分析一下,这个时候就可以很清楚的看到那个时间段的操作了。
Sid, Serial# | % Activity | Event | % Event | User | Program | # Samples Active | XIDs |
6937, 1129 | 27.91 | db file sequential read | 21.29 | USG1C | (TNS V1-V3) | 148/240 [ 62%] | 0 |
|
| CPU + Wait for CPU | 6.04 |
|
| 42/240 [ 18%] | 0 |
3992,34841 | 21.58 | direct path read | 18.99 | XXXXXX | Toad.exe | 132/240 [ 55%] | 0 |
|
| CPU + Wait for CPU | 2.59 |
|
| 18/240 [ 8%] | 0 |
6844,29137 | 10.50 | db file sequential read | 10.22 | USG1C | (TNS V1-V3) | 71/240 [ 30%] | 0 |
384, 4043 | 9.93 | db file sequential read | 6.62 | PRDUSG1C | (TNS V1-V3) | 46/240 [ 19%] | 23 |
|
| CPU + Wait for CPU | 3.31 |
|
| 23/240 [ 10%] | 14 |
7130, 5817 | 5.18 | db file sequential read | 5.04 | PRDUSG1C | (TNS V1-V3) | 35/240 [ 15%] | 0 |
但是分析sql语句的时候却没有发现toad相关的session执行的sql语句。
SQL ID | Planhash | Sampled # of Executions | % Activity | Event | % Event | Top Row Source | % RwSrc | SQL Text |
| 421773076 | 1 | 27.91 | db file sequential read | 21.29 | TABLE ACCESS - BY LOCAL INDEX ROWID | 18.56 | SELECT RE.L3_NET_START_TIME, R... |
|
|
|
| CPU + Wait for CPU | 6.04 | SORT - ORDER BY | 3.02 | |
| 2387198001 | 30 | 7.77 | db file sequential read | 6.76 | UPDATE | 6.47 | UPDATE RATED_EVENT SET L3_NET_... |
|
|
|
| CPU + Wait for CPU | 1.01 | UPDATE | 0.86 | |
| 958688106 | 28 | 5.76 | CPU + Wait for CPU | 5.76 | SELECT STATEMENT | 3.45 | /* */ SELECT CYCLE_CODE, CYCLE... |
| 421773076 | 1 | 5.32 | db file sequential read | 5.32 | TABLE ACCESS - BY LOCAL INDEX ROWID | 5.18 | SELECT RE.L3_NET_START_TIME, R... |
| 421773076 | 1 | 5.04 | db file sequential read | 4.89 | TABLE ACCESS - BY LOCAL INDEX ROWID | 4.89 | SELECT RE.L3_NET_START_TIME, R... |
根据系统的负载最后给出了几点建议。
首先是根据报告对那个时间点操作的客户进行确认,是否做了一些额外的操作。 然后从目前的系统角度来看,这个库的temp空间本身也存在着一定的不足,目前只有8G,需要做一定的扩展,因为库中有几个大表,都在百G级别,一些排序操作可能会消耗相当大的temp空间。 最后和开发确认资源消耗较多的sql语句。()开发给出的反馈是这个job的程序很久没有更新了。我简单检查了一下最近的执行历史做了确认。
所以问题就锁定在两个方面,一个是toad相关的session导致的,一个是temp空间不足造成的(一种可能甚至是toad对应的session消耗了一部分的temp空间,到了sql_id() temp空间或者说sql_id在做排序操作的时候消耗的temp空间过大)排除了其他原因之后,再次尝试跑就没有问题了。对于临时表空间的扩展也在稍后做了添加。转载地址:http://rnfco.baihongyu.com/