查看: 15004|回复: 17

[精华] 实例讨论:教大家读trace

[复制链接]
招聘 : c/c++研发
论坛徽章:
45
技术图书徽章
日期:2014-03-10 14:09:192012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15现任管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
跳转到指定楼层
1#
发表于 2006-5-30 04:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近分析trace文件比较有心得,再发一篇不需要检查源程序就可以发现问题的trace跟踪。

问题描述:
客户的db2运行在cluster上,刚开始他们出现了内存错误,停掉db2后就无法启动了,想要切换到standby上也不成功。
以下是db2diag.log:

2006-05-26-15.47.59.574000-240 I1H914             LEVEL: Event
PID     : 2224                 TID  : 2160        PROC : db2start.exe
INSTANCE: DB2                  NODE : 000
FUNCTION: DB2 UDB, RAS/PD component, _pdlogInt, probe:120
START   : New db2diag.log file
DATA #1 : Build Level, 124 bytes
Instance "DB2" uses "32" bits and DB2 code release "SQL08024"
with level identifier "03050106".
Informational tokens are "DB2 v8.1.11.973", "s060120", "WR21365", FixPak "11".
DATA #2 : System Info, 1564 bytes
System: WIN32_NT IMG-LIB1  5.2 x86 Family 15, model 2, stepping 6
CPU: total:8 online:8 Cores per socket:1 Threading degree per core:2
Physical Memory(MB): total:5632 free:5074 available:3012
Virtual  Memory(MB): total:17504 free:22209
Swap     Memory(MB): total:11872 free:17135
Information in this record is only valid at the time when this file was
created (see this record's time stamp)

2006-05-26-15.47.59.574000-240 I918H1537          LEVEL: Event
PID     : 2224                 TID  : 2160        PROC : db2start.exe
INSTANCE: DB2                  NODE : 000
FUNCTION: DB2 UDB, base sys utilities, sqleStartStopSingleNode, probe:1130
DATA #1 : String, 39 bytes
C:\PROGRA~1\IBM\SQLLIB\bin\DB2STAR2.EXE
DATA #2 : Hexdump, 256 bytes
0x0012A8B8 : 433A 5C50 524F 4752 417E 315C 4942 4D5C    C:\PROGRA~1\IBM\
0x0012A8C8 : 5351 4C4C 4942 5C62 696E 5C44 4232 5354    SQLLIB\bin\DB2ST
0x0012A8D8 : 4152 322E 4558 4500 4E4F 4D53 4700 0000    AR2.EXE.NOMSG...
0x0012A8E8 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0012A8F8 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0012A908 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0012A918 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0012A928 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0012A938 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0012A948 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0012A958 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0012A968 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0012A978 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0012A988 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0012A998 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0012A9A8 : 0000 0000 0000 0000 0000 0000 0000 0000    ................

2006-05-26-15.48.00.092000-240 E2457H501          LEVEL: Warning
PID     : 3992                 TID  : 2416        PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000
FUNCTION: DB2 UDB, SQO Memory Management, sqlogmshr3, probe:45
DATA #1 : <preformatted>
Set 2 size truncated from 983040000 bytes to 200015872 bytes.  To avoid this truncation, either reduce your memory configuration parameters for this set or update the DB2NTMEMSIZE registry variable with the string APLD:983040000.

2006-05-26-15.48.01.222000-240 I2960H357          LEVEL: Error
PID     : 3992                 TID  : 2416        PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000
FUNCTION: DB2 UDB, bsu security, sqlex_read_aud_cfg, probe:20
RETCODE : ZRC=0x860F000A=-2045837302=SQLO_FNEX "File not found."
          DIA8411C A file "" could not be found.

2006-05-26-15.48.01.222000-240 I3319H355          LEVEL: Severe
PID     : 3992                 TID  : 2416        PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000
FUNCTION: DB2 UDB, base sys utilities, sqleInitSysCtlr, probe:98
MESSAGE : DiagData
DATA #1 : Hexdump, 4 bytes
0x0123FB84 : D5FA FFFF                                  ....

2006-05-26-15.48.01.222000-240 I3676H350          LEVEL: Severe
PID     : 3992                 TID  : 2416        PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000
FUNCTION: DB2 UDB, base sys utilities, sqleSysCtlr, probe:5
MESSAGE : DiagData
DATA #1 : Hexdump, 4 bytes
0x0123FBA8 : D5FA FFFF                                  ....

2006-05-26-15.48.01.394000-240 I4028H500          LEVEL: Error
PID     : 2224                 TID  : 2160        PROC : db2start.exe
INSTANCE: DB2                  NODE : 000
FUNCTION: DB2 UDB, oper system services, sqloStartDB2Service, probe:50
DATA #1 : Hexdump, 47 bytes
0x00129BA4 : 4442 322D 3020 3A20 5468 6520 7072 6F63    DB2-0 : The proc
0x00129BB4 : 6573 7320 7465 726D 696E 6174 6564 2075    ess terminated u
0x00129BC4 : 6E65 7870 6563 7465 646C 792E 0D0A 0A      nexpectedly....

2006-05-26-15.48.01.394000-240 I4530H523          LEVEL: Severe
PID     : 2224                 TID  : 2160        PROC : db2start.exe
INSTANCE: DB2                  NODE : 000
FUNCTION: DB2 UDB, base sys utilities, sqleStartStopSingleNode, probe:70
MESSAGE : DiagData
DATA #1 : Hexdump, 47 bytes
0x0012A278 : 4442 322D 3020 3A20 5468 6520 7072 6F63    DB2-0 : The proc
0x0012A288 : 6573 7320 7465 726D 696E 6174 6564 2075    ess terminated u
0x0012A298 : 6E65 7870 6563 7465 646C 792E 0D0A 0A      nexpectedly....

2006-05-26-15.48.01.410000-240 I5055H357          LEVEL: Error
PID     : 2224                 TID  : 2160        PROC : db2start.exe
INSTANCE: DB2                  NODE : 000
FUNCTION: DB2 UDB, bsu security, sqlex_read_aud_cfg, probe:20
RETCODE : ZRC=0x860F000A=-2045837302=SQLO_FNEX "File not found."
          DIA8411C A file "" could not be found.

2006-05-26-15.48.01.410000-240 I5414H305          LEVEL: Error
PID     : 2224                 TID  : 2160        PROC : db2start.exe
INSTANCE: DB2                  NODE : 000
MESSAGE : Audit error.  sqlcode is:
DATA #1 : Hexdump, 4 bytes
0x0012E774 : EEFB FFFF                                  ....

在这里我们可以看到第一个error是:
2006-05-26-15.48.01.222000-240 I2960H357          LEVEL: Error
PID     : 3992                 TID  : 2416        PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000
FUNCTION: DB2 UDB, bsu security, sqlex_read_aud_cfg, probe:20
RETCODE : ZRC=0x860F000A=-2045837302=SQLO_FNEX "File not found."
          DIA8411C A file "" could not be found.

db2diag -rc 0x860F000A后我们得到:
Input ZRC string '0x860F000A' parsed as 0x860F000A (-2045837302).

ZRC value to map: 0x860F000A (-2045837302)
        V7 Equivalent ZRC value: 0xFFFFE60A (-6646)

ZRC class :
        Critical Media Error (Class Index: 6)
Component:
        SQLO ; oper system services (Component Index: 15)
Reason Code:
        10 (0x000A)

Identifer:
        SQLO_FNEX
        SQLO_MOD_NOT_FOUND
Identifer (without component):
        SQLZ_RC_FNEX

Description:
        File not found.

Associated information:
        Sqlcode -980
SQL0980C  A disk error occurred.  Subsequent SQL statements cannot be
processed.

        Number of sqlca tokens : 0
        Diaglog message number: 8411

然后又有:2006-05-26-15.48.01.222000-240 I3319H355          LEVEL: Severe
PID     : 3992                 TID  : 2416        PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000
FUNCTION: DB2 UDB, base sys utilities, sqleInitSysCtlr, probe:98
MESSAGE : DiagData
DATA #1 : Hexdump, 4 bytes
0x0123FB84 : D5FA FFFF                                  ....
db2diag -rc 0xfffffad5后:
Input ECF string '0xfffffad5' parsed as 0xFFFFFAD5 (-1323).
NOTE: ../sqz/sqlzwhatisrc.C:
        V7 input ZRC 0xFFFFFAD5 (-1323) may translate to V8 ZRC value of 0x83000
AD5 (-2097149227)

ZRC value to map: 0x83000AD5 (-2097149227)
        V7 Equivalent ZRC value: 0xFFFFBAD5 (-17707)

ZRC class :
        Unexpected Operating System error (Class Index: 3)
Component:
        Unknown component (Component Index: 0)
        Undefined as of DB2 v8.1.10.812; s050811



Attempting to lookup value 0xFFFFFAD5 (-1323) as a sqlcode
        Sqlcode -1323
SQL1323N  An error occurred when accessing the audit configuration file.

看起来好像是SQL1323的错误,也就是db2audit.cfg找不到。
但是由于这个是production system,我们不能胡乱给一个猜测,一定要有confidence,对不对?而且当时客户感觉对于db2了解有限,我们不能单单告诉他是db2audit的问题,要给他们一个详细的解决方案。因而我们需要db2trace验证我们的猜测:
老套路:
db2trc on -l 10M
db2trc clr
<db2start> <---- failed here
db2trc dmp
xxxxxx

(trace文件包含在附件中)
好,下面该开始正式分析了。
先找到db2start的入口:
1830        DB2StartMain entry
找到入口处我们在找错误退出的部分:
16272       DB2StartMain exit [rc = 0xFFFFFAD5 = -1323]
确实是由于1323的错误退出。
向回跟踪,慢慢找,要有耐心:)
终于又找到一处错误点:
16094       DB2StartMain error [probe 710]
可以肯定错误是在这之前了。
继续向回跟踪:
5200        | | | EnvPrfGetValueByEnumIndex entry
5201        | | | EnvPrfGetValueByEnumIndex exit [rc = 0x870F0104 = -2029059836 = RC_ENV_NOT_FOUND]
5202        | | sqloGetEnvInternal exit [rc = 0x870F0104 = -2029059836 = RC_ENV_NOT_FOUND]
5203        | sqleSetupEnvVars exit
5204        | sqloReportServiceStatus entry
5205        | sqloReportServiceStatus exit [rc = 1]
5206        | sqloWaitIPCWaitPost entry
5207        | | sqloWaitInterrupt entry
13455       | | sqloWaitInterrupt exit [rc = 0x870F00B9 = -2029059911 = SQLO_SEM_TIMEOUT]
13456       | sqloWaitIPCWaitPost exit [rc = 0x870F00B9 = -2029059911 = SQLO_SEM_TIMEOUT]
13457       | sqloReportServiceStatus entry
13458       | sqloReportServiceStatus exit [rc = 1]
13459       | sqloWaitIPCWaitPost entry
13460       | | sqloWaitInterrupt entry
16084       | | sqloWaitInterrupt exit
16086       | sqloWaitIPCWaitPost exit
16087       | sqloReportServiceStatus entry
16093       | sqloReportServiceStatus exit [rc = 1]
我们看到程序从5207一下子就跳到了13455,并且是在sqlWaitInterrupt入口后紧接着返回SQLO_SEM_TIMEOUT。
先记住这里,bookmark上,然后再向回走,看了半天好像没有什么可疑的,那么这里的嫌疑最大。
对照fmt文件:
我们先去10694看一看:
16094        error DB2 UDB base sys utilities DB2StartMain fnc (4.3.5.304.0.710)
        pid 972 tid 2300 cpid -1 node 0 sec 26 nsec 113255673 probe 710
        Error ZRC = 0x00000000 = 0 = PSM_OK
        bytes 12

        Data1         (PD_TYPE_DEFAULT,4) Hexdump:
        D5FA FFFF                                  ....
嘿嘿,0xFFFFFAD5就是-1323,然后回头看5207和13455没有发现其他的信息,不过别放弃。
由于5207后程序转过去执行其他的进程/线程,因而产生了跳跃。所以我们应该从5208开始继续跟踪:
pid = 972 tid = 288 node = 0

5208        sqloGetEnvInternal entry
一直下拉下拉别怕麻烦:
16110       | DB2main exit
终于到了这一段进程的结束,从这里向回跟踪:
经过了无数可以忽略的IPC Wait我们眼睛一亮,突然看到了-1323这个字眼:
14824       | | | | sqleInitSysCtlr exit [rc = 0xFFFFFAD5 = -1323]
估计错误就在5208和14824之间了,继续向回跟踪:
在上面几行我们看到了:
14779       | | | | | | sqlex_build_sqlca exit [rc = 0xFFFFFAD5 = -1323]
14780       | | | | | sqlex_set_audit_state data [probe 10]
14781       | | | | | sqlex_set_audit_state exit [rc = 0xFFFFFAD5 = -1323]
你看SQLCA结构中竟然有了1323,可想而知错误就在附近,集中精力:
14646       | | | | | | sqlex_read_aud_cfg entry
14647       | | | | | | | sqlex_gen_aud_dir entry
14653       | | | | | | | | sqleinstancepath entry
14654       | | | | | | | | | sqloInstancePath entry
14655       | | | | | | | | | sqloInstancePath exit
14656       | | | | | | | | sqleinstancepath exit
14657       | | | | | | | sqlex_gen_aud_dir exit
14664       | | | | | | | sqloopenp entry
14692       | | | | | | | sqloopenp exit [rc = 0x860F000A = -2045837302 = SQLO_FNEX]
14693       | | | | | | sqlex_read_aud_cfg data [probe 20]
14694       | | | | | | | sqlt_logerr_zrc entry
14695       | | | | | | | sqlt_logerr_zrc data [probe 10]
14696       | | | | | | | | sqlzGetZRCInfo entry
14697       | | | | | | | | sqlzGetZRCInfo exit [rc = 0xFFFFFC2C = -980]
14698       | | | | | | | | pdLogRC entry
14699       | | | | | | | | | _pdlogInt entry
14700       | | | | | | | | | | sqltGetDiagPath entry
14701       | | | | | | | | | | sqltGetDiagPath data [probe 10]
14702       | | | | | | | | | | sqltGetDiagPath exit
14703       | | | | | | | | | _pdlogInt data [probe 130]
14704       | | | | | | | | | | sqloGetInstanceOwnerName entry
14705       | | | | | | | | | | sqloGetInstanceOwnerName exit
14706       | | | | | | | | | | sqloprocname entry
14707       | | | | | | | | | | sqloprocname data [probe 5]
14708       | | | | | | | | | | sqloprocname exit
14709       | | | | | | | | | | sqltgets entry
14710       | | | | | | | | | | sqltgets exit
14711       | | | | | | | | | _pdlogInt data [probe 110]
14712       | | | | | | | | | | sqloopenp entry
14713       | | | | | | | | | | | sqloDetermineFsCachingPolicy entry
14714       | | | | | | | | | | | sqloDetermineFsCachingPolicy exit
14715       | | | | | | | | | | sqloopenp data [probe 20]
14716       | | | | | | | | | | | sqloflock entry
14717       | | | | | | | | | | | sqloflock data [probe 1]
14718       | | | | | | | | | | | sqloflock exit
14719       | | | | | | | | | | sqloopenp data [probe 140]
14720       | | | | | | | | | | sqloopenp exit [rc = 0x070F00CB = 118423755 = SQLO_FREV]
14721       | | | | | | | | | | sqlochgfileptr entry
14722       | | | | | | | | | | sqlochgfileptr data [probe 1]
14723       | | | | | | | | | | sqlochgfileptr exit
14724       | | | | | | | | | _pdlogInt data [probe 100]
14725       | | | | | | | | | | sqlzGetZRCInfo entry
14726       | | | | | | | | | | sqlzGetZRCInfo exit [rc = 0xFFFFFC2C = -980]
14727       | | | | | | | | | | sqlogmsg entry
14728       | | | | | | | | | | | sqlnlsGetRegVars entry
14729       | | | | | | | | | | | | sqloGetEnvInternal entry
14730       | | | | | | | | | | | | sqloGetEnvInternal exit [rc = 0x870F0104 = -2029059836 = RC_ENV_NOT_FOUND]
14731       | | | | | | | | | | | | sqloGetEnvInternal entry
14732       | | | | | | | | | | | | sqloGetEnvInternal exit [rc = 0x870F0104 = -2029059836 = RC_ENV_NOT_FOUND]
14733       | | | | | | | | | | | | sqloGetEnvInternal entry
14734       | | | | | | | | | | | | sqloGetEnvInternal exit [rc = 0x870F0104 = -2029059836 = RC_ENV_NOT_FOUND]
14735       | | | | | | | | | | | | sqloGetEnvInternal entry
14736       | | | | | | | | | | | | sqloGetEnvInternal exit [rc = 0x870F0104 = -2029059836 = RC_ENV_NOT_FOUND]
14737       | | | | | | | | | | | | sqloGetEnvInternal entry
14738       | | | | | | | | | | | | sqloGetEnvInternal exit [rc = 0x870F0104 = -2029059836 = RC_ENV_NOT_FOUND]
14739       | | | | | | | | | | | | sqloGetEnvInternal entry
14740       | | | | | | | | | | | | sqloGetEnvInternal exit [rc = 0x870F0104 = -2029059836 = RC_ENV_NOT_FOUND]
14741       | | | | | | | | | | | | sqloGetEnvInternal entry
14742       | | | | | | | | | | | | sqloGetEnvInternal exit [rc = 0x870F0104 = -2029059836 = RC_ENV_NOT_FOUND]
14743       | | | | | | | | | | | sqlnlsGetRegVars data [probe 90]
14744       | | | | | | | | | | | sqlnlsGetRegVars exit
14745       | | | | | | | | | | | sqlnlsgmsg entry
14746       | | | | | | | | | | | sqlnlsgmsg data [probe 1]
14747       | | | | | | | | | | | sqlnlsgmsg data [probe 2]
14748       | | | | | | | | | | | | sqlnlsgmsg_cpcv entry
14749       | | | | | | | | | | | | sqlnlsgmsg_cpcv data [probe 10]
14750       | | | | | | | | | | | | | sqlnlscmsg entry
14751       | | | | | | | | | | | | | sqlnlscmsg data [probe 10]
14752       | | | | | | | | | | | | | sqlnlscmsg data [probe 20]
14753       | | | | | | | | | | | | | | sqlnlsmapcc entry
14754       | | | | | | | | | | | | | | sqlnlsmapcc data [probe 1]
14755       | | | | | | | | | | | | | | sqlnlsmapcc data [probe 2]
14756       | | | | | | | | | | | | | | sqlnlsmapcc exit
14757       | | | | | | | | | | | | | sqlnlscmsg data [probe 30]
14758       | | | | | | | | | | | | | sqlnlscmsg data [probe 60]
14759       | | | | | | | | | | | | | sqlnlscmsg data [probe 80]
14760       | | | | | | | | | | | | | sqlnlscmsg exit
14761       | | | | | | | | | | | | sqlnlsgmsg_cpcv data [probe 200]
14762       | | | | | | | | | | | | sqlnlsgmsg_cpcv exit [rc = 0x00000028 = 40]
14763       | | | | | | | | | | | sqlnlsgmsg exit [rc = 0x00000028 = 40]
14764       | | | | | | | | | | sqlogmsg exit [rc = 0x00000028 = 40]
14765       | | | | | | | | | | sqlowrite entry
14766       | | | | | | | | | | sqlowrite exit
14767       | | | | | | sqlex_read_aud_cfg data [probe 20]
14768       | | | | | | | | | | sqloclose entry
14769       | | | | | | | | | | sqloclose data [probe 10]
14770       | | | | | | | | | | sqloclose exit
14771       | | | | | | | | | _pdlogInt exit
14772       | | | | | | | | pdLogRC exit
14773       | | | | | | | sqlt_logerr_zrc exit
14774       | | | | | | sqlex_read_aud_cfg exit [rc = 0x40000021 = 1073741857]
从这里我们看到了sqlex_read_aud_cfg 的入口和出口
其中:
14664       | | | | | | | sqloopenp entry
14692       | | | | | | | sqloopenp exit [rc = 0x860F000A = -2045837302 = SQLO_FNEX]
明显就是1323的问题所在,因为0x860F000A可以map到
Input ZRC string '0x860F000A' parsed as 0x860F000A (-2045837302).

ZRC value to map: 0x860F000A (-2045837302)
        V7 Equivalent ZRC value: 0xFFFFE60A (-6646)

ZRC class :
        Critical Media Error (Class Index: 6)
Component:
        SQLO ; oper system services (Component Index: 15)
Reason Code:
        10 (0x000A)

Identifer:
        SQLO_FNEX
        SQLO_MOD_NOT_FOUND
Identifer (without component):
        SQLZ_RC_FNEX

Description:
        File not found.

Associated information:
        Sqlcode -980

SQLO_MOD_NOT_FOUND显然就是文件没有找到。
然后去fmt文件,从14693开始向上寻找:
14664        entry DB2 UDB oper system services sqloopenp cei (1.3.15.811.2)
        pid 972 tid 288 cpid -1 node 0 sec 26 nsec 14971560
        bytes 79

        Data1         (PD_TYPE_FILE_NAME,47) File name:
        \\LSDB_HA\DB2MSCS-DB2\DB2\security\db2audit.cfg
        Data2         (PD_TYPE_UINT,4) unsigned integer:
        852
        Data3         (PD_TYPE_SINT,4) signed integer:
        1536

14692        exit DB2 UDB oper system services sqloopenp cei (2.3.15.811.2)
        pid 972 tid 288 cpid -1 node 0 sec 26 nsec 16839017
        rc = 0x860F000A = -2045837302 = SQLO_FNEX

14693        data DB2 UDB bsu security sqlex_read_aud_cfg fnc (3.3.92.95.0.20)
        pid 972 tid 288 cpid -1 node 0 sec 26 nsec 16843210 probe 20
        bytes 12

        Data1         (PD_TYPE_DEFAULT,4) Hexdump:
        0A00 0F86                                  ....

可以看到了在打开文件\\LSDB_HA\DB2MSCS-DB2\DB2\security\db2audit.cfg的时候发生了错误。这里大家要注意14664下面紧接着14692,不要被fmt之中的14665到14691之间的内容迷惑。(这是因为OS在等待IO,所以切换到另一个进程去执行其他的东西)
因而现在我们对问题就有一个大概的印象了。
刚开始db2start,然后进入一个Interrupt Waiting,然后去另一个进程/线程开始执行DB2Main,在这之间当系统读取db2audit.cfg文件的时候发生了某些错误,然后系统返回1323错误,退出了Interrupt Waiting,然后db2start退出。
当知道了这些solution离我们就不远了。
我们可以更加深入地从硬件或者OS方面入手分析为什么发生错误,也可以直接重新创建一个好的db2audit.cfg。
不过学计算机的全是懒家伙,既然有了方便的方法我们自然不去找为什么它会出错了,直接db2audit configure reset:
http://publib.boulder.ibm.com/in ... 1%75%64%69%74%22%20
然后db2start一次成功。

结论:
db2trace是个非常强大的工具(前提是你要会看那些和天书一样的行号和function name),用来解决可以重复出现/再现的异常相当简洁明了(最好有明确的error code,如果没有error code,或者是性能调整问题db2trace一点用处也没有,并且发生错误时所作的工作不要过大,比如说load就很难用trace调试,我可不希望花N个小时去读10万行以上或者几十兆的flw文件)。与其花10个小时猜测调试各种可能性不如花2个小时坐下来踏踏实实地读trace。

trace.zip

677.79 KB, 下载次数: 254

招聘 : 数据库管理员
论坛徽章:
1
2010系统架构师大会纪念
日期:2010-09-03 16:39:57
2#
发表于 2006-5-30 10:51 | 只看该作者

使用道具 举报

回复
论坛徽章:
6
生肖徽章:马
日期:2006-11-27 21:29:25玉石琵琶
日期:2007-05-08 07:09:23生肖徽章:虎
日期:2007-09-26 17:01:22生肖徽章:虎
日期:2007-09-26 17:01:52紫蜘蛛
日期:2007-09-26 17:05:48生肖徽章:虎
日期:2007-09-26 17:13:06
3#
发表于 2006-5-30 12:29 | 只看该作者
强啊。能介绍一下常用的这些的区别吗比如trap,dump,evmon,trace,snapshot ,到底什么情况下使用什么方式

使用道具 举报

回复
招聘 : c/c++研发
论坛徽章:
45
技术图书徽章
日期:2014-03-10 14:09:192012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15现任管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
4#
 楼主| 发表于 2006-5-30 18:10 | 只看该作者
trap: 直接将call stack dump到文件中,可以检查到当前的call stack情况,一般适用于hang,或者crash

dump: 用户无法直接读取dump文件,所以忽略

evmon: event monitor,当要监视某种特定事件的时候使用

trace: 小规模操作引起的error code

snapshot: 快照,在解决hang,bad peformance和日常维护时使用

使用道具 举报

回复
论坛徽章:
10
奥运会纪念徽章:自行车
日期:2008-05-13 00:21:59奥运会纪念徽章:摔跤
日期:2008-06-03 20:44:02奥运会纪念徽章:网球
日期:2008-06-15 13:15:35奥运会纪念徽章:马术
日期:2008-07-14 23:19:14奥运会纪念徽章:帆船
日期:2008-08-25 21:22:43
5#
发表于 2006-5-31 16:44 | 只看该作者
请教楼主一个问题
以下是我在Solaris下用prstat查看到的进程.
[B]root@V240 # prstat
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP
16268 db2inst1  139M   95M sleep   50    0   0:00:34 5.6% db2sysc/1
   644 db2inst1  138M   79M sleep   59    0  34:32:14 3.8% db2sysc/1
  9448 root     2488K 1744K run      0    0   0:00:00 0.4% bash/1
12409 db2inst1 1320K 1008K sleep   43    2   0:02:15 0.2% sadc/1
[/B]

在生产系统上有时候某个db2sysc进程会消耗大半的cpu,请问如何知道此进程在做什么操作,比如执行了什么sql语句,访问了什么表,索引等等.(只知道pid)

使用道具 举报

回复
招聘 : c/c++研发
论坛徽章:
45
技术图书徽章
日期:2014-03-10 14:09:192012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15现任管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
6#
 楼主| 发表于 2006-5-31 18:58 | 只看该作者
it seems tunning problem... i'm not the performance tunning man, couldn't help you much on this issue.
maybe you need to contact IBM Consult Line for further assistance....

使用道具 举报

回复
论坛徽章:
10
奥运会纪念徽章:自行车
日期:2008-05-13 00:21:59奥运会纪念徽章:摔跤
日期:2008-06-03 20:44:02奥运会纪念徽章:网球
日期:2008-06-15 13:15:35奥运会纪念徽章:马术
日期:2008-07-14 23:19:14奥运会纪念徽章:帆船
日期:2008-08-25 21:22:43
7#
发表于 2006-6-2 09:40 | 只看该作者
Thank you anyway.

使用道具 举报

回复
论坛徽章:
3
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442011新春纪念徽章
日期:2011-02-18 11:43:342013年新春福章
日期:2013-02-25 14:51:24
8#
发表于 2006-6-5 11:18 | 只看该作者
不错的东西,支持

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2006-02-05 11:03:26数据库板块每日发贴之星
日期:2006-02-10 01:02:41IBM软件技术精英协会成员
日期:2006-12-21 15:37:12
9#
发表于 2006-6-6 11:22 | 只看该作者
能重现的问题,分析trace很有用的。

使用道具 举报

回复
论坛徽章:
2
授权会员
日期:2006-06-08 14:27:232009日食纪念
日期:2009-07-22 09:30:00
10#
发表于 2006-6-7 08:36 | 只看该作者
不错, 多谢

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表