某客户核心业务系统报ORA-600错误分析处理

1.报错信息

节点1报错日志:

节点2报错日志:

2.原因分析

节点1trace文件,发现执行如下语句:

查看dump文件:

根据oracle官方文档:Bug 19849781 - ORA-600 [kjbrchkpkeywait:timeout], wrong pkey/objd on iot (文档 ID 19849781.8) 可以认为是由于错误的PKEY,引起ORA-600错误。

根据trace,查找对象:

根据以上信息,可以确认数据块0x185da转换为十进制后为:99802;数据文件31c转换十进制为:796

使用如下语句查看坏块的类型,针对不同的类型,进行恢复,如果是索引,可以删除重建。

查看创建表的语句:

SQL> set pagesize 1000

SQL> select sys.dbms_metadata.get_ddl('TABLE','TG_IN_FILTER1_ERROR','UCR_ROAM1') FROM DUAL;

SYS.DBMS_METADATA.GET_DDL('TABLE','TG_IN_FILTER1_ERROR','UCR_ROAM1')


CREATE TABLE "UCR_ROAM1"."TG_IN_FILTER1_ERROR"

( "SOURCE_TYPE" CHAR(2),

"BIZ_TYPE" VARCHAR2(4),

"FID" VARCHAR2(100),

"RR_FLAG" CHAR(1),

"CALL_TYPE" CHAR(2),

"IMSI_NUMBER" CHAR(15),

"MSISDN" VARCHAR2(15),

"OTHER_PARTY" VARCHAR2(30),

"START_DATE" CHAR(8),

"START_TIME" CHAR(6),

"END_DATE" CHAR(8),

"END_TIME" CHAR(6),

"CALL_DURATION" NUMBER(6,0),

"MSRN" CHAR(11),

"MSC" VARCHAR2(15),

"LAC1" CHAR(5),

"CELL_ID1" CHAR(5),

"OTHER_LAC1" CHAR(5),

"OTHER_CELL_ID1" CHAR(5),

"TRUNK_GROUPOUT" VARCHAR2(7),

"TRUNK_GROUPIN" VARCHAR2(7),

"SERVICE_TYPE" CHAR(3),

"SERVICE_CODE" VARCHAR2(4),

"VPN_ID" VARCHAR2(30),

"HOME_AREA_CODE" VARCHAR2(10),

"VISIT_AREA_CODE" VARCHAR2(10),

"CALLED_HOME_CODE" VARCHAR2(10),

"CALLED_CODE" VARCHAR2(10),

"ROAM_TYPE" CHAR(1),

"FILE_NO" VARCHAR2(50),

"STOP_CAUSE" CHAR(2),

"ORIGIN_NO" VARCHAR2(30),

"FORWARDCAUSE" CHAR(1),

"RATE_IND" CHAR(1),

"RAW_OFFICE_CODE" CHAR(5),

"IMEI" VARCHAR2(20),

"RESULT" CHAR(1),

"CALL_REFERENCE" VARCHAR2(30),

"PARTIAL_ID" CHAR(3),

"CFEE" NUMBER(8,0),

"LFEE" NUMBER(8,0),

"OTHERFEE" NUMBER(8,0),

"NET_TYPE" CHAR(2),

"FCI" VARCHAR2(8),

"MNS_TYPE" CHAR(1),

"ISMULTIMEDIA" CHAR(1),

"VPN_FLAG" VARCHAR2(8),

"USER_TYPE" CHAR(1),

"RATE_TIMES" NUMBER(2,0),

"ERROR_CODE" VARCHAR2(4),

"RESERVER1" VARCHAR2(100),

"RESERVER2" VARCHAR2(100),

"RESERVER3" VARCHAR2(100),

"RESERVER4" VARCHAR2(100),

"RESERVER5" VARCHAR2(100),

"RESERVER6" VARCHAR2(100),

"RESERVER7" VARCHAR2(100),

"RESERVER8" VARCHAR2(100),

"B_MSISDN" VARCHAR2(30),

"A_ASP" CHAR(1),

"A_SERV_TYPE" VARCHAR2(5),

"B_ASP" CHAR(1),

"B_SERV_TYPE" VARCHAR2(5),

"B_HOME_TYPE" CHAR(1),

"CALLED_TYPE" CHAR(2),

"C_SERV_TYPE" VARCHAR2(5),

"CARRIER_TYPE" CHAR(2),

"TRANS_TYPE" CHAR(1),

"DIAL_TYPE" CHAR(1),

"LONG_TYPE1" CHAR(1),

"LONG_GROUP1" CHAR(2),

"LONG_TYPE2" CHAR(1),

"LONG_GROUP2" CHAR(2),

"EDGE_FLAG" CHAR(1),

"ISNONEED_TP" CHAR(1),

"SUM_SERVTYPE" VARCHAR2(10),

"SPECIAL_PHONE_GROUP" VARCHAR2(5),

"A_PROV_CODE" CHAR(3),

"B_PROV_CODE" CHAR(3),

"INTER_ASPCODE" VARCHAR2(10),

"INTER_ASPGROUP" VARCHAR2(10),

"LONG_GROUP_EX1" CHAR(2),

"LONG_GROUP_EX2" CHAR(2),

"USER_ID" NUMBER(16,0),

"CUST_ID" NUMBER(16,0),

"A_PRODUCT_ID" NUMBER(8,0),

"A_SERV_TYPE_YZ" VARCHAR2(5),

"DOUBLEMODE" CHAR(1),

"CHANNEL_NO" NUMBER(3,0),

"B_PRODUCT_ID" NUMBER(8,0),

"B_BRANDTYPE" VARCHAR2(5),

"B_OFFICE_CODE" VARCHAR2(5),

"A_USER_STAT" CHAR(1),

"OPEN_DATETIME" VARCHAR2(14),

"ACCT_TAG" VARCHAR2(5)

) SEGMENT CREATION IMMEDIATE

PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255

NOCOMPRESS LOGGING

STORAGE(INITIAL 81920 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "TBS_BIL_DROAM";

节点2trace文件如下:

根据ORA-600 [kcbgcur_3] "current buffer has same class but wrong object id" (文档 ID 70097.1)文档,可以确定数据库请求11321345的对象ID。

查看trace文件:

根据如上trace,可以确认数据库需要11321345数据库对象,但数据库提供的缓冲区对象为:11321160,故产生的ORA-600错误。

总结:

客户执行TRUNCATE TABLE TG_IN_FILTER1_ERROR 语句,数据库请求11321345对象ID,但数据库缓冲区提供了错误的数据库对象ID(11321160),引起数据库ORA-600错误,根据ORA-600 [kcbgcur_3] "current buffer has same class but wrong object id" (文档 ID 70097.1)文档,此问题有可能会引起进程失败或物理损坏,经检查UCR_ROAM1.TG_IN_FILTER1_ERROR表,此表无物理损坏。根据Bug 19849781 ORA-600 [kjbrchkpkeywait:timeout], wrong pkey/objd on iot 文档,需要升级到12.2版本以上,但此文档主要是针对IOT表的,故建议提交SR,以确认BUG及修复方式。

相关推荐
高梦轩3 小时前
MySQL高可用
android·运维·数据库
紫金修道6 小时前
【DeepAgent】概述
开发语言·数据库·python
孟章豪6 小时前
《SQL拼接 vs 参数化,为什么公司禁止拼接SQL?(附真实案例)》
服务器·数据库·sql
荒川之神7 小时前
ORACLE LEVEL函数练习
数据库·oracle
·云扬·7 小时前
【MySQL】实战:用pt-table-sync修复主从数据一致性问题
数据库·mysql·ffmpeg
swIn KWAL7 小时前
【MySQL】环境变量配置
数据库·mysql·adb
shark22222227 小时前
【JOIN】关键字在MySql中的详细使用
数据库·mysql
RATi GORI7 小时前
MySQL中的CASE WHEN语句:用法、示例与解析
android·数据库·mysql
坊钰8 小时前
Java 死锁问题及其解决方案
java·开发语言·数据库
onebound_noah8 小时前
【实战教程】如何通过API快速获取淘宝/天猫商品评论数据(含多语言Demo)
大数据·数据库