标签云
asm恢复 bbed bootstrap$ dul kcbzib_kcrsds_1 kccpb_sanity_check_2 kcratr_nab_less_than_odr MySQL恢复 obet ORA-00312 ORA-00704 ORA-00742 ORA-01110 ORA-01200 ORA-01555 ORA-01578 ORA-01595 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-600 kcratr_nab_less_than_odr ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 ORACLE恢复 Oracle 恢复 ORACLE数据库恢复 oracle碎片 OSD-04016 YOUR FILES ARE ENCRYPTED 比特币加密文章分类
- MongoDB (1)
- MongoDB恢复 (1)
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (112)
- 数据库 (1,882)
- DB2 (22)
- MySQL (82)
- Oracle (1,707)
- Data Guard (53)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (168)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (72)
- Oracle Bug (8)
- Oracle RAC (56)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (661)
- Oracle安装升级 (108)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (91)
- PostgreSQL (37)
- pdu工具 (7)
- PostgreSQL恢复 (13)
- SQL Server (34)
- SQL Server恢复 (14)
- TimesTen (7)
- 达梦数据库 (5)
- 达梦恢复 (3)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (51)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (34)
- MongoDB (1)
-
最近发表
- 断电引起ORA-600 3005故障处理
- 记录一次云存储资源到期之后引起的数据库恢复
- Firebird 损坏数据库数据抢救工具—firebirdext
- Oracle 19c 202610补丁(RUs+OJVM)-19.33
- 由于con$.con#值达到极限,触发数据库增加约束报ORA-600 12807错误
- MongoDB 离线提取工具—mongoext
- .bres勒索病毒加密数据库dmp文件可恢复
- ORA-600 krsm_mrp_rebuild_lf_list.lno_mismatch
- 记录一次0丢失的ORA-00354: 损坏重做日志块标头故障恢复
- 不当数据库恢复操作导致一个月数据丢失
- obet快速修复oracle 位图损坏块
- 不太常见的10.2.0.1的oracle redo损坏恢复
- obet forcecopy功能抢救硬件故障中的数据文件
- kcratr_nab_less_than_odr和system坏块故障处理
- 通过obet 恢复system坏块,打开数据库
- obet dbv功能完整说明
- 分享一例运行在aix上的sap系统数据库恢复过程
- OBET-Oracle Block Editor Tool使用说明
- 几乎动用了所有手段的Oracle故障恢复
- Oracle Block Edit Tool (obet) 功能增强–2026.07
分类目录归档:Oracle
由于数据块scn大于数据库scn导致ORA-600 kcbzib_kcrsds_1错误
以前遇到ORA-600 kcbzib_kcrsds_1一般都是数据库强制打开的时候,这次在一个open的库中遇到该问题,做一个记录
在expdp过程中有一个表报ORA-01555错误
. . 导出了 "SRM_DEV"."AAAAAA" 3.256 MB 4636 行 ORA-31693: 表数据对象 "SRM_DEV"."XXXXXXX" 无法加载/卸载并且被跳过, 错误如下: ORA-02354: 导出/导入数据时出错 ORA-01555: 快照过旧: 回退段号 (名称为 "") 过小
这种错误,根据以往经验,大部分情况是由于lob字段异常引起
查看表结构
SQL> desc "SRM_DEV"."XXXXXXX" 名称 是否为空? 类型 ----------------------------------------- -------- ---------------------------- DELIVERY_ID NOT NULL NUMBER(19) ARRIVAL_CUSTOMER_ID NUMBER(19) ARRIVAL_LOCATION_TYPE VARCHAR2(255 CHAR) ARRIVAL_SUPPLIER_ID NUMBER(19) ARRIVAL_TIME TIMESTAMP(6) ARRIVAL_USER NUMBER(19) CREATE_BY VARCHAR2(32 CHAR) CREATE_TIME TIMESTAMP(6) DELIVERY_DATE VARCHAR2(32 CHAR) DELIVERY_NO VARCHAR2(32 CHAR) DELIVERY_TYPE VARCHAR2(32 CHAR) INVOICE_TYPE VARCHAR2(2) IS_CONFIRM VARCHAR2(2) IS_ONEKEY_IO VARCHAR2(2) IS_SUPPORTING VARCHAR2(32 CHAR) MODI_BY VARCHAR2(32 CHAR) MODI_TIME TIMESTAMP(6) OP_ATTRIBUTE VARCHAR2(1 CHAR) PRINT_TIMES NUMBER(10) RECEIVE_COMPANY VARCHAR2(64 CHAR) RECEIVE_LOCATION VARCHAR2(64 CHAR) RECEIVE_SUPPLIER_ID NUMBER(19) REMARK VARCHAR2(256 CHAR) STATUS VARCHAR2(5 CHAR) SUPPLIER_CODE VARCHAR2(64 CHAR) SUPPLIER_ID NUMBER(19) OVERDUE_STATUS VARCHAR2(255 CHAR)
确认没有lob字段而引起了该问题,进一步分析
对表进行全扫描看看报什么错误
SQL> select /*+full(t)*/ count(1) from "SRM_DEV"."XXXXXXX" t;
select /*+full(t)*/ count(1) from "SRM_DEV"."XXXXXXX" t
*
第 1 行出现错误:
ORA-00600: 内部错误代码, 参数: [kcbzib_kcrsds_1], [], [], [], [], [], [],
[], [], [], [], []
根据以往经验,怀疑是由于这个表中的某个block的scn大于数据库scn导致
对全表扫描过程进行跟踪
C:\Users\Administrator>sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on 星期日 12月 21 22:18:46 2025
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
连接到:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> oradebug setmypid
已处理的语句
SQL> alter session set db_file_multiblocK_read_count=1;
会话已更改。
SQL> oradebug EVENT 10046 TRACE NAME CONTEXT FOREVER, LEVEL 12
已处理的语句
SQL> oradebug TRACEFILE_NAME
F:\APP\diag\rdbms\srmdev\srmdev\trace\srmdev_ora_14768.trc
SQL>
SQL>
SQL> select /*+full(t)*/ count(1) from "SRM_DEV"."XXXXXXX" t;
select /*+full(t)*/ count(1) from "SRM_DEV"."XXXXXXX" t
*
第 1 行出现错误:
ORA-00600: 内部错误代码, 参数: [kcbzib_kcrsds_1], [], [], [], [], [], [],
[], [], [], [], []
分析trace文件确认对应的block为20548
WAIT #758663789368: nam='db file sequential read' ela= 40 file#=7 block#=20545 blocks=1 obj#=73756 tim=47881962193 WAIT #758663789368: nam='db file sequential read' ela= 41 file#=7 block#=20546 blocks=1 obj#=73756 tim=47881962259 WAIT #758663789368: nam='db file sequential read' ela= 40 file#=7 block#=20547 blocks=1 obj#=73756 tim=47881962325 WAIT #758663789368: nam='db file sequential read' ela= 41 file#=7 block#=20548 blocks=1 obj#=73756 tim=47881962389 Encountered exception while getting args for function:0x00007FF6F0BC39A0 2025-12-21T22:19:17.768815+08:00 Incident 1562659 created, dump file: F:\APP\diag\rdbms\srmdev\srmdev\incdir_1562659\srmdev_ora_14768_i1562659.trc ORA-00600: 内部错误代码, 参数: [kcbzib_kcrsds_1], [], [], [], [], [], [], [], [], [], [], []
对异常block进行dump分析
PARSE #758663744160:c=0,e=97,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=0,plh=0,tim=48020763236
Start dump data blocks tsn: 4 file#:7 minblk 20548 maxblk 20548
Block dump from cache:
Dump of buffer cache at level 3 for pdb=0 tsn=4 rdba=29380676
WAIT #758663744160: nam='db file sequential read' ela= 88 file#=7 block#=20548 blocks=1 obj#=73756 tim=48020763396
Block dump from disk:
buffer tsn: 4 rdba: 0x01c05044 (7/20548)
scn: 0x6a37b2cb8 seq: 0x02 flg: 0x06 tail: 0x2cb80602
frmt: 0x02 chkval: 0xe203 type: 0x06=trans data
Hex dump of block: st=0, typ_found=1
Dump of memory from 0x000000B0A274D000 to 0x000000B0A274F000
B0A274D000 0000A206 01C05044 A37B2CB8 06020006 [....DP...,{.....]
B0A274D010 0000E203 001B0001 0001201C A37B2CB4 [......... ...,{.]
B0A274D020 00068000 00321F02 01C05001 00160010 [......2..P......]
B0A274D030 0409F0A2 010001A8 000C0776 00002001 [........v.... ..]
通过这里可以确认当前block的scn为0x6a37b2cb8==>28512562360
查询当前数据库scn
SQL> select CURRENT_SCN from v$database; CURRENT_SCN -------------- 28512556338
通过分析确认当前数据库的scn小于该block的scn,所以报ORA-600 kcbzib_kcrsds_1错误.解决该问题的方法有两种
1. 调整数据库是scn,让数据库的scn 大于该block scn即可
2. 通过把该block的scn修改小一些(目的就是数据库scn大于block scn)
通过处理之后实现表正常查询
SQL> alter system checkpoint;
系统已更改。
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
--------------------
28512563830
SQL> select /*+full(t)*/ count(1) from "SRM_DEV"."XXXXXXX" t;
COUNT(1)
--------------------
19560
对于这种情况除了ora-600 kcbzib_kcrsds_1的报错之外,还可能会遇到ora-600 kcbzibmlt_kcrsds_1的错误
ORA-600 ktbair2: illegal inheritance恢复
接到客户一个恢复case咨询,数据库open过程报ORA-00600: 内部错误代码, 参数: [ktbair2: illegal inheritance]错误

查看alert日志
2025-12-21T10:38:49.346922+08:00 alter database open 2025-12-21T10:38:50.286621+08:00 Ping without log force is disabled: instance mounted in exclusive mode. 2025-12-21T10:38:50.300632+08:00 Beginning crash recovery of 1 threads 2025-12-21T10:38:50.378690+08:00 parallel recovery started with 32 processes Thread 1: Recovery starting at checkpoint rba (logseq 47910 block 201391), scn 0 2025-12-21T10:38:50.446742+08:00 Started redo scan 2025-12-21T10:38:50.597853+08:00 Completed redo scan read 57808 KB redo, 409 data blocks need recovery 2025-12-21T10:38:50.827024+08:00 Started redo application at Thread 1: logseq 47910, block 201391, offset 0 2025-12-21T10:38:50.845043+08:00 Recovery of Online Redo Log: Thread 1 Group 3 Seq 47910 Reading mem 0 Mem# 0: F:\APP\ORADATA\SRMDEV\REDO03.LOG 2025-12-21T10:38:50.929100+08:00 Completed redo application of 3.15MB 2025-12-21T10:38:50.975134+08:00 Errors in file F:\APP\diag\rdbms\srmdev\srmdev\trace\srmdev_p00e_11192.trc (incident=1382836): ORA-00600: 内部错误代码, 参数: [ktbair2: illegal inheritance], [], [], [], [], [], [], [], [], [], [], [] Incident details in: F:\APP\diag\rdbms\srmdev\srmdev\incident\incdir_1382836\srmdev_p00e_11192_i1382836.trc Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details. 2025-12-21T10:38:52.033922+08:00 ***************************************************************** An internal routine has requested a dump of selected redo. This usually happens following a specific internal error, when analysis of the redo logs will help Oracle Support with the diagnosis. It is recommended that you retain all the redo logs generated (by all the instances) during the past 12 hours, in case additional redo dumps are required to help with the diagnosis. ***************************************************************** ………… 2025-12-21T10:39:02.224702+08:00 Errors in file F:\APP\diag\rdbms\srmdev\srmdev\trace\srmdev_ora_9960.trc: ORA-01578: ORACLE 数据块损坏 (文件号 7, 块号 611) ORA-01110: 数据文件 7: 'F:\APP\ORADATA\SRMDEV\USERS01.DBF' ORA-10564: tablespace USERS ORA-01110: 数据文件 7: 'F:\APP\ORADATA\SRMDEV\USERS01.DBF' ORA-10561: block type 'TRANSACTION MANAGED DATA BLOCK', data object# 74736 ORA-00600: 内部错误代码, 参数: [ktbair2: illegal inheritance], [], [], [], [], [], [], [], [], [], [], [] ORA-1578 signalled during: alter database open...
这个错误以前有过类似处理,主要是由于redo无法正确应用,数据库在open过程无法正常完成实例恢复所以出现该问题.以前处理过类似案例:
Oracle Recovery Tools修复ORA-00742、ORA-600 ktbair2: illegal inheritance故障
这次的故障相对简单一些,通过一些简单尝试之后数据库正常应用成功
2025-12-21T21:43:00.689653+08:00 ALTER DATABASE RECOVER datafile 1 2025-12-21T21:43:00.691654+08:00 Media Recovery Start 2025-12-21T21:43:00.693656+08:00 Serial Media Recovery started 2025-12-21T21:43:00.721676+08:00 Recovery of Online Redo Log: Thread 1 Group 3 Seq 47910 Reading mem 0 Mem# 0: F:\APP\ORADATA\SRMDEV\REDO03.LOG Completed: ALTER DATABASE RECOVER datafile 1 2025-12-21T21:43:14.109099+08:00 ALTER DATABASE RECOVER datafile 3 2025-12-21T21:43:14.111100+08:00 Media Recovery Start 2025-12-21T21:43:14.113102+08:00 Serial Media Recovery started 2025-12-21T21:43:14.139121+08:00 Recovery of Online Redo Log: Thread 1 Group 3 Seq 47910 Reading mem 0 Mem# 0: F:\APP\ORADATA\SRMDEV\REDO03.LOG Completed: ALTER DATABASE RECOVER datafile 3 2025-12-21T21:43:21.361498+08:00 ALTER DATABASE RECOVER datafile 4 2025-12-21T21:43:21.363499+08:00 Media Recovery Start 2025-12-21T21:43:21.365500+08:00 Serial Media Recovery started 2025-12-21T21:43:21.397524+08:00 Media Recovery failed with error 264 ORA-283 signalled during: ALTER DATABASE RECOVER datafile 4 ... 2025-12-21T21:43:31.909350+08:00 ALTER DATABASE RECOVER datafile 7 2025-12-21T21:43:31.911351+08:00 Media Recovery Start 2025-12-21T21:43:31.913353+08:00 Serial Media Recovery started 2025-12-21T21:43:31.940373+08:00 Recovery of Online Redo Log: Thread 1 Group 3 Seq 47910 Reading mem 0 Mem# 0: F:\APP\ORADATA\SRMDEV\REDO03.LOG Completed: ALTER DATABASE RECOVER datafile 7
然后比较幸运直接open数据库成功,但是报ORA-600 4194错误
2025-12-21T21:45:34.003260+08:00 MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set stopping change tracking 2025-12-21T21:45:34.262453+08:00 Undo initialization recovery: err:0 start: 45858156 end: 45858296 diff: 140 ms (0.1 seconds) [13724] Successfully onlined Undo Tablespace 2. Undo initialization online undo segments: err:0 start: 45858296 end: 45858359 diff: 63 ms (0.1 seconds) Undo initialization finished serial:0 start:45858156 end:45858359 diff:203 ms (0.2 seconds) Verifying minimum file header compatibility for tablespace encryption.. Verifying file header compatibility for tablespace encryption completed for pdb 0 Database Characterset is AL32UTF8 2025-12-21T21:45:34.584694+08:00 Errors in file F:\APP\diag\rdbms\srmdev\srmdev\trace\srmdev_smon_13616.trc (incident=1510624): ORA-00600: 内部错误代码, 参数: [4194], [58], [49], [], [], [], [], [], [], [], [], [] Incident details in:F:\APP\diag\rdbms\srmdev\srmdev\incident\incdir_1510624\srmdev_smon_13616_i1510624.trc Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details. 2025-12-21T21:45:34.598703+08:00 ***************************************************************** An internal routine has requested a dump of selected redo. This usually happens following a specific internal error, when analysis of the redo logs will help Oracle Support with the diagnosis. It is recommended that you retain all the redo logs generated (by all the instances) during the past 12 hours, in case additional redo dumps are required to help with the diagnosis. ***************************************************************** 2025-12-21T21:45:35.634474+08:00 Autotune of undo retention is turned off. 2025-12-21T21:45:35.636476+08:00 Resource Manager disabled during database migration: plan '''' not set Resource Manager disabled during database migration 2025-12-21T21:45:36.009753+08:00 ***************************************************************** An internal routine has requested a dump of selected redo. This usually happens following a specific internal error, when analysis of the redo logs will help Oracle Support with the diagnosis. It is recommended that you retain all the redo logs generated (by all the instances) during the past 12 hours, in case additional redo dumps are required to help with the diagnosis. ***************************************************************** Doing block recovery for file 4 block 27127 Resuming block recovery (PMON) for file 4 block 27127 Block recovery from logseq 47911, block 78 to scn 0x0000000000000000 2025-12-21T21:45:36.026766+08:00 Recovery of Online Redo Log: Thread 1 Group 4 Seq 47911 Reading mem 0 Mem# 0: F:\APP\ORADATA\SRMDEV\RED004.LOG Block recovery completed at rba 0.0.0, scn 0x00000006a378f1bc Doing block recovery for file 4 block 176 Resuming block recovery (PMON) for file 4 block 176 Block recovery from logseq 47911, block 78 to scn 0x00000006a378f23d 2025-12-21T21:45:36.045781+08:00 Recovery of Online Redo Log: Thread 1 Group 4 Seq 47911 Reading mem 0 Mem# 0: F:\APP\ORADATA\SRMDEV\RED004.LOG Block recovery completed at rba 47911.78.16, scn 0x00000006a378f23e Non-fatal internal error happened while SMON was doing shrinking of rollback segments. SMON encountered 1 out of maximum 100 non-fatal internal errors. replication_dependency_tracking turned off (no async multimaster replication found) 2025-12-21T21:45:36.493113+08:00 AQ Processes can not start in restrict mode Starting background process CJQ0 2025-12-21T21:45:36.545152+08:00 CJQ0 started with pid=73, OS id=14120 2025-12-21T21:45:37.546898+08:00 Completed: alter database open
这个处理起来比较简单,对于异常的undo进行处理之后,数据库正常导出dmp,完成本次恢复任务
一键恢复ORA-00704 ORA-00702故障—202512
alert日志相关报错信息
Mon Dec 15 14:10:56 2025 ALTER DATABASE OPEN Beginning crash recovery of 1 threads parallel recovery started with 5 processes Started redo scan Completed redo scan read 0 KB redo, 0 data blocks need recovery Started redo application at Thread 1: logseq 654, block 2, scn 16937055 Recovery of Online Redo Log: Thread 1 Group 3 Seq 654 Reading mem 0 Mem# 0: E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG Completed redo application of 0.00MB Completed crash recovery at Thread 1: logseq 654, block 3, scn 16957057 0 data blocks read, 0 data blocks written, 0 redo k-bytes read Thread 1 advanced to log sequence 655 (thread open) Thread 1 opened at log sequence 655 Current log# 1 seq# 655 mem# 0: E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG Successful open of redo thread 1 MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set Mon Dec 15 14:10:57 2025 SMON: enabling cache recovery Errors in file E:\APP\ADMINISTRATOR\diag\rdbms\orcl\orcl\trace\orcl_ora_7952.trc: ORA-00704: 引导程序进程失败 ORA-00702: 引导程序版本 '' 与版本 '8.0.0.0.0' 不一致 Errors in file E:\APP\ADMINISTRATOR\diag\rdbms\orcl\orcl\trace\orcl_ora_7952.trc: ORA-00704: 引导程序进程失败 ORA-00702: 引导程序版本 '' 与版本 '8.0.0.0.0' 不一致 Error 704 happened during db open, shutting down database USER (ospid: 7952): terminating the instance due to error 704 Instance terminated by USER, pid = 7952 ORA-1092 signalled during: ALTER DATABASE OPEN... opiodr aborting process unknown ospid (7952) as a result of ORA-1092 Mon Dec 15 14:11:00 2025 ORA-1092 : opitsk aborting process Mon Dec 15 14:39:18 2025
这种故障处理比较多,主要是bootstrap$基表损坏,后来为了解决这种问题方便,专门写了一个小工具(bootstrap$异常修复小工具)来一键修复该问题

通过bootstrap$异常修复小工具修复之后,然后直接启动数据库成功,完成本次恢复任务


加我微信(17813235971)
加我QQ(107644445)

