











大量的恢复经验和实战总结,逐步了完善obet(Oracle Block Edit Tool)功能和实现恢复的便利性.对于数据库恢复其中一个重要功能就是检测数据块的损坏情况(这个直接关系到恢复的实际效果),Oracle本身提供的dbv功能有一些不足,obet工具的dbv功能是对oracle本身的dbv功能的深度完善,弥补其本身的几个功能不足点:
1. Oracle dbv 需要安装oracle 软件,对于有些时候为了一个dbv检测需要安装Oracle 软件,成本和动作太大,obet工具直接单个文件即可运行
2. 如果数据文件头损坏,或者文件大小不对,或者block 0损坏,Oracle自带dbv均无法检测
3. Oracle dbv无法实现跨字节序检测(比如需要在win平台上检测aix系统的数据文件的坏块情况[比如硬件恢复场景需要])
4. Oracle dbv有些版本无法实现低版本dbv检测高版本数据库文件
5. Oracle dbv无法一条命令实现多个数据文件检测(需要人工写脚本来实现)
在使用obet的dbv功能之前需要准备listfile文件(内容格式:No Name)
listfile文件操作
1. 在可以mount的库中可以直接通过查询v$datafile(select file#,name from v$datafile),把结果保存到listfile.txt中
2. 通过obet的listfile功能直接获取
OBET> listfile
Usage: listfile <path|remove|edit>
listfile <path> - Scan directory and write to listfile.txt
listfile remove - Delete listfile.txt
listfile edit [path] - Edit listfile.txt (notepad on Win, vi on Linux)
listfile 支持*通配符
OBET> listfile e:\oradata\orcl\sys*.dbf
Listed 2 files from 'e:\oradata\orcl' to listfile.txt (starting from
OBET> open listfile.txt
Loaded 2 files from datafile list 'listfile.txt'.
OBET> info
Loaded files (2 total):
----------------------------------------
Number Path
----------------------------------------
1 e:\oradata\orcl\SYSAUX01.DBF
2 e:\oradata\orcl\SYSTEM01.DBF
----------------------------------------
listfile remove 直接删除掉当前目录下面的listfile.txt文件
listfile edit 直接调用notepad/vi 编辑模式打开当前目录下的listfile.txt文件(也可以指定具体文件名称)
3. 使用open命令加载listfile
OBET> open listfile.txt
Loaded 2 files from datafile list 'listfile.txt'.
OBET> info
Loaded files (2 total):
----------------------------------------
Number Path
----------------------------------------
1 e:\oradata\orcl\SYSAUX01.DBF
2 e:\oradata\orcl\SYSTEM01.DBF
----------------------------------------
dbv之前确认参数设置
在执行dbv之前需要先确认当前一些配置,和dbv相关的主要是blocksize(默认值为8192),endian(默认值为little),可以通过show命令查看(如果是检测linux/win环境下默认的oracle数据文件,理论上不用这修改这些值)
OBET> show
Current settings:
File: (not set)
Blocksize: 8192 bytes
Block: 1
Offset in block: 0 (file offset: 0x00002000)
Count: 32 bytes
Mode: browse
Endian: little (x86)
Loaded files: 2 (use 'info' to list)
可以根据情况通过set命令修改相关值,具体语法为:set
OBET> set
Usage: set <param> <value>
set filename <path> - Set target file path (required)
set file <num> - Set filename using loaded file number (from open list)
set blocksize <size> - Set block size (2048,4096,[8192],16384,32768)
set block <num> - Set block number (starts from 0, default: 1)
set offset <offset> - Set offset within block (< blocksize, default: 0)
set count <bytes> - Set number of bytes to read (default: 32)
set mode edit/browse - Enable edit/browse mode
set endian big/little - Set byte order (default: little, big for AIX files)
dbv 检测数据文件
具体语法为:dbv [file N [block M [blocks X]]]
dbv 检测open listfile中的所有数据文件的所有block
dbv file N 检测listfile中编号为N的数据文件的所有block
dbv file N block M 检测listfile中编号为N的数据文件的block M开始到文件结束
dbv file N block M block X 检测listfile中编号为N的数据文件的block M开始,检测X个block
OBET> dbv
===============================================
DBV (Data Block Verification)
Block Size: 8192 bytes
Endian: little-endian (x86)
Target File: ALL files in listfile
===============================================
Verifying file
File
Progress: 100000 / 139521 blocks checked...
File
Verifying file
File
Progress: 100000 / 126721 blocks checked...
File
DBV completed at: 2026-08-16 17:37:26
===============================================
DBV Summary:
Total blocks checked: 266242
Total all zero blocks found: 0
Total all rdba error blocks found: 0
Total all tailchk error blocks found: 0
Total all soft corrupted blocks found: 0
Total all checksum error blocks found: 0
Total bad blocks found: 0
Execution time: 1.00 seconds
Throughput: 2080.02 MB/s
===============================================
Detailed report saved to: dbv_20260816173725.log
Files processed: 2
OBET> dbv file 1
===============================================
DBV (Data Block Verification)
Block Size: 8192 bytes
Endian: little-endian (x86)
Target File:
===============================================
Verifying file
File
Progress: 100000 / 139521 blocks checked...
File
DBV completed at: 2026-08-16 17:37:32
===============================================
DBV Summary:
Total blocks checked: 139521
Total all zero blocks found: 0
Total all rdba error blocks found: 0
Total all tailchk error blocks found: 0
Total all soft corrupted blocks found: 0
Total all checksum error blocks found: 0
Total bad blocks found: 0
Execution time: 1.00 seconds
Throughput: 1090.01 MB/s
===============================================
Detailed report saved to: dbv_file_1_20260816173731.log
Files processed: 1
OBET> dbv file 1 block 128
===============================================
DBV (Data Block Verification)
Block Size: 8192 bytes
Endian: little-endian (x86)
Target File:
===============================================
Verifying file
File
Progress: 100128 / 139521 blocks checked...
File
DBV completed at: 2026-08-16 17:37:43
===============================================
DBV Summary:
Total blocks checked: 139393
Total all zero blocks found: 0
Total all rdba error blocks found: 0
Total all tailchk error blocks found: 0
Total all soft corrupted blocks found: 0
Total all checksum error blocks found: 0
Total bad blocks found: 0
Execution time: 1.00 seconds
Throughput: 1090.01 MB/s
===============================================
Detailed report saved to: dbv_file_1_block_128_20260816173742.log
Files processed: 1
OBET> dbv file 1 block 128 blocks 10
===============================================
DBV (Data Block Verification)
Block Size: 8192 bytes
Endian: little-endian (x86)
Target File:
===============================================
Verifying file
File
File
DBV completed at: 2026-08-16 17:37:47
===============================================
DBV Summary:
Total blocks checked: 10
Total all zero blocks found: 0
Total all rdba error blocks found: 0
Total all tailchk error blocks found: 0
Total all soft corrupted blocks found: 0
Total all checksum error blocks found: 0
Total bad blocks found: 0
Execution time: 0.00 seconds
Throughput: 0.00 MB/s
===============================================
Detailed report saved to: dbv_file_1_block_128_20260816173747.log
Files processed: 1
检测的具体明细可以看obet所在的当前目录中的dbv*.log文件,里面有坏块类型:
rdba error:表示block#和该块所在位置不匹配
tailchk/checksum error:表示该block不满足Oracle的校验规则
soft corrupted:表示该block在Oracle数据库标记为坏块
zero block:表示该block中全部为0,一般是由于底层损坏,或者硬件恢复过程使用空块替代引起
filesize_status:NO表示文件实际大小和文件头记录大小不匹配
下载obet obet使用说明
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。