使用ash分析ORA-01652問題
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 |
(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... |
從以上問題可以簡單的分析出,資源的消耗在一個job和toad相關的session上,至於toad的程式在那個時間點在做什麼透過ash還沒有抓取到更詳細的資訊。但是可以從等待事件來看,是在做一個大查詢。
根據系統的負載最後給出了幾點建議。
首先是根據報告對那個時間點操作的客戶進行確認,是否做了一些額外的操作。
然後從目前的系統角度來看,這個庫的temp空間本身也存在著一定的不足,目前只有8G,需要做一定的擴充套件,因為庫中有幾個大表,都在百G級別,一些排序操作可能會消耗相當大的temp空間。
最後和開發確認資源消耗較多的sql語句。()
開發給出的反饋是這個job的程式很久沒有更新了。我簡單檢查了一下最近的執行歷史做了確認。
所以問題就鎖定在兩個方面,一個是toad相關的session導致的,一個是temp空間不足造成的(一種可能甚至是toad對應的session消耗了一部分的temp空間,到了sql_id() temp空間或者說sql_id在做排序操作的時候消耗的temp空間過大)
排除了其他原因之後,再次嘗試跑就沒有問題了。對於臨時表空間的擴充套件也在稍後做了新增。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1426688/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ASH buffers 資料取樣到AWR的問題
- 使用awr來分析session leak問題Session
- 使用strace分析exp的奇怪問題
- 【kingsql分享】ASH的研究和分析SQL
- 使用WireShark分析使用RedisTemplate取不到值的問題Redis
- AWR、ASH、ADDM和顧問程式
- 使用 Chrome 開發者工具分析記憶體問題Chrome記憶體
- ClientAbortException 問題分析clientException
- oracle ASHOracle
- 9. Oracle常用分析診斷工具——9.2. ASHOracle
- 使用RAMMap+PoolMon分析Windows記憶體異常使用問題Windows記憶體
- oracle ash效能報告的使用方法Oracle
- Rabbimtmq unack問題分析MQ
- JVM 問題分析思路JVM
- 抽獎問題分析
- 眾數問題分析
- 使用汙點分析檢查log4j問題
- oracle awr ashOracle
- 【筆記】ash筆記
- MySQL訪問受限的問題分析MySql
- zCloud使用技巧:如何使用效能下鑽功能分析SQL效能問題CloudSQL
- 填報 - 分片問題分析
- Spring框架問題分析Spring框架
- MySQL 死鎖問題分析MySql
- OOM分析之問題一)OOM
- HDFS Decommission問題分析
- sonar常見問題分析
- 問題賬戶需求分析
- Sqlserver分析死鎖問題SQLServer
- 線上死鎖問題分析
- ActiveMQ問題分析和解決MQ
- recyclebin造成的問題分析
- 使用Windbg快速分析應用記憶體洩露問題記憶體洩露
- RunLoop原始碼分析、基本使用場景和常見問題OOP原始碼
- 使用GDB與QEMU除錯核心時的問題分析(轉)除錯
- 學用ORACLE AWR和ASH特性(8)-生成ASH報表Oracle
- Active Session History (ASH)Session
- ASH, AWR , 等待事件事件