oracle 600 session,记一次ORA-600[4042]故障的处理
【IT168 技術文檔】一套運行在Linux下的Oracle 9.2.0.4的庫,出現了大量的ORA-600[4042]錯誤。
ORA-00600: internal error code, arguments: [4042], [31760], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4042], [31760], [], [], [], [], [], []
關于ORA-600錯誤,第一個參數,也就是第一個方括號中的標識,通常可以用來定位Oracle錯誤發生的內部模塊。如果是數字,最高位通常是指一個大的模塊,而接下來的一位是小的模塊。比如這里[4042],4000,最高位是4,是Transaction Layer(事務層),而次高位是0,Transaction Undo。
針對這個錯誤,很明顯是跟事務有關。在處理的時候,第一反應肯定是檢查TRACE文件:
view plaincopy to clipboardprint?
ORA-00600: internal error code, arguments: [4042], [31760], [], [], [], [], [], []
Current SQL statement for this session:
INSERT INTO XXX .....
....
----- 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 ? BFFF90A4 ?
A16D886 ?
ksfdmp()+14 call ksedmp()+0 3 ? BFFF91B0 ? 98585B4 ?
AD58FA0 ? 3 ? A4B929C ?
kgeriv()+188 call ksfdmp()+0 AD58FA0 ? 3 ?
kgeasi()+108 call kgeriv()+0 AD58FA0 ? AD9AFC0 ? FCA ? 1 ?
BFFF91EC ?
ktugusc()+787 call kgeasi()+0 AD58FA0 ? AD9AFC0 ? FCA ? 2 ?
1 ? 4 ? 7C10 ?
ktuswr()+2049 call ktugusc()+0 BFFF9394 ? D ? 1 ? 0 ? 0 ?
0 ? 0 ? 0 ?
ktusmous_online_und call ktuswr()+0 D ? 0 ? 0 ? 0 ? 0 ? 1 ?
oseg()+898
ktusmaus_add_us()+3 call ktusmous_online_und 1 ? 1 ? BFFF94F8 ? 1 ?
27 oseg()+0
ktubnd()+7646 call ktusmaus_add_us()+0 BFFF9CEC ? 0 ?
ktuchg()+581 call ktubnd()+0 BFFF9678 ? 8468F4F0 ?
BFFF9CEC ? 0 ?
ktbchg2()+318 call ktuchg()+0 2 ? 89E91A08 ? 1 ? B7BC3484 ?
B7BC348C ? AD7BECC ?
BFFF9CEC ? AD7BE38 ? 0 ? 0 ?
kdtchg()+1406 call ktbchg2()+0 0 ? 89E91A08 ? B7BC3484 ?
B7BC348C ? AD7BECC ?
BFFF9CE4 ? AD7BE38 ? 0 ? 0 ?
kdtwrp()+2272 call kdtchg()+0 B7BA8638 ? B7BC3484 ?
B7BC348C ? AD7BECC ?
AD7BE38 ? 1 ? 1C6 ?
kdtInsRow()+1724 call kdtwrp()+0 B7BA8638 ? B7BA0000 ?
60DD40A4 ? B7BC31AC ? C ?
2C88E28 ?
insrow()+275 call kdtInsRow()+0 B7BA8638 ? 89E95354 ?
89E950EC ? B7BA8418 ?
9840000 ? AD589E8 ?
insdrv()+2566 call insrow()+0 B7BA8638 ? BFFF9FEC ? 0 ?
insexe()+1665 call insdrv()+0 B7BA8638 ? 89E950EC ? 0 ?
B7BA8418 ? 0 ? 0 ?
opiexe()+10831 call insexe()+0 89E95354 ? BFFFA220 ?
opipls()+6068 call opiexe()+0 4 ? 3 ? BFFFA98C ?
opiodr()+5238 call kjxsupd()+987 66 ? 6 ? BFFFB64C ?
rpidrus()+140 call opiodr()+0 66 ? 6 ? BFFFB64C ? 5 ?
skgmstack()+211 call rpidrus()+0 BFFFB028 ? 10 ? BFFFB040 ?
BFFFB3E4 ? BFFFB028 ?
899782A ?
rpidru()+93 call skgmstack()+0 BFFFB040 ? AD5A760 ? F618 ?
899782A ? BFFFB028 ?
rpiswu2()+777 call rpidru()+0 BFFFB3E4 ? 40 ? 40 ? 0 ?
40C ? A4B929C ?
rpidrv()+1452 call rpiswu2()+0 837327D8 ? 40 ? BFFFB4E8 ?
2 ? BFFFB508 ? 40 ?
psddr0()+113 call rpidrv()+0 5 ? 66 ? BFFFB64C ? 3A ?
AD5907C ? BFFFB7F8 ?
psdnal()+173 call psddr0()+0 5 ? 66 ? BFFFB64C ? 30 ? 20 ?
B7BBB6B8 ?
pevm_EXECC()+458 call psdnal()+0 BFFFC844 ? BFFFC834 ?
AD53500 ? B7BBB6B8 ?
856EA21C ? 856EA21C ?
pfrrun()+31877 call pevm_EXECC()+0 B7BBF19C ? AD9E4C0 ? 20 ?
peicnt()+291 call pfrrun()+0 B7BBF19C ? 0 ? AD9E31C ?
ADA0464 ? AD5907C ?
BFFFCC10 ?
kkxexe()+451 call peicnt()+0 BFFFC844 ? B7BBF19C ? 2 ?
AD9954C ? 5001AA24 ? 0 ?
opiexe()+12624 call kkxexe()+0 B7BBD068 ? B7BB022C ?
AD53504 ? B7BBD068 ? 0 ? 0 ?
opiall0()+4435 call opiexe()+0 4 ? 3 ? BFFFD064 ?
opial7()+441 call opiall0()+0 3E ? 22 ? BFFFD164 ?
BFFFDC0C ? BFFFD1EC ? 0 ?
opiodr()+5238 call kjxsupd()+987 47 ? F ? BFFFDC0C ?
ttcpip()+2124 call opiodr()+0 47 ? F ? BFFFDC0C ? 1 ?
Cannot find symbol in /lib/tls/libc.so.6.
opitsk()+1635 call ttcpip()+0 AD53500 ? 47 ? BFFFDC0C ? 0 ?
BFFFE4E4 ? BFFFE4E0 ?
opiino()+602 call opitsk()+0 0 ? 0 ? AD53500 ? AD8D7B8 ?
83 ? 0 ?
opiodr()+5238 call kjxsupd()+987 3C ? 4 ? BFFFF8B0 ?
opidrv()+517 call opiodr()+0 3C ? 4 ? BFFFF8B0 ? 0 ?
sou2o()+25 call opidrv()+0 3C ? 4 ? BFFFF8B0 ?
main()+182 call sou2o()+0 BFFFF894 ? 3C ? 4 ?
BFFFF8B0 ? 1 ? 0 ?
00622DE3 call main()+0 2 ? BFFFF954 ? BFFFF960 ?
5FBC66 ? 734FF4 ? 0 ?
ORA-00600: internal error code, arguments: [4042], [31760], [], [], [], [], [], []
Current SQL statement for this session:
INSERT INTO XXX .....
....
----- 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 ? BFFF90A4 ?
A16D886 ?
ksfdmp()+14 call ksedmp()+0 3 ? BFFF91B0 ? 98585B4 ?
AD58FA0 ? 3 ? A4B929C ?
kgeriv()+188 call ksfdmp()+0 AD58FA0 ? 3 ?
kgeasi()+108 call kgeriv()+0 AD58FA0 ? AD9AFC0 ? FCA ? 1 ?
BFFF91EC ?
ktugusc()+787 call kgeasi()+0 AD58FA0 ? AD9AFC0 ? FCA ? 2 ?
1 ? 4 ? 7C10 ?
ktuswr()+2049 call ktugusc()+0 BFFF9394 ? D ? 1 ? 0 ? 0 ?
0 ? 0 ? 0 ?
ktusmous_online_und call ktuswr()+0 D ? 0 ? 0 ? 0 ? 0 ? 1 ?
oseg()+898
ktusmaus_add_us()+3 call ktusmous_online_und 1 ? 1 ? BFFF94F8 ? 1 ?
27 oseg()+0
ktubnd()+7646 call ktusmaus_add_us()+0 BFFF9CEC ? 0 ?
ktuchg()+581 call ktubnd()+0 BFFF9678 ? 8468F4F0 ?
BFFF9CEC ? 0 ?
ktbchg2()+318 call ktuchg()+0 2 ? 89E91A08 ? 1 ? B7BC3484 ?
B7BC348C ? AD7BECC ?
BFFF9CEC ? AD7BE38 ? 0 ? 0 ?
kdtchg()+1406 call ktbchg2()+0 0 ? 89E91A08 ? B7BC3484 ?
B7BC348C ? AD7BECC ?
BFFF9CE4 ? AD7BE38 ? 0 ? 0 ?
kdtwrp()+2272 call kdtchg()+0 B7BA8638 ? B7BC3484 ?
B7BC348C ? AD7BECC ?
AD7BE38 ? 1 ? 1C6 ?
kdtInsRow()+1724 call kdtwrp()+0 B7BA8638 ? B7BA0000 ?
60DD40A4 ? B7BC31AC ? C ?
2C88E28 ?
insrow()+275 call kdtInsRow()+0 B7BA8638 ? 89E95354 ?
89E950EC ? B7BA8418 ?
9840000 ? AD589E8 ?
insdrv()+2566 call insrow()+0 B7BA8638 ? BFFF9FEC ? 0 ?
insexe()+1665 call insdrv()+0 B7BA8638 ? 89E950EC ? 0 ?
B7BA8418 ? 0 ? 0 ?
opiexe()+10831 call insexe()+0 89E95354 ? BFFFA220 ?
opipls()+6068 call opiexe()+0 4 ? 3 ? BFFFA98C ?
opiodr()+5238 call kjxsupd()+987 66 ? 6 ? BFFFB64C ?
rpidrus()+140 call opiodr()+0 66 ? 6 ? BFFFB64C ? 5 ?
skgmstack()+211 call rpidrus()+0 BFFFB028 ? 10 ? BFFFB040 ?
BFFFB3E4 ? BFFFB028 ?
899782A ?
rpidru()+93 call skgmstack()+0 BFFFB040 ? AD5A760 ? F618 ?
899782A ? BFFFB028 ?
rpiswu2()+777 call rpidru()+0 BFFFB3E4 ? 40 ? 40 ? 0 ?
40C ? A4B929C ?
rpidrv()+1452 call rpiswu2()+0 837327D8 ? 40 ? BFFFB4E8 ?
2 ? BFFFB508 ? 40 ?
psddr0()+113 call rpidrv()+0 5 ? 66 ? BFFFB64C ? 3A ?
AD5907C ? BFFFB7F8 ?
psdnal()+173 call psddr0()+0 5 ? 66 ? BFFFB64C ? 30 ? 20 ?
B7BBB6B8 ?
pevm_EXECC()+458 call psdnal()+0 BFFFC844 ? BFFFC834 ?
AD53500 ? B7BBB6B8 ?
856EA21C ? 856EA21C ?
pfrrun()+31877 call pevm_EXECC()+0 B7BBF19C ? AD9E4C0 ? 20 ?
peicnt()+291 call pfrrun()+0 B7BBF19C ? 0 ? AD9E31C ?
ADA0464 ? AD5907C ?
BFFFCC10 ?
kkxexe()+451 call peicnt()+0 BFFFC844 ? B7BBF19C ? 2 ?
AD9954C ? 5001AA24 ? 0 ?
opiexe()+12624 call kkxexe()+0 B7BBD068 ? B7BB022C ?
AD53504 ? B7BBD068 ? 0 ? 0 ?
opiall0()+4435 call opiexe()+0 4 ? 3 ? BFFFD064 ?
opial7()+441 call opiall0()+0 3E ? 22 ? BFFFD164 ?
BFFFDC0C ? BFFFD1EC ? 0 ?
opiodr()+5238 call kjxsupd()+987 47 ? F ? BFFFDC0C ?
ttcpip()+2124 call opiodr()+0 47 ? F ? BFFFDC0C ? 1 ?
Cannot find symbol in /lib/tls/libc.so.6.
opitsk()+1635 call ttcpip()+0 AD53500 ? 47 ? BFFFDC0C ? 0 ?
BFFFE4E4 ? BFFFE4E0 ?
opiino()+602 call opitsk()+0 0 ? 0 ? AD53500 ? AD8D7B8 ?
83 ? 0 ?
opiodr()+5238 call kjxsupd()+987 3C ? 4 ? BFFFF8B0 ?
opidrv()+517 call opiodr()+0 3C ? 4 ? BFFFF8B0 ? 0 ?
sou2o()+25 call opidrv()+0 3C ? 4 ? BFFFF8B0 ?
main()+182 call sou2o()+0 BFFFF894 ? 3C ? 4 ?
BFFFF8B0 ? 1 ? 0 ?
00622DE3 call main()+0 2 ? BFFFF954 ? BFFFF960 ?
5FBC66 ? 734FF4 ? 0 ?
從SQL來看,是個簡單的INSERT語句,那么就涉及到事務處理了。
從call stack來看,在stack頂端,下面的幾行表明錯誤應該是跟回滾段有關。
# ktugusc()+787 call kgeasi()+0 AD58FA0 ? AD9AFC0 ? FCA ? 2 ?
# 1 ? 4 ? 7C10 ?
# ktuswr()+2049 call ktugusc()+0 BFFF9394 ? D ? 1 ? 0 ? 0 ?
# 0 ? 0 ? 0 ?
# ktusmous_online_und call ktuswr()+0 D ? 0 ? 0 ? 0 ? 0 ? 1 ?
# oseg()+898
# ktusmaus_add_us()+3 call ktusmous_online_und 1 ? 1 ? BFFF94F8 ? 1 ?
# 27 oseg()+0
# ktugusc()+787 call kgeasi()+0 AD58FA0 ? AD9AFC0 ? FCA ? 2 ?
# 1 ? 4 ? 7C10 ?
# ktuswr()+2049 call ktugusc()+0 BFFF9394 ? D ? 1 ? 0 ? 0 ?
# 0 ? 0 ? 0 ?
# ktusmous_online_und call ktuswr()+0 D ? 0 ? 0 ? 0 ? 0 ? 1 ?
# oseg()+898
# ktusmaus_add_us()+3 call ktusmous_online_und 1 ? 1 ? BFFF94F8 ? 1 ?
# 27 oseg()+0
這一步的分析其實很快,基本上憑call stack中的函數名字來判斷。由于當時有其他的事情在處理,同時也不在這套庫的現場,就讓DBA重新創建了一個UNDO表空間,并將UNDO_TABLESPACE參數設置為新的UNDO表空間名字,錯誤就不在出現。
總結
以上是生活随笔為你收集整理的oracle 600 session,记一次ORA-600[4042]故障的处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 雷军转发UP主硬核改装:小米空气净化器改
- 下一篇: ITX迷你机没有更好的选择了!AMD R