SQL> !oerr ora 2063
02063, 00000, "preceding %s%s from %s%s"
// *Cause: an Oracle error was received from a remote database link.
// *Action: refer to the preceding error message(s)
SQL> !oerr ora 2072
02072, 00000, "distributed database network protocol mismatch"
// *Cause: This should never happen between different PRODUCTION releases of ORACLE, but may happen between alpha and beta releases, for example.
// *Action: Upgrade the older release.
//
# 结论:
# 1,相同的表结构和数据可以执行SQL,
# 2,查询换成原来的表就报错,
# 3,可以判断原因为原表上的未知原因(BUG),需要重建表
时隔半年,用户再次反馈有类似问题,这次重建表也不行了,查了一下MOS,数据库未打补丁,命中BUG 17890099 前端报错:
ORA-03150: end-of-file on communication channel for database link
ORA-02055: distributed update operation failed; rollback required
ORA-02063: preceding lines from <REMOTE DATABASE LINK>
告警日志:
Thu Jul 23 17:24:48 2020 ORA-07445: 出现异常错误: 核心转储 [qsmmixFindColInQbc()+25] [SIGSEGV] [ADDR:0x48] [PC:0x5FCBA71] [Address not mapped to object] []
Fri Jul 24 12:32:58 2020 ORA-07445: exception encountered: core dump [qsmmixFindColInQbc()+25] [SIGSEGV] [ADDR:0x48] [PC:0x5FCBA71] [Address not mapped to object] []
Fri Jul 24 12:53:49 2020 ORA-07445: exception encountered: core dump [k2udio()+763] [SIGSEGV] [ADDR:0x7FCED18B9AA4] [PC:0x8254927] [Invalid permissions for mapped object] []
Tue Mar 23 23:12:50 2021 ORA-07445: exception encountered: core dump [ddfdsii()+504] [SIGSEGV] [ADDR:0x0] [PC:0x70BEE4E] [SI_KERNEL(general_protection)] []
Sat Mar 27 21:46:54 2021 ORA-07445: exception encountered: core dump [kghalf()+244] [SIGSEGV] [ADDR:0xFFFFFFFFFFFFFFF0] [PC:0x97E64C6] [Address not mapped to object] []
分析命中BUG:17890099
Distributed Transaction Fails with ORA-03150 ORA-02055, alert log shows ORA-07445: [qsmmixGetIdxKeyStats()+231] (Doc ID 1909692.1)
ORA-7445 [qsmmixFindColInQbc] Core Files Getting Generated in ORACLE_HOME/dbs (Doc ID 1946688.1)
ORA-7445 [kghalf] (Doc ID 310173.1)
Bug 17890099 - Wrong cardinality estimation for "is NULL" predicate on a remote table (Doc ID 17890099.8)
# 报错的执行语句(在135.0.108.52上执行,查询107,插入210)
insert into b_dcc_ecs_archive_data_his@INTF_ACCT210 h
(RECORD_SEQ,OPER_TYPE,AGENT_CODE,ACC_NBR,SERV_ID,USER_TYPE,AREA_CODE,plan_amount,START_DATE,EFF_DATE,EXP_DATE,OFFER_ID,offer_id_type,belonging_record_count,parent_record_seq,offer_sysid,STANDBY_1,STANDBY_2,REGION_CODE,SESSION_ID,OFFER_ID_CHANGE_TYPE,OLD_OFFER_SYSID,deal_time,Mini_Charge,Contract_Period,Contract_Eff_Date,Contract_Offer_id,Contract_Exp_Date)
select d.RECORD_SEQ,d.OPER_TYPE,d.AGENT_CODE,d.ACC_NBR,d.SERV_ID,d.USER_TYPE,d.AREA_CODE,d.plan_amount,