国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

如何捕捉temp表空間出錯的session信息和SQL

2024-07-21 02:12:14
字體:
來源:轉載
供稿:網友

我們有時候會遇見這樣的煩惱,在特定的時候總有某個大查詢導致臨時表空間出錯。但我們總不能守侯著捕獲相關sql以優化或者處理。可以通過events來診斷


[email protected]>alter session set events
2 '1652 trace name errorstack level 1';

session altered.

[email protected]>select count(*) from (select * from alibaba.member order by member_level);

select count(*) from (select * from alibaba.member order by member_level)
*
error at line 1:
ora-01652: unable to extend temp segment by 128 in tablespace fcptest


[email protected]>[email protected]>


于是轉到 udump 目錄下找到剛才產生的trace,我們發現

[[email protected] udump]$ more ocndev_ora_15452.trc
/opt/oracle/admin/ocn/udump/ocndev_ora_15452.trc
oracle9i enterprise edition release 9.2.0.3.0 - production
jserver release 9.2.0.3.0 - production
oracle_home = /opt/oracle/products/9.2.0
system name: linux
node name: oradev
release: 2.4.9-e.3
version: #1 fri may 3 17:02:43 edt 2002
machine: i686
instance name: ocndev
redo thread mounted by this instance: 1
oracle process number: 15
unix process pid: 15452, image: [email protected] (tns v1-v3)

*** session id:(85.639) 2004-08-24 17:50:19.030
*** 2004-08-24 17:50:19.030
ksedmp: internal or fatal error
ora-01652: unable to extend temp segment by 128 in tablespace fcptest
current sql statement for this session:
select count(*) from (select * from alibaba.member order by member_level)
----- call stack trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
ksedmp()+269 call ksedst()+0 0 ? 0 ? 0 ? 0 ? 71417550 ?
70ecf9b8 ?
ksddoa()+446 call ksedmp()+0 1 ? aa703a8 ? 40622470 ?
674 ? 1 ? 406224d4 ?
ksdpcg()+521 call ksddoa()+0 40622470 ? aa703a8 ?
ksdpec()+220 call ksdpcg()+0 674 ? bffe8d88 ? 1 ?
ksfpec()+133 call ksdpec()+0 674 ? 674 ? aa6d304 ?
bffe8dbc ? 9812a41 ?


這里面記錄了產生temp不足錯誤的sql。


打開跟蹤
alter system set events '1652 trace name context forever, level 1';
關閉跟蹤
alter system set events '1652 trace name context off';


或者


打開跟蹤
alter system set events '1652 trace name errorstack level 1';
關閉跟蹤
alter system set events '1652 trace name errorstack off';

 

也可在數據庫啟動前在初始化參數中設置

event = '1652 trace name errorstack level 1'

這樣對整個數據庫session都有效了。


實際上我們可以看出,event里面設定了 1652 正好是sql導致的錯誤號,也就是說實際上錯誤號是和某個event相關聯的。對某個特定錯誤進行捕獲就可以通過類似這樣的方式進行。

 

  • 本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。
  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 治县。| 英德市| 航空| 南木林县| 井陉县| 基隆市| 武城县| 东辽县| 明光市| 安阳市| 铜陵市| 汾阳市| 拜泉县| 博客| 邹平县| 陵水| 澄迈县| 苏尼特右旗| 两当县| 七台河市| 新泰市| 临沧市| 屏南县| 莒南县| 繁昌县| 池州市| 邹城市| 贺州市| 宝丰县| 息烽县| 临安市| 建始县| 庄河市| 宾阳县| 右玉县| 谷城县| 谷城县| 福鼎市| 资源县| 谷城县| 会同县|