久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何使用ErrorStack進行錯誤跟蹤及診斷

144次閱讀
沒有評論

共計 4441 個字符,預計需要花費 12 分鐘才能閱讀完成。

這篇文章主要為大家展示了“如何使用 ErrorStack 進行錯誤跟蹤及診斷”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領大家一起研究并學習一下“如何使用 ErrorStack 進行錯誤跟蹤及診斷”這篇文章吧。

使用 ErrorStack 進行錯誤跟蹤及診斷

在使用

數據庫的過程中,可能會遇到各種各樣的錯誤或異常,很多異常的提示并不具體,我們有必要了解一下的跟蹤方式。

是提供的一種對于錯誤堆棧進行跟蹤的方法,通過設置跟蹤可以將一些錯誤的后臺信息詳盡地轉儲出來,寫入跟蹤文件,對于錯誤的研究與診斷非常有效。

ErrorStack40 1 2 Level1 + ProcessState

(顯示所有,著重顯示當前)

可以在實例級或會話級別設置,也可以在參數文件中設置,這個設置僅當某個特定的錯誤出現時才被觸發,如設置事件的跟蹤:

一個客戶曾經出現如下錯誤,提示數據的精度超過允許值,是后臺調度的任務:

Errors in file /admin/erpdb/bdump/erpdb1_j000_447020.trc:
ORA-01438: value larger than specified precision allowed for this column
ORA-06512: at line 1

SQLErrorStackSQLalter system set events= 1438 trace name errorstack forever,level 3

alter system set events= 1438 trace name errorstack off

Oracle 10gMon Jul 13 10:48:392009
Mon Jul 13 10:56:06 2009
ORA-01438: value larger than specified precision allowed for this column
Trace dumping is performing id=[cdmp_20090713105608]
OS Pid: 541528 executed alter system set events 1438 trace name Errorstackoff

SQLSQLSQLNumber***SESSION ID:(857.16304) 2009-07-13 10:56:06.429
ksedmp: internal or fatal error
Current SQL statement for this session:
—– PL/SQL Call Stack —–
handle number name
700000336a1a070 236 procedure ERP.PROC_AUTOBATPROC
700000342eb7c20 1 anonymous block

可以很容易地測試這一功能的使用,比如使用如下代碼中的測試過程:

SQL connect eygle/eygle
Table created.
insert into t values(a,1)
ERROR at line 1:
SQL alter system set events 984 trace name errorstack off

Mon Jul 13 22:55:592009
Mon Jul 13 22:59:12 2009
ORA-00984: column not allowed here
OS Pid: 2431 executed alter system set events 984 trace name errorstack off

insert*** 2009-07-13 22:59:12.928
ORA-00984: column not allowed here
insert into t values(a,1)
calling call entry argument values in hex
——————– ——– ——————– —————————-

以下引用在 ITPUB 上的一個討論,是使用 ErrorStack 跟蹤解決問題的典型案例(原文鏈接指向 ITPUB)

Import: Release 10.2.0.1.0 – Production on Tue Mar 18 14:19:49 2008

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – 64bit Production

Export file created by EXPORT:V10.02.01 via conventional path

. importing DBA_MGR s objects into DBA_MGR

IMP-00058: ORACLE error 1438 encountered

IMP-00028: partial import of previous table rolled back: 20501 rows rolled back

System altered

然后重新執行 IMP;

2、查看 UDUMP 下日志, 如下:

/opt/oracle/admin/orcl/udump/orcl_ora_32355.trc

With the Partitioning, OLAP and Data Mining options

System name:Linux

Release:2.6.9-22.ELsmp

Machine:x86_64

Redo thread mounted by this instance: 1

Unix process pid: 32355, image: oracle@zhx25.cccc.com (TNS V1-V3)

*** SESSION ID135.949) 2008-03-18 17:11:02.014

ksedmp: internal or fatal error

Current SQL statement for this session:

(PRTNO , SEQNO , SEQDESC , PRTEFLAG , SEQCC , SEQNXTNO , SEQDEPT , WKCCODE , WKCALTCODE , SEQSETHR , LAB_SEQSETHR , SEQRUNHR , LAB_SEQRUNHR , SEQQUEHR , LAB_SEQQUEHR , SEQTRANHR , LAB_SEQTRANHR , SEQNOQLTRAT , SEQCHGDAT , SEQCHGRSN , SEQCHGCTLR , MACHCODE , MACHALTCODE , RESCODE , KEYSEQ , SEQCRYLOT , INITOVERRATE , COMWORK , SEQLOTFLAG , SEQEFDAT , SEQIEFDAT , SEQEFLOTNO , SEQIEFLOTNO , SEQECONO , PRTSEQCST , SEQSELFCST , INVYORN , SEQQTY , SEQNOTE , NOPRTAVELZ , OUTSEQFLAG , WXCST , SEQGSCHGCTLR , SEQGSCHGDAT , SEQSHCTL , SEQSHDAT , SEQSHSIGN , PRICE , ACCNO , ROUSTAT , FIXMFLAG , BANCL  (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17, :18, :19, :20, :21, :22, :23, :24, :25, :26, :27, :28, :29, :30, :31, :32, :33, :34, :35, :36, :37, :38, :39, :40, :41, :42, :43, :44, :45, :46, :47, :48, :49, :50, :51, :52)

calling

entry

location

point

…………

Offsi = 48, Offsi = 1440

Bind Twotask Scalar Sql In (may be out) Copy 

Offsi = 48, Offsi = 1472

Bind Twotask Scalar Sql In (may be out) Copy 

Offsi = 48, Offsi = 1504

Bind Twotask Scalar Sql In (may be out) Copy 

Offsi = 48, Offsi = 1536

Bind Twotask Scalar Sql In (may be out) Copy 

Offsi = 48, Offsi = 1568

Bind Twotask Scalar Sql In (may be out) Copy 

Offsi = 48, Offsi = 1600

Bind Twotask Scalar Sql In (may be out) Copy 

Offsi = 48, Offsi = 1632

Bind#0

oacflg=03 fl2=1000010 frm=01 csi=852 siz=3344 off=0

bln=32

flg=05

span = >

oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00

kxsbbbfp=2a974dc3b8

value=###

Dump of memory from 0x0000002A974CDE88 to 0x0000002A974CDE9E

2A974CDE90 C9BBC6C8 52024D01 30310248 00003304[…..M.RH.10.3..]

oacdty=01 mxl=32(30) mxlc=00 mal=00 scl=00 pre=00

kxsbbbfp=2a974dc3d0

avl=00

Bind#3

oacflg=03 fl2=1000010 frm=01 csi=852 siz=0 off=88

bln=32

flg=01

…………

從跟蹤文件可以看到,問題是系統認為地址為 2A974CDE88 的數值非法,在導入會提示 ORA-1438 錯誤。。

3、找到 DMP 中相關數據

用 winhex 打開 dmp 文件,搜索十六進制串“2E313133 02C10604 C8C6BBC9 014D0252 48023130 0433F3FF”(對 trace 文件中的值要進行順序調整)

5、對數據庫相關數據項的類型進行調整

把數據項的類型由 number(*) 改為 number(38);

6、重新進行數據導入

[oracle@zhx25 ~]$ imp system/ceshi fromuser=dba_mgr touser=dba_mgr tables=t_routdef ignore=y file=1.dmp

Copyright (c) 1982, 2005, Oracle.Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – 64bit Production

Export file created by EXPORT:V10.02.01 via conventional path

. importing DBA_MGR s objects into DBA_MGR

T_ROUTDEF

以上是“如何使用 ErrorStack 進行錯誤跟蹤及診斷”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-24發表,共計4441字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 若尔盖县| 晋州市| 河池市| 仪陇县| 绥宁县| 灵川县| 来凤县| 永新县| 辽源市| 阳高县| 喜德县| 霍邱县| 大厂| 招远市| 佛学| 民权县| 奇台县| 五大连池市| 手游| 涟水县| 恩平市| 通渭县| 读书| 盱眙县| 金湖县| 仙游县| 冷水江市| 兴安县| 孝感市| 罗山县| 临安市| 浑源县| 延川县| 普安县| 武胜县| 青岛市| 新乐市| 永福县| 太保市| 中方县| 香港 |