标签云
asm恢复 bbed bootstrap$ dul kcbzib_kcrsds_1 kccpb_sanity_check_2 kcratr_nab_less_than_odr MySQL恢复 ORA-00312 ORA-00704 ORA-00742 ORA-01110 ORA-01200 ORA-01555 ORA-01578 ORA-01595 ORA-600 2662 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-600 kdsgrp1 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 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (110)
- 数据库 (1,829)
- DB2 (22)
- MySQL (80)
- Oracle (1,658)
- 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 (69)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (626)
- Oracle安装升级 (103)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (86)
- PostgreSQL (37)
- pdu工具 (7)
- PostgreSQL恢复 (13)
- SQL Server (34)
- SQL Server恢复 (14)
- TimesTen (7)
- 达梦数据库 (3)
- 达梦恢复 (1)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (46)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (29)
-
最近发表
- expdp导出xml列报ORA-22924故障处理
- obet处理ORA-704 ORA-604 ORA-1578故障
- obet修复csc higher than block scn类型坏块
- ORA-600 kcratr_nab_less_than_odr和ORA-600 4193故障处理
- aix环境10g由于控制器异常导致ORA-600 4000故障处理
- ORA-600 3716故障处理
- 不当恢复truncate数据导致数据库不能open处理
- 注意:PostgreSQL库出现readme_to_recover勒索
- Oracle 19c 202601补丁(RUs+OJVM)-19.30
- Patch_SCN快速解决ORA-600 2663故障
- 在生产环境错误执行dd命令破坏asm磁盘故障恢复
- obet实现对数据文件坏块检测功能
- oracle linux 8.10注意pmlogger导致空间被大量占用
- obet快速修改scn/resetlogs恢复数据库(缺少归档,ORA-00308)
- 使用DBMS_PDB.RECOVER抢救单个pdb
- aix环境写入大文件设置combehin提高效率
- 记录一次国产数据库被rm -rf /*删除的救援过程
- 数据库启动报 maximum number of processes () exceeded分析
- ORA-600 [ksunfy : too few sessions]
- 由于数据块scn大于数据库scn导致ORA-600 kcbzib_kcrsds_1错误
作者归档:惜分飞
expdp导出xml列报ORA-22924故障处理
expdp导出xml列类型表报错
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
启动 "SYS"."EXPDP_TBA1": "/******** AS SYSDBA" tables=XFF.XML_TAB dumpfile=XML_TAB.dmp
DIRECTORY=expdp_dir logfile=expdp_XML_TAB.log EXCLUDE=STATISTICS job_name=expdp_tba1
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 13.12 GB
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
ORA-31693: 表数据对象 "XFF"."XML_TAB" 无法加载/卸载并且被跳过, 错误如下:
ORA-29913: 执行 ODCIEXTTABLEPOPULATE 调出时出错
ORA-22924: 快照太旧
已成功加载/卸载了主表 "SYS"."EXPDP_TBA1"
******************************************************************************
SYS.EXPDP_TBA1 的转储文件集为:
D:\XML_TAB.DMP
作业 "SYS"."EXPDP_TBA1" 已经完成, 但是有 1 个错误 (于 星期六 2月 14 09:01:26 2026 elapsed 0 00:04:15 完成)
一般对于这些问题的解决思路是找出来异常的行的rowid,然后导出跳过异常行或者把对应的xml列置空,关键就是如何找出来该记录,这里自己写了一个plsql来找出来异常rowid
SQL> declare
2 page number;
3 len number;
4 c varchar2(10);
5 charpp number := 8132/2;
6 n number;
7 v_sqlerrm varchar2(100);
8 begin
9 n := 0;
10 for r in (select rowid rid from XFF.XML_TAB order by rowid) loop
11 begin
12 select dbms_lob.getlength (xmltype.getclobval(XML_COL)) into c from XFF.XML_TAB where rowid = r.rid;
13 v_sqlerrm := SQLERRM;
14 insert into result values (n, r.rid, 'good', page, v_sqlerrm);
15 commit;
16 exception
17 when others then
18 dbms_output.put_line ('Error on rowid ' ||r.rid||' page '||page);
19 dbms_output.put_line (sqlerrm);
20 v_sqlerrm := SQLERRM;
21 insert into result values (n, r.rid, 'bad',page,v_sqlerrm);
22 commit;
23 end;
24 end loop;
25 end;
26 /
Error on rowid AAASO1AAKAAAH5bAAC page
ORA-22924: 快照太旧
ORA-06512: 在 "SYS.XMLTYPE", line 138
Error on rowid AAASO1AAKAAAIPtAAZ page
ORA-22924: 快照太旧
ORA-06512: 在 "SYS.XMLTYPE", line 138
Error on rowid AAASO1AAKAAAIRfAAU page
ORA-22924: 快照太旧
ORA-06512: 在 "SYS.XMLTYPE", line 138
Error on rowid AAASO1AAKAAAIS9AAW page
ORA-22924: 快照太旧
ORA-06512: 在 "SYS.XMLTYPE", line 138
Error on rowid AAASO1AAKAAAIT7AAW page
ORA-22924: 快照太旧
ORA-06512: 在 "SYS.XMLTYPE", line 138
Error on rowid AAASO1AAKAAAIT/AAG page
ORA-22924: 快照太旧
ORA-06512: 在 "SYS.XMLTYPE", line 138
PL/SQL 过程已成功完成。
然后expdp导出数据跳过这些异常的rowid的par文件
directory=expdp_dir
dumpfile=expdp_XFF.XML_TAB.dmp
logfile=expdp_XFF.XML_TAB.log
tables=XFF.XML_TAB
query="XFF.XML_TAB:WHERE rowid not IN ('AAASO1AAKAAAH5bAAC','AAASO1AAKAAAIPtAAZ','AAASO1AAKAAAIT7AAW',
'AAASO1AAKAAAIT/AAG', 'AAASO1AAKAAAIRfAAU','AAASO1AAKAAAIS9AAW')"
job_name=exp_1
也可以通过update语句直接把异常的xml值直接置空
update XFF.XML_TAB
set XML_COL = XMLType.createXML('')
where rowid in (select checked_rowid from result where status='bad');
obet处理ORA-704 ORA-604 ORA-1578故障
有客户数据库启动报ORA-704 ORA-604 ORA-1578错误,导致启动失败

alert日志报错
Fri Feb 06 23:38:43 2026 SMON: enabling cache recovery Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_239325.trc (incident=1008437): ORA-01578: ORACLE data block corrupted (file # 1, block # 241) ORA-01110: data file 1: '+DATADG/orcl/datafile/system.270.1015415183' Fri Feb 06 23:38:46 2026 Redo thread 2 internally disabled at seq 6 (CKPT) Archived Log entry 182212 added for thread 2 sequence 5 ID 0xd68b4385 dest 1: ARC0: Archiving disabled thread 2 sequence 6 Archived Log entry 182213 added for thread 2 sequence 6 ID 0xd68b4385 dest 1: Thread 1 advanced to log sequence 9 (LGWR switch) Current log# 1 seq# 9 mem# 0: +DATADG/orcl/onlinelog/group_1.302.1223816761 Current log# 1 seq# 9 mem# 1: +ARCHDG/orcl/onlinelog/group_1.257.1223816761 Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_239325.trc: ORA-00704: bootstrap process failure ORA-00704: bootstrap process failure ORA-00604: error occurred at recursive SQL level 1 ORA-01578: ORACLE data block corrupted (file # 1, block # 241) ORA-01110: data file 1: '+DATADG/orcl/datafile/system.270.1015415183' Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_239325.trc: ORA-00704: bootstrap process failure ORA-00704: bootstrap process failure ORA-00604: error occurred at recursive SQL level 1 ORA-01578: ORACLE data block corrupted (file # 1, block # 241) ORA-01110: data file 1: '+DATADG/orcl/datafile/system.270.1015415183' Error 704 happened during db open, shutting down database USER (ospid: 239325): terminating the instance due to error 704 Fri Feb 06 23:38:48 2026 Instance terminated by USER, pid = 239325 ORA-1092 signalled during: alter database open... opiodr aborting process unknown ospid (239325) as a result of ORA-1092 Fri Feb 06 23:38:48 2026 ORA-1092 : opitsk aborting process
对system文件进行dbv检测(客户通过asmcmd cp命令拷贝出来system文件)
DBVERIFY - Verification starting : FILE = /asm_backup/orcl/datafile/SYSTEM.270.1015415183 DBV-00200: Block, DBA 4194545, already marked corrupt csc(0x0006.d75a0ed7) higher than block scn(0x0000.00000000) Page 241 failed with check code 6054 DBV-00200: Block, DBA 4306619, already marked corrupt csc(0x0006.d75a14f4) higher than block scn(0x0000.00000000) Page 112315 failed with check code 6054 DBVERIFY - Verification complete Total Pages Examined : 738560 Total Pages Processed (Data) : 424109 Total Pages Failing (Data) : 1 Total Pages Processed (Index): 287403 Total Pages Failing (Index): 1 Total Pages Processed (Other): 3408 Total Pages Processed (Seg) : 1 Total Pages Failing (Seg) : 0 Total Pages Empty : 23640 Total Pages Marked Corrupt : 2 Total Pages Influx : 0 Total Pages Encrypted : 0 Highest block SCN : 3613010282 (6.3613010282)
这里可以看到有两个block被标记为坏块原因是由于:csc(0×0006.d75a0ed7) higher than block scn(0×0000.00000000),坏块错误代码为:Page 241 failed with check code 6054.这种问题的原因是由于block的scn小于数据块的csc(一般是由于写丢失导致),对于这个问题,最近在obet中刚刚增加了repair blkscn功能进行修复,具体参考:obet修复csc higher than block scn类型坏块,使用工具修复操作(其他block类似修改)
OBET> set filename /datapool/asm_backup/orcl/datafile/SYSTEM.270.1015415183
filename set to: /datapool/asm_backup/orcl/datafile/SYSTEM.270.1015415183
OBET> set block 241
block set to: 241
OBET> backup
Created backup directory: backup_blk
Successfully backed up current block from current file to
/tmp/backup_blk/SYSTEM.270.1015415183_241.20260209122822
OBET> repair blkscn
Repairing SCN for block 241...
Current block SCN information:
scn_base: 0x00000000 (0)
scn_wrap: 0x0000 (0)
Block 1 reference information:
hdr_base: 0xD75FF65E (3613390430)
hdr_wrap: 0x0006 (6)
Current block CSC information:
csc_base: 0xD75A0ED7 (3613003479)
csc_wrap: 0x0006 (6)
Calculated values:
blkcsc: 29382807255 (0x00000006D75A0ED7)
blkscn: 0 (0x0000000000000000)
blkscn < blkcsc, SCN repair required.
SCN repair requires edit mode.
Please enable edit mode with 'set mode edit' first.
OBET> set mode edit
mode set to: edit
OBET> repair blkscn
Repairing SCN for block 241...
Current block SCN information:
scn_base: 0x00000000 (0)
scn_wrap: 0x0000 (0)
Block 1 reference information:
hdr_base: 0xD75FF65E (3613390430)
hdr_wrap: 0x0006 (6)
Current block CSC information:
csc_base: 0xD75A0ED7 (3613003479)
csc_wrap: 0x0006 (6)
Calculated values:
blkcsc: 29382807255 (0x00000006D75A0ED7)
blkscn: 0 (0x0000000000000000)
blkscn < blkcsc, SCN repair required.
New SCN values to write:
new_scn_base: 0xD75FF65D (3613390429)
new_scn_wrap: 0x0006 (6)
Confirm SCN repair operations:
File: /datapool/asm_backup/orcl/datafile/SYSTEM.270.1015415183
Block: 241
Operations:
1. Write new scn_base (0xD75FF65D)
2. Write new scn_wrap (0x0006)
3. Fix seq_kcbh (0xFF -> 0x01)
Confirm? (Y/YES to proceed): y
[Undo information saved - use 'undo' command to restore original values]
Verification after SCN repair:
1. scn_base: 5DF65FD7 (expected: 5DF65FD7)
2. scn_wrap: 0600 (expected: 0600)
3. seq_kcbh: 0x01 OK
Block 241 SCN repair completed successfully.
Execute tailchk apply and sum apply for this block.
OBET> tailchk apply
Confirm applying tailchk:
File: /datapool/asm_backup/orcl/datafile/SYSTEM.270.1015415183
Block: 241
Offset in block: 8188 (file offset: 0x001E3FFC)
Original value: 0xFF060000
New value: 0x01065DF6
Confirm? (Y/YES to proceed): y
Verification successful: Stored tailchk matches calculated value (0x01065DF6).
Tailchk applied successfully.
OBET> sum apply
Confirm applying checksum:
File: /datapool/asm_backup/orcl/datafile/SYSTEM.270.1015415183
Block: 241
Offset in block: 16 (file offset: 0x001E2010)
Original value: 0x7330
New value: 0x2AE7
Confirm? (Y/YES to proceed): y
Verification successful: Stored checksum matches calculated value (0x2AE7).
Checksum applied successfully.
然后dbv检查数据文件
[oracle@db4 tmp]$ dbv file=/datapool/asm_backup/orcl/datafile/SYSTEM.270.1015415183
DBVERIFY: Release 11.2.0.4.0 - Production on Mon Feb 9 20:37:54 2026
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : FILE =
/datapool/asm_backup/orcl/datafile/SYSTEM.270.1015415183
DBVERIFY - Verification complete
Total Pages Examined : 738560
Total Pages Processed (Data) : 424109
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 287403
Total Pages Failing (Index): 1
Total Pages Processed (Other): 3408
Total Pages Processed (Seg) : 1
Total Pages Failing (Seg) : 0
Total Pages Empty : 23640
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 3613451063 (6.3613451063)
然后直接顺利打开数据库
SQL> alter database open; Database altered.
由于该库在我接手之前已经做了大量的强制拉库等各种恢复尝试,因此对该库做逻辑导出,导入新库完成本次恢复任务
obet修复csc higher than block scn类型坏块
最近有客户数据库报ORA-01092 ORA-01578错误导致数据库无法open
SQL> alter database open; alter database open * ERROR at line 1: ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00704: bootstrap process failure ORA-00704: bootstrap process failure ORA-00604: error occurred at recursive SQL level 1 ORA-01578: ORACLE data block corrupted (file # 1, block # 2123) ORA-01110: data file 1: '+DATADG/orcl/datafile/system.270.1015415183' Process ID: 239325 Session ID: 1599 Serial number: 7
通过dbv检查确认是csc higher than block scn故障
DBVERIFY: Release 11.2.0.4.0 - Production on Sat Feb 7 03:47:12 2026 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. DBVERIFY - Verification starting : FILE = +DATADG/orcl/datafile/SYSTEM.270.1015415183 DBV-00200: Block, DBA 4306619, already marked corrupt csc(0x0006.d75a14f4) higher than block scn(0x0000.00000000) Page 2123 failed with check code 6054 DBVERIFY - Verification complete Total Pages Examined : 738560 Total Pages Processed (Data) : 424109 Total Pages Failing (Data) : 1 Total Pages Processed (Index): 287403 Total Pages Failing (Index): 1 Total Pages Processed (Other): 3408 Total Pages Processed (Seg) : 1 Total Pages Failing (Seg) : 0 Total Pages Empty : 23640 Total Pages Marked Corrupt : 1 Total Pages Influx : 0 Total Pages Encrypted : 0 Highest block SCN : 3613010282 (6.3613010282)
对于这样的故障,最近把他整合到了obet工具中,执行命令为repair blkscn [block x]进行修复
C:\Users\XFF>dbv file=H:\TEMP\SYSTEM01.DBF DBVERIFY: Release 11.2.0.4.0 - Production on 星期日 2月 8 11:07:51 2026 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. DBVERIFY - 开始验证: FILE = H:\TEMP\SYSTEM01.DBF csc(0x0012.a0d783c4) higher than block scn(0x0000.00000000) 页 241 失败, 校验代码为 6054 DBVERIFY - 验证完成 检查的页总数: 325120 处理的页总数 (数据): 99921 失败的页总数 (数据): 1 处理的页总数 (索引): 34013 失败的页总数 (索引): 0 处理的页总数 (其他): 174241 处理的总页数 (段) : 1 失败的总页数 (段) : 0 空的页总数: 16945 标记为损坏的总页数: 0 流入的页总数: 0 加密的总页数 : 0 最高块 SCN : 2698836688 (18.2698836688)
使用obet修复csc higher than block scn 故障
OBET> set filename H:\TEMP\SYSTEM01.DBF filename set to: H:\TEMP\SYSTEM01.DBF OBET> set block 241 block set to: 241 OBET> set mode edit mode set to: edit OBET> repair blkscn Repairing SCN for block 241... Current block SCN information: scn_base: 0x00000000 (0) scn_wrap: 0x0000 (0) Block 1 reference information: hdr_base: 0xA0DCE449 (2698830921) hdr_wrap: 0x0012 (18) Current block CSC information: csc_base: 0xA0D783C4 (2698478532) csc_wrap: 0x0012 (18) Calculated values: blkcsc: 80007889860 (0x00000012A0D783C4) blkscn: 0 (0x0000000000000000) blkscn < blkcsc, SCN repair required. New SCN values to write: new_scn_base: 0xA0DCE448 (2698830920) new_scn_wrap: 0x0012 (18) Confirm SCN repair operations: File: H:\TEMP\SYSTEM01.DBF Block: 241 Operations: 1. Write new scn_base (0xA0DCE448) 2. Write new scn_wrap (0x0012) Confirm? (Y/YES to proceed): y [Undo information saved - use 'undo' command to restore original values] Verification after SCN repair: 1. scn_base: 48E4DCA0 (expected: 48E4DCA0) 2. scn_wrap: 1200 (expected: 1200) 3. seq_kcbh: 0x01 OK Block 241 SCN repair completed successfully. Execute tailchk apply and sum apply for this block. OBET> tailchk apply Confirm applying tailchk: File: H:\TEMP\SYSTEM01.DBF Block: 241 Offset in block: 8188 (file offset: 0x001E3FFC) Original value: 0x01060000 New value: 0x010648E4 Confirm? (Y/YES to proceed): y Verification successful: Stored tailchk matches calculated value (0x010648E4). Tailchk applied successfully. OBET> sum apply Confirm applying checksum: File: H:\TEMP\SYSTEM01.DBF Block: 241 Offset in block: 16 (file offset: 0x001E2010) Original value: 0xAD0F New value: 0x63AF Confirm? (Y/YES to proceed): y Verification successful: Stored checksum matches calculated value (0x63AF). Checksum applied successfully.
dbv验证该错误已经修复
C:\Users\XFF>dbv file=H:\TEMP\SYSTEM01.DBF DBVERIFY: Release 11.2.0.4.0 - Production on 星期日 2月 8 11:11:12 2026 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. DBVERIFY - 开始验证: FILE = H:\TEMP\SYSTEM01.DBF DBVERIFY - 验证完成 检查的页总数: 325120 处理的页总数 (数据): 99921 失败的页总数 (数据): 0 处理的页总数 (索引): 34013 失败的页总数 (索引): 0 处理的页总数 (其他): 174241 处理的总页数 (段) : 1 失败的总页数 (段) : 0 空的页总数: 16945 标记为损坏的总页数: 0 流入的页总数: 0 加密的总页数 : 0 最高块 SCN : 2698836688 (18.2698836688)


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

