Skip to content

Oracle 排障配置与调整 - 21. page

ORA-39125: Worker unexpected fatal error in KUPW$WORKER.PUT_DDLS while calling DBMS_METADATA.CONVERT [TABLE_STATISTICS]

ORA-39125: Worker unexpected fatal error in KUPW$WORKER.PUT_DDLS while calling DBMS_METADATA.CONVERT [TABLE_STATISTICS]
ORA-06502: PL/SQL: numeric or value error
LPX-00225: end-element tag "HIST_GRAM_LIST_ITEM" does not match start-element tag "EPVALUE"

ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105
ORA-06512: at "SYS.KUPW$WORKER", line 6313

—– PL/SQL Call Stack —–
  object      line  object
  handle    number  name
0x16abfe248     15032  package body SYS.KUPW$WORKER
0x16abfe248      6372  package body SYS.KUPW$WORKER
0x16abfe248     12391  package body SYS.KUPW$WORKER
0x16abfe248      3346  package body SYS.KUPW$WORKER
0x16abfe248      6972  package body SYS.KUPW$WORKER
0x16abfe248      1314  package body SYS.KUPW$WORKER
0x16abe6a48         2  anonymous block

占个坑

Patch Set Update and Critical Patch Update

11.2.0.3版本相关补丁

11.2.0.3 (10404530)
 Description  PSU  SPU(CPU)  Bundle Patch (Windows64bit)  Bundle Patch (Windows32bit)
 OCT2012  14275605 (11.2.0.3.4)  14390252  14613223  14613222
 JUL2012  13923374 (11.2.0.3.3)  14038787  14223718  14223717
 APR2012  13696216 (11.2.0.3.2)  13632717  13885389  13885388
 JAN2012  13343438 (11.2.0.3.1)  13466801  13413168  13413167

 

 
11.2.0.2 (10098816)
 Description  PSU  SPU(CPU)  Bundle Patch (Windows64bit)  Bundle Patch (Windows32bit)
 OCT2012  14275621 (11.2.0.2.8)  14390377  14672268  14672267
 JUL2012  13923804 (11.2.0.2.7)  14038791  14134043  14134042
 APR2012  13696224 (11.2.0.2.6)  13632725  13697074  13697073
 JAN2012  13343424 (11.2.0.2.5)  13343244  13413155  13413154
 OCT2011  12827726 (11.2.0.2.4)  12828071  13038788  13038787
 JUL2011  12419331 (11.2.0.2.3)  12419321  12714463  12714462
 APR2011  11724916 (11.2.0.2.2)  11724984  11896292  11896290
 JAN2011  10248523 (11.2.0.2.1)  N/A  10432053  10432052

 

 
c11.2.0.1
 Description  PSU  CPU  Bundle Patch (Windows64bit)  Bundle Patch (Windows32bit)
 aJUL2011  12419378 (11.2.0.1.6)  12419278  12429529  12429528
 APR2011  11724930 (11.2.0.1.5)  11724991  11731176  11883240
 JAN2011  10248516 (11.2.0.1.4)  10249532  10432045  10432044
 OCT2010  9952216 (11.2.0.1.3)  9952260  10100101  10100100
 JUL2010  9654983 (11.2.0.1.2)  9655013  9736865  9736864
 APR2010  9352237 (11.2.0.1.1)  9369797  N/A  N/A

 

 
11.1.0.7 (6890831)
 Description  PSU  SPU(CPU)  Bundle Patch (Windows64bit)  Bundle Patch (Windows32bit)
 bOCT2012  14275623 (11.1.0.7.13)  14390384  14672313  14672312
 JUL2012  13923474 (11.1.0.7.12)  14038803  14109868  14109867
 APR2012  13621679 (11.1.0.7.11)  13632731  13715810  13715809
 JAN2012  13343461 (11.1.0.7.10)  13343453  13460956  13460955
 OCT2011  12827740 (11.1.0.7.9)  12828097  12914916  12914915
 JUL2011  12419384 (11.1.0.7.8)  12419265  12695278  12695277
 APR2011  11724936 (11.1.0.7.7)  11724999  11741170  11741169
 JAN2011  10248531 (11.1.0.7.6)  10249534  10350788  10350787
 OCT2010  9952228  (11.1.0.7.5)  9952269  9773825  9773817
 JUL2010  9654987 (11.1.0.7.4)  9655014  9869912  9869911
 APR2010  9352179 (11.1.0.7.3)  9369783  9392335  9392331
 JAN2010  9209238 (11.1.0.7.2)  9114072  9166861  9166858
 OCT2009  8833297 (11.1.0.7.1)  8836375  8928977  8928976
 JUL2009  N/A  8534338  8553515  8553512
 APR2009  N/A  8290478  8343070  8343061

 

 
c11.1.0.6
 Description  CPU  Bundle Patch (Windows64bit)  Bundle Patch (Windows32bit)
 JUL2009  8534378  8563155  8563154
 APR2009  8290402  8333657  8333655
 JAN2009  7592335  7631981  7631980
 OCT2008  7375639  7378393  7378392
 JUL2008  7150417  7210197  7210195
 APR2008  6864063  6867180  6867178

 

 
10.2.0.5 (8202632)
 Description  PSU  SPU(CPU)  Bundle Patch (Windows64bit)  Bundle Patch (Windows32bit)  Bundle Patch (WindowsItanium)
 bOCT2012  14275629 (10.2.0.5.9)  14390396  14553358  14553356  14553357
 bJUL2012  13923855 (10.2.0.5.8)  14038805  14134053  14134051  14134052
 bAPR2012  13632743 (10.2.0.5.7)  13632738  13654815  13654814  13870404
 JAN2012  13343471 (10.2.0.5.6)  13343467  13460968  13460967  N/A
 bOCT2011  12827745 (10.2.0.5.5)  12828105  12914913  12914911  N/A
 JUL2011  12419392 (10.2.0.5.4)  12419258  12429524  12429523  N/A
 APR2011  11724962 (10.2.0.5.3)  11725006  12328269  12328268  N/A
 JAN2011  10248542 (10.2.0.5.2)  10249537  10352673  10352672  N/A
 OCT2010  9952230 (10.2.0.5.1)  9952270  10099855  10058290  N/A

 

 
d10.2.0.4 (6810189)
 Description  PSU  SPU(CPU)  Bundle Patch (Windows32bit)  Bundle Patch (Windows64bit)  Bundle Patch (WindowsItanium)
bgOCT2012  14275630 (10.2.0.4.14)  14390410  N/A  N/A  N/A
 bgJUL2012  13923851 (10.2.0.4.13)  14038814  N/A  N/A  N/A
 bAPR2012  12879933 (10.2.0.4.12)   12879926  13928775  13928776  N/A
 JAN2012  12879929 (10.2.0.4.11)  12879912  b13654060  N/A  N/A
 bOCT2011  12827778 (10.2.0.4.10)  12828112  12914908  12914910  12914909
 JUL2011  12419397 (10.2.0.4.9)  12419249  12429519  12429521  12429520
 APR2011  11724977 (10.2.0.4.8)  11725015  12328501  12328503  12328502
 JAN2011  10248636 (10.2.0.4.7)  10249540  10349197  10349200  10349198
 OCT2010  9952234 (10.2.0.4.6)  9952272  10084980  10084982  10084981
 JUL2010  9654991 (10.2.0.4.5)  9655017  9777076  9777078  9777077
 APR2010  9352164 (10.2.0.4.4)  9352191  9393548  9393550  9393549
 JAN2010  9119284 (10.2.0.4.3)  9119226  9169457  9169460  9169458
 OCT2009  8833280 (10.2.0.4.2)  8836308  8880857  8880861  8880858
 JUL2009  8576156 (10.2.0.4.1)  8534387  8559466  8559467  8541782
 APR2009  N/A  8290506  8307237  8307238  8333678
 JAN2009  N/A  7592346  7584866  7584867  N/A
 OCT2008  N/A  7375644  7386320  7386321  N/A
 JUL2008  N/A  7150470  7218676  7218677  N/A

 

 
e10.2.0.3 (5337014)
 Description  CPU (Unix/Linux)  Bundle Patch (Windows32bit)  Bundle Patch (WindowsItanium)  Bundle Patch (Windows64bit)
 JAN2009  7592354  7631956  7631958  7631957
 OCT2008  7369190  7353782  7353784  7353785
 JUL2008  7150622  7252496  7252497  7252498
 APR2008  6864068  6867054  6867055  6867056
 JAN2008  6646853  6637237  6637238  6637239
 OCT2007  6394981  6430171  6430173  6430174
 JUL2007  6079591  6116131  6038242  6116139
 APR2007  5901891  5948242  5916262  5948243
 JAN2007  5881721  5846376  5846377  5846378

 

 
10.2.0.2 (4547817)
 Description  CPU (Unix/Linux)  Bundle Patch (Windows32bit)   Bundle Patch (Windows64bit)  Bundle Patch (WindowsItanium)
 iJAN2009  7592355  N/A  N/A  N/A
 hOCT2008  7375660  N/A  N/A  N/A
 hJUL2008  7154083  N/A  N/A  N/A
 hAPR2008  6864071  N/A  N/A  N/A
 aJAN2008  6646850  N/A  N/A  N/A
 fOCT2007  6394997  6397028  6397030  6397029
 JUL2007  6079588  6013105  6013121  6013118
 APR2007  5901881  5912173  5912179  5912176
 JAN2007  5689957  5716143  5699839  5699824
 OCT2006  5490848  5502226  5500921  5500894
 JUL2006  5225799  5251025  5251028  5251026
 APR2006  5079037  5140461  5140567  5140508

 

 
c10.2.0.1
 Description  CPU (Unix/Linux)  Bundle Patch (Windows32bit)  Bundle Patch (Windows64bit)  Bundle Patch (WindowsItanium)
 APR2007  5901880  N/A  N/A  N/A
 JAN2007  5689937  5695784  5695786  5695785
 OCT2006  5490846  5500927  5500954  5500951
 JUL2006  5225798  5239698  5239701  5239699
 APR2006  5049080  5059238  5059261  5059251
 JAN2006  4751931  4751539  4770480  4751549

 

 
Older Patchsets
 10.1.0.5 (10.1.0.5 PATCH SET FOR ORACLE DATABASE SERVER)
 4505133
 10.1.0.4 (10.1.0.4 PATCH SET FOR ORACLE DATABASE SERVER)
 4163362
 10.1.0.3 (10.1.0.3 PATCH SET FOR ORACLE DATABASE SERVER)
 3761843
 9.2.0.8 (9.2.0.8 PATCH SET FOR ORACLE DATABASE SERVER)
 4547809
 9.2.0.7 (9.2.0.7 PATCH SET FOR ORACLE DATABASE SERVER)
 4163445
 9.2.0.6 (9.2.0.6 PATCH SET FOR ORACLE DATABASE SERVER)
 3948480
 9.2.0.5 (ORACLE 9I DATABASE SERVER RELEASE 2 – PATCH SET 4 VERSION 9.2.0.5.0)
 3501955
 9.2.0.4 (9.2.0.4 PATCH SET FOR ORACLE DATABASE SERVER)
 3095277
 9.2.0.3 (9.2.0.3 PATCH SET FOR ORACLE DATABASE SERVER)
 2761332
 9.2.0.2 (9.2.0.2 PATCH SET FOR ORACLE DATABASE SERVER)
 2632931
 9.0.1.5 (9.0.1.5 PATCHSET)
 3301544
 9.0.1.4 (9.0.1.4 PATCH SET FOR ORACLE DATABASE SERVER)
 2517300
 9.0.1.3 (9.0.1.3. PATCH SET FOR ORACLE DATA SERVER)
 2271678
 8.1.7.4 (8.1.7.4 PATCH SET FOR ORACLE DATA SERVER)
 2376472
 8.1.7.3 (8.1.7.3 PATCH SET FOR ORACLE DATA SERVER)
 2189751
 8.1.7.2 (8.1.7.2.1 PATCH SET FOR ORACLE DATA SERVER)
 1909158

 

6月2号小记

上周三 blog被外国空间供应商 封了。

好像来自于中国的客户都是这个供应商封了~~~无良……气氛 还好我5月26号备份了一次文章

 

上周到现在一共遭遇了5个oracle的故障,4个bug

 

还有2个还没把文档整理好,等把交通厅的事儿完成了再整理上来,越来越忙了。

ORA-00600[kddummy_blkchk][28][2756885][18019][][]

ORA-00600[kddummy_blkchk][28][2756885][18019][][]

 

 

 

—————————————————————-

解决这个故障的思路以及涉及知识点:

 

 1.db_block_checksum原理

 2.tablemove

 3.诊断事件

 4.回滚段管理

 5.rman and dbv

 

这个故障大概的情况是这样的,系统突然关闭(未知原因),再次startup后,稍微过几分钟smon进程自杀

 

等到有人通知时候,跟踪文件都膨胀到16m了,

 

大致内容:

 

Block recovery from logseq 45928, block 55 to scn 1767964025

Tue May 24 17:01:44 2011

Recovery of Online Redo Log: Thread 1 Group 6 Seq 45928 Reading mem 0

  Mem# 0: /oracle2/oracle/oradata/orcl/redo6.log

Block recovery completed at rba 45928.3128.16, scn 0.1767964026

Tue May 24 17:01:45 2011

Errors in file /oracle2/oracle/admin/orcl/bdump/orcl_smon_5751.trc:

ORA-00600: internal error code, arguments: [kddummy_blkchk], [28], [2756885], [18019], [], [], [], []

Tue May 24 17:02:26 2011

Doing block recovery for file 28 block 2756885

Block recovery from logseq 45928, block 55 to scn 1767964025

Tue May 24 17:02:26 2011

Recovery of Online Redo Log: Thread 1 Group 6 Seq 45928 Reading mem 0

  Mem# 0: /oracle2/oracle/oradata/orcl/redo6.log

Block recovery completed at rba 45928.3128.16, scn 0.1767964026

Tue May 24 17:02:26 2011

 

…………………………………….

 

在trc文件里就是smon不断尝试回滚的信息,但是多次尝试回滚失败后自杀

 

开始以为是bug,

经查阅有一个bug相似:

[ID 454909.1]

但是这里是

 

create table foo

      2  ( c1 number)

      3  tablespace default_users;

    create table foo

    *

    ERROR at line 1:

    ORA-00607: Internal error occurred while making a change to a data block

    ORA-00600: internal error code, arguments: [kddummy_blkchk], [36], [432394],

    [18019], [], [], [], []

 

而且出现的原因经oracle验证是9i升级到10203,而且是通过TTS升级方式在assm类型的表里才出现的

 

这里就失望了,这里版本是10204,可以把这个bug排除了

 

下来根据trc的信息看到smon一直在尝试不断回滚,那么就把回滚表空间设置为手动管理,并设置_corrupted_rollback_segments参数到_syssmu20$,追加到50也报错

 

重试后还是报这个错误。

 

然后尝试设置10513事件中止smon回滚,重试后依然报这个错误

 

这不是坏块,但是还是忍不住对28号文件做了一个DBV,但是检测并未发现坏块。

 

绝望之余,死马当活马医,尝试了blockrecover ,明明知道还是会报这个错。

 

然就就尝试了下面的办法:

这个办法来源blog

http://www.oracledatabase12g.com/message-board

通过设置DB_BLOCK_CHECKSUM为OFF来绕过,具体方法如下:

 

alter system set DB_BLOCK_CHECKSUM = OFF;

 

将corrupt block所在数据表,如你这里的NR_AIN_SMP_18_R 执行move操作 —- 报错的28是值得28号文件,2756885指的28号文件里的块号,根据块号通过dba_extents就可以找到对象了

 

alter table NARI.NR_AIN_SMP_18_R move;

 

之后重建该表上的所有索引

 

alter index XXX rebuild online tablespace ***;

 

问题解决。原来是块头的sum和记录的不符合,导致oracle在执行checksum的时候找不到对应的undo恢复而不断报这个块错误。

 

诊断事件:hang 诊断

2011 0428 /*luda*/
一. trc文件以及日志文件

在$ORACLE_BASE/admin/ORACLE_SID/下面有不同类别的跟踪文件
alert.log文件
system log文件 /var/adm/messages

二. hang situations
.what’s hang?
1.查看CPU的使用情况,作为参考指标,一般hang的cpu的使用率是不高的(至少oracle进程的cpu使用率很低)
2.查看进程是否在等待一些不存在的进程。
hang的诊断办法:

1.system/进程 诊断事件
2.从v$session_wait,v$lock,v$latch,v$latchholder
3.hanganalyze event

(1)
V$SESSION_WAITdisplays the resources or events for which active sessions are waiting.

在诊断数据库hang的时候,v$session_wait可以提供数据库级别有用的信息
从v$session_wait字段可以找到有用的信息

sid                  session id(v$session)
seq#                 sequeue number of the wait for this session
event                the event that the session is waiting for just finished for waiting for
wait_time            the time wait for the session
second_in_wait       the approximate time in seconds at the start of the wait state :
                                                                                  
                                                                                   0 – WAITING (the session is currently waiting)

                                                                                   -2 – WAITED UNKNOWN TIME (duration of last wait is unknown)

                                                                                   -1 – WAITED SHORT TIME (last wait <1/100th of a second)

                                                                                   >0 – WAITED KNOWN TIME (WAIT_TIME = duration of last wait)
示例:

SQL> set linesize 2000
SQL> select sid,seq#,event,wait_time,seconds_in_wait from v$session_wait;

       SID       SEQ# EVENT                                                             WAIT_TIME SECONDS_IN_WAIT
———- ———- —————————————————————- ———- —————
       138          1 jobq slave wait                                                           0              25
       149         68 Streams AQ: waiting for time management or cleanup tasks                  0          575891
       150         35 Streams AQ: qmn slave idle wait                                           0           65739
       151          6 Streams AQ: qmn coordinator idle wait                                     0         1863190
       155      43903 rdbms ipc message                                                         0              57
       156      51563 rdbms ipc message                                                         0             208
       159         31 SQL*Net message to client                                                -1               0
       160         10 rdbms ipc message                                                         0          634929
       161       5670 rdbms ipc message                                                         0            1552
       162      59394 rdbms ipc message                                                         0              26
       163         11 rdbms ipc message                                                         0          230558

       SID       SEQ# EVENT                                                             WAIT_TIME SECONDS_IN_WAIT
———- ———- —————————————————————- ———- —————
       164       5051 smon timer                                                                0            3419
       165      62808 rdbms ipc message                                                         0               0
       166      14978 rdbms ipc message                                                         0              21
       167      23334 rdbms ipc message                                                         0              21
       168         20 rdbms ipc message                                                         0           59201
       169      58551 rdbms ipc message                                                         0              24
       170          8 pmon timer                                                                0         1863202

(2)hanganaylyze event
hang诊断事件一般用在数据库hang住或者死锁的情况下
SQL> alter session set events ‘immediate trace name hanganalyze level 4’;

Session altered.

SQL> @gettrc

TRACE_FILE_NAME
—————————————————
/oracle/admin/znjtepp/udump/znjtepp_ora_18886.trc

马上就可以找到跟踪文件在udump目录下的 18886的文件
  –用hanganalyze 监听oracle – 60错误

    在init文件中加入
    event=“60 trace name hanganalyze level 5”
  –oracle debug的使用
  这里handanalyze有6个级别:
  10   全部的进程信息导出,伴随大量的数据,这个一般不被采用
  5    导出全部和等待事件有关的进程
  4    导出等待事件的分支节点
  3    导出被认为是hang的进程
  2    低限度的导出信息
  1    只导出少部分数据
 
loop的诊断办法

系统的诊断dump是非常有帮助于诊断oracle的loop
操作示范:
(1)系统状态转储
SQL> alter session set events ‘immediate trace name systemstate level 10’;

Session altered.
SQL> @gettrc

TRACE_FILE_NAME
——————————————————————————–
/oracle/admin/znjtepp/udump/znjtepp_ora_28508.trc

(2)进程状态转储
SQL> alter session set events ‘immediate trace name processstate level 10’;

Session altered.

SQL> @gettrc

TRACE_FILE_NAME
——————————————————————————–
/oracle/admin/znjtepp/udump/znjtepp_ora_28508.trc

或者

oradebug  setospid <pid>
oradebug dump systemstate 10
下来就是分析trc文件了,当然为了工作便捷,ass.awk可以快速列出当前的等待事件