IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    ORA-07445 opiaba—绑定变量超过65535导致实例crash

    惜分飞发表于 2023-03-15 05:32:56
    love 0

    联系:手机/微信(+86 17813235971) QQ(107644445)QQ咨询惜分飞

    标题:ORA-07445 opiaba—绑定变量超过65535导致实例crash

    作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

    数据库异常报ORA-07445 opiaba,ORA-00600 17147错,导致实例crash

    Wed Mar 15 09:48:06 2023
    Exception [type: SIGSEGV, SI_KERNEL(general_protection)] [ADDR:0x0] [PC:0x187B953, opiaba()+639] [flags: 0x0, count: 1]
    Errors in file /u01/app/oracle/diag/rdbms/xifenfei/xifenfei3/trace/xifenfei3_ora_169909.trc  (incident=446531):
    ORA-07445: 出现异常错误: 核心转储 [opiaba()+639] [SIGSEGV] [ADDR:0x0] [PC:0x187B953] [SI_KERNEL(general_protection)] []
    Incident details in: /u01/app/oracle/diag/rdbms/xifenfei/xifenfei3/incident/incdir_446531/xifenfei3_ora_169909_i446531.trc
    Use ADRCI or Support Workbench to package the incident.
    See Note 411.1 at My Oracle Support for error and packaging details.
    Wed Mar 15 09:48:07 2023
    Dumping diagnostic data in directory=[cdmp_20230315094807], requested by (instance=3, osid=169909), summary=[incident=446531].
    Wed Mar 15 09:48:08 2023
    Sweep [inc][446531]: completed
    Sweep [inc2][446531]: completed
    Wed Mar 15 09:48:33 2023
    Errors in file /u01/app/oracle/diag/rdbms/xifenfei/xifenfei3/trace/xifenfei3_pmon_161557.trc  (incident=440035):
    ORA-00600: internal error code, arguments: [17147], [0x4AFC25D0C8], [], [], [], [], [], [], [], [], [], []
    Incident details in: /u01/app/oracle/diag/rdbms/xifenfei/xifenfei3/incident/incdir_440035/xifenfei3_pmon_161557_i440035.trc
    Use ADRCI or Support Workbench to package the incident.
    See Note 411.1 at My Oracle Support for error and packaging details.
    Wed Mar 15 09:48:33 2023
    Dumping diagnostic data in directory=[cdmp_20230315094833], requested by (instance=3, osid=161557 (PMON)), summary=[incident=440035].
    Errors in file /u01/app/oracle/diag/rdbms/xifenfei/xifenfei3/trace/xifenfei3_pmon_161557.trc:
    ORA-00600: internal error code, arguments: [17147], [0x4AFC25D0C8], [], [], [], [], [], [], [], [], [], []
    PMON (ospid: 161557): terminating the instance due to error 472
    Wed Mar 15 09:48:34 2023
    opiodr aborting process unknown ospid (170089) as a result of ORA-1092
    

    对应的trace文件信息

    *** 2023-03-15 09:09:34.862
    *** SESSION ID:(1858.63187) 2023-03-15 09:09:34.862
    *** CLIENT ID:() 2023-03-15 09:09:34.862
    *** SERVICE NAME:(xifenfei) 2023-03-15 09:09:34.862
    *** MODULE NAME:(JDBC Thin Client) 2023-03-15 09:09:34.862
    *** ACTION NAME:() 2023-03-15 09:09:34.862
     
    Dump continued from file: /u01/app/oracle/diag/rdbms/xifenfei/xifenfei3/trace/xifenfei3_ora_116886.trc
    ORA-07445: 出现异常错误: 核心转储 [opiaba()+639] [SIGSEGV] [ADDR:0x0] [PC:0x187B953] [SI_KERNEL(general_protection)] []
    
    ========= Dump for incident 326049 (ORA 7445 [opiaba()+639]) ========
    ----- Beginning of Customized Incident Dump(s) -----
    Exception [type: SIGSEGV, SI_KERNEL(general_protection)] [ADDR:0x0] [PC:0x187B953, opiaba()+639] [flags: 0x0, count: 1]
    Registers:
    %rax: 0x00000046fa212588 %rbx: 0x00000046762ee798 %rcx: 0x0000000000003200
    %rdx: 0x0000000000000000 %rdi: 0x0000000000007340 %rsi: 0x0000000000007340
    %rsp: 0x00007fffffff41d0 %rbp: 0x00007fffffff4240  %r8: 0x00000044a8599f00
     %r9: 0x0000000000000099 %r10: 0x0000000000000b34 %r11: 0x00000046fa211720
    %r12: 0x00000046fa5c7488 %r13: 0x0000000000000000 %r14: 0x0200000046fa2125
    %r15: 0x0000000000000005 %rip: 0x000000000187b953 %efl: 0x0000000000010202
      opiaba()+625 (0x187b945) jmp 0x187b982
      opiaba()+627 (0x187b947) movzbl 0x2c(%rbx),%r15d
      opiaba()+632 (0x187b94c) mov %r14,-0x60(%rbp)
      opiaba()+636 (0x187b950) mov %rax,%r14
    > opiaba()+639 (0x187b953) movswq 0xa(%r14),%rcx
      opiaba()+644 (0x187b958) cmp %ecx,%r15d
      opiaba()+647 (0x187b95b) jne 0x187b976
      opiaba()+649 (0x187b95d) mov 0x18(%rbx),%rdi
      opiaba()+653 (0x187b961) lea 0xc(%r14),%rsi
    
    *** 2023-03-15 09:09:34.863
    dbkedDefDump(): Starting a non-incident diagnostic dump (flags=0x3, level=3, mask=0x0)
    ----- Current SQL Statement for this session (sql_id=5cvg8vqsbr8j6) -----
    BEGIN  
                UPDATE
                 t_xifenfei 
                 SET valid_param=:1 , comm_addr1 = :2 ,
                    password=:3 , customer_type = :4 ,
                    comm_no=:5 , date_grade_no = :6 ,
                    date_grade_flag=:7 , curve_config_no = :8 ,
                    curve_config_flag=:9 , baudrate = :10 ,
                    meas_order=:11 , meter_no = :12 ,
                    kind_no=:13 , tariff_count = :14 ,
                    meter_digits = :15 , import_user=:16 ,
                    readmeter_flag = :17 ,status_code=:18  
                WHERE meter_id = :19 
             ; 
    …………
             ; 
                UPDATE
                 t_xifenfei 
                 SET valid_param=:94982 , comm_addr1 = :94983 ,
                    password=:94984 , customer_type = :94985 ,
                    comm_no=:94986 , date_grade_no = :94987 ,
                    date_grade_flag=:94988 , curve_config_no = :94989 ,
                    curve_config_flag=:94990 , baudrate = :94991 ,
                    meas_order=:94992 , meter_no = :94993 ,
                    kind_no=:94994 , tariff_count = :94995 ,
                    meter_digits = :94996 , import_user=:94997 ,
                    readmeter_flag = :94998 ,status_code=:94999  
                WHERE meter_id = :95000 
             ;END;
    
    

    写了一个begin end,里面对于同一个update语句进行多次绑定变量实现批量提交功能,绑定变量的数量达到95000个,远超oracle官方限制的65535的极限,触发类似Bug 12578873 ORA-7445 [opiaba] when using more than 65535 bind variables
    20230315132517


    处理方法减少绑定变量数量,不能超过65535个

    • ORA-600 17182导致oracle异常
    • tab$被恶意删除sys用户之外记录
    • ORA-00600[17182],ORA-00600[25027],ORA-00600[kghfrempty:ds]故障处理
    • ORACLE 12C ORA-07445[ktuHistRecUsegCrtMain()+1173]恢复
    • ORA-600 kcbzpbuf_1故障恢复
    • Patch SCN工具快速解决ORA-600 2662问题
    • Oracle 19c故障恢复
    • Oracle 19c 断电异常恢复
    • 非归档数据库异常恢复一例
    • 正常open库报ORA-600 2662,ORA-600 4097错误
    • 网卡异常导致数据库实例启动异常
    • 记录一次200T的数据库恢复经历


沪ICP备19023445号-2号
友情链接