标签云
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错误
标签归档:DBV-00107
obet实现对数据文件坏块检测功能
通过一段时间的测试和使用,obet修复了不少bug,关于obet的以往功能和特性的文章:
Oracle数据块编辑工具( Oracle Block Editor Tool)-obet
obet(Oracle Block Editor Tool)第二版发布
并且也在客户的生产环境上进行了实战:obet快速修改scn/resetlogs恢复数据库(缺少归档,ORA-00308).利用周末的时间又对obet的工具进行了功能增强,增加了dbv(数据块校验)功能.
Oracle dbv的不足
1. oracle dbv需要在安装oracle服务端的环境下才能执行
2. oracle dbv对于文件大小不正确(文件头记录block数和实际文件大小不匹配),文件头损坏等情况都可能导致dbv无法执行,类似下面的报错
C:\Users\XFF>dbv file=H:\BaiduNetdisk\kingdee\system01.dbf DBVERIFY: Release 11.2.0.4.0 - Production on 星期日 1月 11 17:30:29 2026 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. DBV-00107: 未知标头格式 (0) (2054913149) C:\Users\XFF>
C:\Users\XFF>dbv file=H:\BaiduNetdisk\kingdee\users01.dbf DBVERIFY: Release 11.2.0.4.0 - Production on 星期日 1月 11 20:10:05 2026 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. DBV-00102: FILE (H:\BAIDUNETDISK\KINGDEE\USERS01.DBF) 在 end read 操作 (-1) 期间出现文件 I/O 错误 C:\Users\XFF>
3. oracle dbv一条命令执行检测一个数据文件,如果数据文件多,检查起来很繁琐
4. oracle dbv么有检查进度,对于io性能较慢,数据文件较大的情况,无法跟踪检查进度.
obet的dbv功能使用
1. 配置listfile.txt文件,格式为file# name
1 H:\BaiduNetdisk\kingdee\system01.dbf 5 H:\BaiduNetdisk\kingdee\EAS_D_EAS_STANDARD.ORA
2. 启动obet,执行open listfile.txt(如果不在obet目录提供完整路径)
OBET> open listfile.txt
Loaded 2 files from config file 'listfile.txt'.
OBET> info
Loaded files (2 total):
----------------------------------------
Number Path
----------------------------------------
1 H:\BaiduNetdisk\kingdee\system01.dbf
5 H:\BaiduNetdisk\kingdee\EAS_D_EAS_STANDARD.ORA
----------------------------------------
3. 执行dbv命令(logfile
OBET> dbv =============================================== DBV (Data Block Verification) Block Size: 8192 bytes =============================================== Verifying file #1: H:\BaiduNetdisk\kingdee\system01.dbf (131841 blocks) - Started: 2026-01-11 18:03:58 file 1, block 0: checksum error (expected 0xC4DA, got 0xC478), bad block file 1, block 1: checksum error (expected 0xF835, got 0xB835), bad block Progress: 10000 / 131841 blocks checked... Progress: 20000 / 131841 blocks checked... ………………. Progress: 120000 / 131841 blocks checked... Progress: 130000 / 131841 blocks checked... File #1 completed: 0 all zero, 0 soft corrupted, 0 tailchk error, 2 checksum error, 0 rdba error Verifying file #5: H:\BaiduNetdisk\kingdee\EAS_D_EAS_STANDARD.ORA (4194303 blocks) - Started: 2026-01-11 18:04:08 Progress: 10000 / 4194303 blocks checked... Progress: 20000 / 4194303 blocks checked... …………………… Progress: 260000 / 4194303 blocks checked... Progress: 270000 / 4194303 blocks checked... file 5, block 277678: tailchk error (expected 0x0228BB21, got 0x0228AD21), bad block file 5, block 277679: rdba error (expected 277679, got 277615), bad block file 5, block 277680: rdba error (expected 277680, got 277616), bad block file 5, block 277681: rdba error (expected 277681, got 277617), bad block ……………… file 5, block 277692: rdba error (expected 277692, got 277628), bad block file 5, block 277693: rdba error (expected 277693, got 277629), bad block file 5, block 277694: rdba error (expected 277694, got 277630), bad block file 5, block 279406: tailchk error (expected 0x02281E22, got 0x00000700), bad block file 5, block 279407: rdba error (expected 279407, got 448), bad block file 5, block 279408: rdba error (expected 279408, got 0), bad block ……………… Progress: 280000 / 4194303 blocks checked... Progress: 290000 / 4194303 blocks checked... Progress: 300000 / 4194303 blocks checked... Progress: 310000 / 4194303 blocks checked... file 5, block 312932: tailchk error (expected 0x0106C0B8, got 0x010629B8), bad block file 5, block 312933: rdba error (expected 312933, got 312869), bad block file 5, block 312934: rdba error (expected 312934, got 312870), bad block file 5, block 312935: rdba error (expected 312935, got 312871), bad block file 5, block 312936: rdba error (expected 312936, got 312872), bad block file 5, block 312937: rdba error (expected 312937, got 312873), bad block file 5, block 312938: rdba error (expected 312938, got 312874), bad block file 5, block 312939: rdba error (expected 312939, got 312875), bad block ……………… Progress: 4180000 / 4194303 blocks checked... Progress: 4190000 / 4194303 blocks checked... File #5 completed: 1 all zero, 0 soft corrupted, 13 tailchk error, 1 checksum error, 255 rdba error DBV completed at: 2026-01-11 18:09:30 =============================================== DBV Summary: Total blocks checked: 4325872 Total all zero blocks found: 1 Total all rdba error blocks found: 255 Total all tailchk error blocks found: 13 Total all soft corrupted blocks found: 0 Total all checksum error blocks found: 3 Total bad blocks found: 272 =============================================== Detailed report saved to: dbv_20260111180358.log OBET>
obet工具下载地址:obet下载
obet工具使用说明:obet使用说明
DBV-00107: Unknown header format 故障处理
客户linux平台被勒索病毒加密,其中有oracle数据库.客户联系黑客进行解密【勒索解密oracle失败】,但是数据库无法正常启动,dbv检查数据库文件报错
[oracle@hisdb ~]$ dbv file=system01.dbf DBVERIFY: Release 11.2.0.1.0 - Production on 星期一 11月 27 21:49:17 2023 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. DBV-00107: 未知标头格式 (31) (287942924)
对应的英文为:DBV-00107: Unknown header format (31) (287942924),检查数据文件信息发现提示为 FILE NOT FOUND,使用脚本为:Oracle数据库异常恢复检查脚本(Oracle Database Recovery Check)检测结果

通过分区确认是文件头损坏

修复正确的文件头

再次dbv检查数据文件
[oracle@hisdb ~]$ dbv file=system01.dbf DBVERIFY: Release 11.2.0.1.0 - Production on 星期一 11月 27 22:05:41 2023 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. DBVERIFY - 开始验证: FILE = /u01/app/oracle/oradata/system01.dbf 页 12800 标记为损坏 Corrupt block relative dba: 0x00403200 (file 1, block 12800) Bad header found during dbv: Data in bad block: type: 88 format: 1 rdba: 0x33877808 last change scn: 0x257a.7b3a44e3 seq: 0xe8 flg: 0xe6 spare1: 0x4e spare2: 0x73 spare3: 0x0 consistency value in tail: 0x65251001 check value in block header: 0xc3b4 computed block checksum: 0x4ca7 DBVERIFY - 验证完成 检查的页总数: 13440 处理的页总数 (数据): 3297 失败的页总数 (数据): 0 处理的页总数 (索引): 2097 失败的页总数 (索引): 0 处理的页总数 (其他): 1441 处理的总页数 (段) : 1 失败的总页数 (段) : 0 空的页总数: 6604 标记为损坏的总页数: 1 流入的页总数: 0 加密的总页数 : 0 最高块 SCN : 1667927064 (12.1667927064)
修复其他文件头,并dbv检查,发现均在12800位置损坏.尝试recover database恢复数据库,报ORA-00742 ORA-00312之类错误.【由于redo损坏,报出来数据文件更多坏块】
Sat Nov 25 17:03:39 2023 ALTER DATABASE RECOVER database Media Recovery Start started logmerger process Parallel Media Recovery started with 40 slaves Sat Nov 25 17:03:40 2023 Recovery of Online Redo Log: Thread 1 Group 7 Seq 27220 Reading mem 0 Mem# 0: /u01/app/oracle/oradata/redo07.log Sat Nov 25 17:03:41 2023 Hex dump of (file 3, block 7) in trace file /u01/app/oracle/diag/rdbms/his/his/trace/his_pr0l_52669.trc Corrupt block relative dba: 0x00c00007 (file 3, block 7) Bad header found during media recovery Data in bad block: type: 124 format: 7 rdba: 0x1698b845 last change scn: 0x4fa1.3eaa638f seq: 0x6 flg: 0x24 spare1: 0x26 spare2: 0x42 spare3: 0x0 consistency value in tail: 0xa39e1e01 check value in block header: 0x2ca4 computed block checksum: 0x3b25 Reading datafile '/u01/app/oracle/oradata/undotbs01.dbf' for corruption at rdba: 0x00c00007 (file 3, block 7) Reread (file 3, block 7) found same corrupt data (no logical check) Sat Nov 25 17:03:41 2023 Hex dump of (file 46, block 3) in trace file /u01/app/oracle/diag/rdbms/his/his/trace/his_pr0w_52691.trc Corrupt block relative dba: 0x0b800003 (file 46, block 3) Bad header found during media recovery Data in bad block: type: 7 format: 7 rdba: 0x77922022 last change scn: 0xdff3.c40df5b6 seq: 0x6f flg: 0xe5 spare1: 0xcd spare2: 0x6d spare3: 0x83d7 consistency value in tail: 0x63c63d2c check value in block header: 0xf662 computed block checksum: 0xec49 Data in bad block: type: 135 format: 4 rdba: 0x45ad2864 last change scn: 0x9d7e.34949c73 seq: 0x32 flg: 0x3e spare1: 0x89 spare2: 0x0 spare3: 0x9f9f consistency value in tail: 0xa5807800 check value in block header: 0xb2c9 computed block checksum: 0x3aea Reread (file 5, block 11259) found same corrupt data (no logical check) type: 214 format: 1 rdba: 0x0228dbe9 Bad header found during media recovery last change scn: 0xed57.ca4f7559 seq: 0x9b flg: 0x4a Data in bad block: spare1: 0x97 spare2: 0x77 spare3: 0x2bab type: 33 format: 6 rdba: 0x018d584a consistency value in tail: 0x359f90d6 last change scn: 0xaeb8.2fa361eb seq: 0x60 flg: 0x92 check value in block header: 0x6b26 spare1: 0xea spare2: 0xe spare3: 0xb405 block checksum disabled Reread (file 3, block 4) found same corrupt data (no logical check) Corrupt block relative dba: 0x0b800e61 (file 46, block 3681) Bad header found during media recovery Data in bad block: type: 131 format: 6 rdba: 0xc7edd0fc last change scn: 0xd319.d0e54941 seq: 0x6f flg: 0x6d spare1: 0xe7 spare2: 0x82 spare3: 0x439f consistency value in tail: 0x18dc47b6 check value in block header: 0xe9c8 computed block checksum: 0x204d Reread (file 46, block 3681) found same corrupt data (no logical check) Hex dump of (file 1, block 2017) in trace file /u01/app/oracle/diag/rdbms/his/his/trace/his_pr10_52699.trc Corrupt block relative dba: 0x004007e1 (file 1, block 2017) Bad header found during media recovery Data in bad block: type: 159 format: 2 rdba: 0x52c5b2b0 last change scn: 0x2ed8.e0bc5af9 seq: 0x62 flg: 0xe9 spare1: 0x81 spare2: 0x1e spare3: 0xda98 consistency value in tail: 0xc5753dd3 check value in block header: 0x2bba block checksum disabled Reading datafile '/u01/app/oracle/oradata/system01.dbf' for corruption at rdba: 0x004007e1 (file 1, block 2017) Reread (file 1, block 2017) found same corrupt data (no logical check) Media Recovery failed with error 742 Errors in file /u01/app/oracle/diag/rdbms/his/his/trace/his_pr00_52622.trc: ORA-00283: recovery session canceled due to errors ORA-00742: Log read detects lost write in thread %d sequence %d block %d ORA-00312: online log 7 thread 1: '/u01/app/oracle/oradata/redo07.log' ORA-10877 signalled during: ALTER DATABASE RECOVER database ...
尝试强制打开数据库报ORA-600 krsi_al_hdr_update.15,参考:Oracle断电故障处理中有类似报错
SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-00600: internal error code, arguments: [krsi_al_hdr_update.15], [4294967295], [], [], [], [], [], [], [], [], [], []
由于redo问题无法resetlogs成功,解决异常redo,再次尝试open库,由于undo坏块无法open成功,报ORA-01092 ORA-01578等错误
SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-01092: ORACLE instance terminated. Disconnection forced ORA-01578: ORACLE data block corrupted (file # 3, block # 1848) ORA-01110: data file 3: '/u01/app/oracle/oradata/undotbs01.dbf' Process ID: 55655 Session ID: 2623 Serial number: 5
解决undo异常,数据库open成功.导出客户需要数据,完成此次恢复工作


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

