dblink ora-00600 ora-02072 ora-02063

某汽车集团数据库环境为linux5.8,oracle 11g rac 11.2.0.4。dblink所连接的数据库环境未知,业务系统在通过dblink进行数据更新时在出现如下错误:

ORA-00600: internal error code, arguments: [ORA-00600: internal error code, arguments: [kghstack_underflow_internal_1], [0x1103965E0], [], [], [], [], [], []ORA-02072: distributed database network protocol mismatch], [], [], [], [], [], [], [], [], [], [========= Dump for incident 264681 (ORA 600 [ORA-00600: internal error code, arguments: [kghstack_underflow_internal_1], [0x1103965E0], [], [], [], [], [], []ORA-]) ========

检查相关的错误信息跟踪文件tsp1_ora_23612_i264681.trc有如下信息:

Dump continued from file: /u01/app/oracle/diag/rdbms/tsp/tsp1/trace/tsp1_ora_23612.trcORA-00600: internal error code, arguments: [ORA-00600: internal error code, arguments: [kghstack_underflow_internal_1], [0x1103965E0], [], [], [], [], [], []ORA-02072: distributed database network protocol mismatch], [], [], [], [], [], [], [], [], [], [========= Dump for incident 264681 (ORA 600 [ORA-00600: internal error code, arguments: [kghstack_underflow_internal_1], [0x1103965E0], [], [], [], [], [], []ORA-]) ========

*** 2015-01-18 17:55:15.413dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0)----- Current SQL Statement for this session (sql_id=43ws7jmatt2yf) -----
MERGE INTO xxx@DBLINK1 R USING (SELECT DISTINCT SUBSTR(A.VIN,LENGTH(VIN)-7,LENGTH(A.VIN)) AS VIN,A.OFFSET_LON,A.OFFSET_LAT,A.UTC,A.ADDRESS,A.MILEAGE, B.ORDERNO,C.STATUSNAME,C.STATUSFLAG FROM aaa@dblink2 A,b B,c C,d@dblink3 D WHERE LENGTH(VIN)>7 AND SUBSTR(A.VIN,LENGTH(VIN)-7,8)= B.CHASSISNUMBER AND B.CARSTATUS = C.STATUSFLAG AND A.VIN =D.LICENSEPLATE AND D.ISLOGOUT = 0 AND SUBSTR(B.ORDERNO,0,2) IN ('31','37','40') AND C.STATUSFLAG < 6 AND A.ADDRESS IS NOT NULL) D ON (R.ROW_ID='ssi'||D.VIN) WHEN MATCHED THEN UPDATE SET LONGITUDE=D.OFFSET_LON,DIMENSION=D.OFFSET_LAT,GPS_TIME = D.UTC,GPS_LOCATION=D.ADDRESS,GPS_LOCATION_SPLIT=D.ADDRESS,STATUS=D.STATUSNAME,GPS_MILEAGE=D.MILEAGE,GAUGE_MILEAGE='',CREATED_BY = 'ssi',LAST_UPD_BY='ssi',ORDER_NO=D.ORDERNO WHEN NOT MATCHED THEN INSERT (ROW_ID,CHASSIS_NO,LONGITUDE,DIMENSION,GPS_TIME,GPS_LOCATION,GPS_LOCATION_SPLIT,STATUS,GPS_MILEAGE,GAUGE_MILEAGE,CREATED_BY,LAST_UPD_BY,ORDER_NO) VALUES('ssi'||D.VIN,D.VIN,D.OFFSET_LON,D.OFFSET_LAT,D.UTC,D.ADDRESS,D.ADDRESS,D.STATUSNAME,D.MILEAGE,'','ssi','ssi',D.ORDERNO)----- PL/SQL Stack -----
----- PL/SQL Call Stack -----
  object      line  object
  handle    number  name0x2d3112bc0        33  package body DFCP.DFVL_DBLINK10x2d92769c8         1  anonymous block

----- Call Stack Trace -----
calling              call     entry                argument values in hexlocation             type     point                (? means dubious value)-------------------- -------- -------------------- ----------------------------
skdstdst()+41        call     kgdsdst()            000000000 ? 000000000 ?
                                                   7FFFD889F8E0 ? 7FFFD889F9B8 ?
                                                   7FFFD88A4460 ? 000000002 ?
ksedst1()+103        call     skdstdst()           000000000 ? 000000000 ?
                                                   7FFFD889F8E0 ? 7FFFD889F9B8 ?
                                                   7FFFD88A4460 ? 000000002 ?
ksedst()+39          call     ksedst1()            000000000 ? 000000001 ?
                                                   7FFFD889F8E0 ? 7FFFD889F9B8 ?
                                                   7FFFD88A4460 ? 000000002 ?
dbkedDefDump()+2746  call     ksedst()             000000000 ? 000000001 ?
                                                   7FFFD889F8E0 ? 7FFFD889F9B8 ?
                                                   7FFFD88A4460 ? 000000002 ?
ksedmp()+41          call     dbkedDefDump()       000000003 ? 000000002 ?
                                                   7FFFD889F8E0 ? 7FFFD889F9B8 ?
                                                   7FFFD88A4460 ? 000000002 ?
ksfdmp()+69          call     ksedmp()             000000003 ? 000000002 ?
                                                   7FFFD889F8E0 ? 7FFFD889F9B8 ?
                                                   7FFFD88A4460 ? 000000002 ?
dbgexPhaseII()+1764  call     ksfdmp()             000000003 ? 000000002 ?
                                                   7FFFD889F8E0 ? 7FFFD889F9B8 ?
                                                   7FFFD88A4460 ? 000000002 ?
dbgexProcessError()  call     dbgexPhaseII()       2B585AE35730 ? 2B585AE3E7F0 ?
+2680                                              7FFFD88A8F38 ? 7FFFD889F9B8 ?
                                                   7FFFD88A4460 ? 000000002 ?
dbgeExecuteForError  call     dbgexProcessError()  2B585AE35730 ? 2B585AE3E7F0 ?
()+88                                              000000001 ? 000000000 ?
                                                   7FFFD88A4460 ? 000000002 ?
dbgePostErrorKGE()+  call     dbgeExecuteForError  2B585AE35730 ? 2B585AE3E7F0 ?
2136                          ()                   000000001 ? 000000001 ?
                                                   000000000 ? 000000002 ?
dbkePostKGE_kgsf()+  call     dbgePostErrorKGE()   00C0CC9E0 ? 2B585B260040 ?
71                                                 000000258 ? 000000001 ?
                                                   000000000 ? 000000002 ?
kgesev()+280         call     dbkePostKGE_kgsf()   00C0CC9E0 ? 2B585B260040 ?
                                                   000000258 ? 000000001 ?
                                                   000000000 ? 000000002 ?
ksesec1()+170        call     kgesev()             00C0CC9E0 ? 2B585B260040 ?
                                                   000000258 ? 000000001 ?
                                                   7FFFD88A9AE0 ? 000000002 ?
npierr()+878         call     ksesec1()            00C0CC9E0 ? 000000001 ?
                                                   0000000AC ? 2B585B49DDE0 ?
                                                   7FFFD88A9040 ? 00000000A ?
kpnerr()+240         call     npierr()             2B585B49C570 ? 000000258 ?
                                                   000000000 ? 00000005E ?
                                                   7FFFD88A9040 ? 2B585B49EE90 ?
kpnpst()+276         call     kpnerr()             2B585B49C570 ? 000000258 ?
                                                   000000000 ? 00000005E ?
                                                   7FFFD88ACA68 ? 2B585B49EE90 ?
upirtrc()+1919       call     kpnpst()             7FFFD88ACBE0 ? 000000258 ?
                                                   000000023 ? 000000000 ?
                                                   7FFFD88ACA68 ? 2B585B49EE90 ?
kpurcsc()+98         call     upirtrc()            7FFFD88ACBE0 ? 000000258 ?
                                                   000000023 ? 000000000 ?
                                                   7FFFD88ACA68 ? 2B585B4F4B10 ?
kpuexec()+10790      call     kpurcsc()            7FFFD88ACBE0 ? 000000258 ?
                                                   000000023 ? 000000000 ?
                                                   7FFFD88ACA68 ? 2B585B4F4B10 ?
kpnexe()+1517        call     kpuexec()            7FFFD88ACBE0 ? 000000258 ?
                                                   7FFFD88ACA60 ? 000000000 ?
                                                   7FFFD88ACA68 ? 7FFFD88B07B8 ?
opiexe()+32658       call     kpnexe()             2B585B2AF000 ? 2B585B4F4B10 ?
                                                   2B585B507EB8 ? 2B585B19A950 ?
                                                   000000001 ? 1000000000 ?
opipls()+2164        call     opiexe()             000000004 ? 000000005 ?
                                                   2B585B507EB8 ? 2B585B19A950 ?
                                                   000000001 ? 1000000000 ?
opiodr()+917         call     opipls()             000000066 ? 000000005 ?
                                                   2B585B507EB8 ? 2B585B19A950 ?
                                                   000000001 ? 1000000000 ?
rpidrus()+211        call     opiodr()             000000066 ? 000000007 ?
                                                   7FFFD88B3960 ? 2B585B19A950 ?
                                                   000000001 ? 1000000000 ?
skgmstack()+148      call     rpidrus()            7FFFD88B3338 ? 000000007 ?
                                                   7FFFD88B3960 ? 2B585B19A950 ?
                                                   000000001 ? 1000000000 ?
rpiswu2()+690        call     skgmstack()          7FFFD88B3310 ? 00C0CC600 ?
                                                   00000F618 ? 009698A9C ?
                                                   7FFFD88B3338 ? 1000000000 ?
rpidrv()+1327        call     rpiswu2()            2C511BF60 ? 00000006D ?
                                                   2C511BFE4 ? 000000002 ?
                                                   7FFFD88B3338 ? 1000000000 ?
psddr0()+473         call     rpidrv()             00000000B ? 000000066 ?
                                                   7FFFD88B3960 ? 000000038 ?
                                                   7FFFD88B3338 ? 1000000000 ?
psdnal()+457         call     psddr0()             00000000B ? 000000066 ?
                                                   7FFFD88B3960 ? 000000030 ?
                                                   7FFFD88B3338 ? 1000000000 ?
pevm_EXECC()+314     call     psdnal()             7FFFD88B50E0 ? 7FFFD88B52F0 ?
                                                   7FFFD88B3960 ? 2B585B2A2AE8 ?
                                                   22EC69508 ? 1000000000 ?
pfrinstr_EXECC()+80  call     pevm_EXECC()         2B585B1D5CA0 ? 2B585B409640 ?
                                                   000000020 ? 2B585B2A2AE8 ?
                                                   22EC69508 ? 1000000000 ?
pfrrun_no_tool()+63  call     pfrinstr_EXECC()     2B585B2A7258 ? 21D5E8DB4 ?
                                                   2B585B2A72C8 ? 2B585B2A2AE8 ?
                                                   22EC69508 ? 2B5800000020 ?
pfrrun()+627         call     pfrrun_no_tool()     2B585B2A7258 ? 21D5E8DB4 ?
                                                   2B585B2A72C8 ? 2B585B2A2AE8 ?
                                                   22EC69508 ? 2B5800000020 ?
plsql_run()+649      call     pfrrun()             2B585B2A7258 ? 21D5E8DB4 ?
                                                   2B585B2A72C8 ? 7FFFD88B50E0 ?
                                                   22EC69508 ? 2B5800000020 ?
peicnt()+302         call     plsql_run()          2B585B2A7258 ? 21D5E8DB4 ?
                                                   2B585B2A72C8 ? 7FFFD88B50E0 ?
                                                   22EC69508 ? 2B5800000020 ?
kkxexe()+525         call     peicnt()             7FFFD88B50E0 ? 2B585B2A7258 ?
                                                   2B585B2A72C8 ? 7FFFD88B50E0 ?
                                                   22EC69508 ? 000000000 ?
opiexe()+18001       call     kkxexe()             2B585B2ABF80 ? 2B585B2A7258 ?
                                                   2B585B2A72C8 ? 7FFFD88B50E0 ?
                                                   22EC69508 ? 000000000 ?
kpoal8()+2118        call     opiexe()             000000049 ? 000000003 ?
                                                   2B585B2A72C8 ? 7FFFD88B50E0 ?
                                                   22EC69508 ? 000000000 ?
opiodr()+917         call     kpoal8()             00000005E ? 000000003 ?
                                                   2B585B2A72C8 ? 7FFFD88B50E0 ?
                                                   22EC69508 ? 000000000 ?
ttcpip()+2183        call     opiodr()             00000005E ? 00000001C ?
                                                   7FFFD88B9910 ? 7FFFD88B50E0 ?
                                                   22EC69508 ? 000000000 ?
opitsk()+1710        call     ttcpip()             00C0EA630 ? 00999BA90 ?
                                                   7FFFD88B9910 ? 000000000 ?
                                                   7FFFD88B9368 ? 7FFFD88B990C ?
opiino()+969         call     opitsk()             00C0EA638 ? 000000000 ?
                                                   7FFFD88B9910 ? 000000000 ?
                                                   7FFFD88B9368 ? 7FFFD88B990C ?
opiodr()+917         call     opiino()             00000003C ? 000000004 ?
                                                   7FFFD88BB108 ? 000000000 ?
                                                   7FFFD88B9368 ? 7FFFD88B990C ?
opidrv()+570         call     opiodr()             00000003C ? 000000004 ?
                                                   7FFFD88BB108 ? 000000000 ?
                                                   7FFFD88B9368 ? 7FFFD88B990C ?
sou2o()+103          call     opidrv()             00000003C ? 000000004 ?
                                                   7FFFD88BB108 ? 000000000 ?
                                                   7FFFD88B9368 ? 7FFFD88B990C ?
opimai_real()+133    call     sou2o()              7FFFD88BB0E0 ? 00000003C ?
                                                   000000004 ? 7FFFD88BB108 ?
                                                   7FFFD88B9368 ? 7FFFD88B990C ?
ssthrdmain()+265     call     opimai_real()        000000002 ? 7FFFD88BB2D0 ?
                                                   000000004 ? 7FFFD88BB108 ?
                                                   7FFFD88B9368 ? 7FFFD88B990C ?
main()+201           call     ssthrdmain()         000000002 ? 7FFFD88BB2D0 ?
                                                   000000001 ? 000000000 ?
                                                   7FFFD88B9368 ? 7FFFD88B990C ?
__libc_start_main()  call     main()               000000002 ? 7FFFD88BB478 ?
+244                                               000000001 ? 000000000 ?
                                                   7FFFD88B9368 ? 7FFFD88B990C ?
_start()+41          call     __libc_start_main()  000A29108 ? 000000002 ?
                                                   7FFFD88BB468 ? 000000000 ?
                                                   7FFFD88B9368 ? 7FFFD88B990C ?


--------------------- Binary Stack Dump ---------------------

在执行如下语句时报错:

merge into xxx@dblink1 r

using (select distinct substr(a.vin, length(vin) - 7, length(a.vin)) as vin,

                       a.offset_lon,

                       a.offset_lat,

                       a.utc,

                       a.address,

                       a.mileage,

                       b.orderno,

                       c.statusname,

                       c.statusflag

         from aaaa@dblink2 a,

              b                 b,

              c          c,

              dddd@dblink3    d

        where length(vin) > 7

          and substr(a.vin, length(vin) - 7, 8) = b.chassisnumber

          and b.carstatus = c.statusflag

          and a.vin = d.licenseplate

          and d.islogout = 0

          and substr(b.orderno, 0, 2) in ('31', '37', '40')

          and c.statusflag < 6

          and a.address is not null) d

on (r.row_id = 'ssi' || d.VIN)

when MATCHED then

  update

     set LONGITUDE          = d.offset_lon,

         DIMENSION          = d.offset_lat,

         gps_time           = d.utc,

         GPS_LOCATION       = d.address,

         GPS_LOCATION_SPLIT = d.address,

         STATUS             = d.statusname,

         GPS_MILEAGE        = d.mileage,

         GAUGE_MILEAGE      = '',

         created_by         = 'ssi',

         last_upd_by        = 'ssi',

         order_no           = d.orderno

when NOT MATCHED then

  insert

    (row_id,

     chassis_no,

     LONGITUDE,

     DIMENSION,

     GPS_TIME,

     GPS_LOCATION,

     GPS_LOCATION_SPLIT,

     STATUS,

     GPS_MILEAGE,

     GAUGE_MILEAGE,

     created_by,

     last_upd_by,

     order_no)

  VALUES

    ('ssi' || d.vin,

     d.vin,

     d.offset_lon,

     d.offset_lat,

     d.utc,

     d.address,

     d.address,

     d.statusname,

     d.mileage,

     '',

     'ssi',

     'ssi',

     d.orderno)

后面经询问了解到通过dblink所连接的远端数据库版本要低,而生产数据库升级前的版本为11.2.0.1,通过dblink进行数据更新是没有问题。这种通过dblink,且数据库版本不同的情况下经常遇到这种问题。在这种情况下,一般的处理方法就是通过dblink执行最简单的select,insert,update,delete语句看是否报错,如果没有出现故障,我们就可以将使用merge语法的SQL修改成最简单的select,insert,update,delete语句来达到相同的目的。也就像有多条路到达一个目的地,其中一条路因为某些原因不能通行,就改走另一路。

发表评论

电子邮件地址不会被公开。