使用ash分析ORA-01652问题

简介: 今天在检查生产库的问题的时候,收到开发的邮件,他们在运行一个job的时候报出了ora的错误,想让我们来看一下是什么原因。 ora错误是01652的错误,单纯来看是由于临时表空间不足造成的。
今天在检查生产库的问题的时候,收到开发的邮件,他们在运行一个job的时候报出了ora的错误,想让我们来看一下是什么原因。
ora错误是01652的错误,单纯来看是由于临时表空间不足造成的。

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

EnvelopeMT@...2 (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

EnvelopeMT@...2 (TNS V1-V3)

71/240 [ 30%]

0

384, 4043

9.93

db file sequential read

6.62

PRDUSG1C

pm1EnvelopeMT@...2 (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

pm1EnvelopeMT@...2 (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

28kbzsqpfpp7j

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

0g5pzj39xvd1a

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

gqy0gxb05ycg4

958688106

28

5.76

CPU + Wait for CPU

5.76

SELECT STATEMENT

3.45

/* */ SELECT CYCLE_CODE, CYCLE...

cwwa33b2a8byf

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...

2c88v51gn6zxt

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...


从以上问题可以简单的分析出,资源的消耗在一个job和toad相关的session上,至于toad的进程在那个时间点在做什么通过ash还没有抓取到更详细的信息。但是可以从等待事件来看,是在做一个大查询。

根据系统的负载最后给出了几点建议。
首先是根据报告对那个时间点操作的客户进行确认,是否做了一些额外的操作。
然后从目前的系统角度来看,这个库的temp空间本身也存在着一定的不足,目前只有8G,需要做一定的扩展,因为库中有几个大表,都在百G级别,一些排序操作可能会消耗相当大的temp空间。
最后和开发确认资源消耗较多的sql语句。(28kbzsqpfpp7j)

开发给出的反馈是这个job的程序很久没有更新了。我简单检查了一下最近的执行历史做了确认。
所以问题就锁定在两个方面,一个是toad相关的session导致的,一个是temp空间不足造成的(一种可能甚至是toad对应的session消耗了一部分的temp空间,到了sql_id(28kbzsqpfpp7j temp空间或者说sql_id在做排序操作的时候消耗的temp空间过大)
排除了其他原因之后,再次尝试跑就没有问题了。对于临时表空间的扩展也在稍后做了添加。

目录
相关文章
|
7月前
|
Oracle 关系型数据库 数据库
Oracle 11G常见性能诊断报告(AWR/ADDM/ASH)收集
Oracle 11G常见性能诊断报告(AWR/ADDM/ASH)收集
|
16天前
|
SQL 监控 Oracle
Oracle 性能优化之AWR、ASH和ADDM(含报告生成和参数解读)
Oracle 性能优化之AWR、ASH和ADDM(含报告生成和参数解读)
|
Oracle 关系型数据库 Windows
Oracle AWR\ASH报告相关操作
Oracle AWR\ASH报告相关操作
143 0
|
SQL 存储 Oracle
ORACLE AWR 生成常用脚本
ORACLE AWR 生成常用脚本功能介绍
1102 0
|
SQL Oracle 关系型数据库
|
SQL Oracle 关系型数据库