obet(Oracle Block Editor Tool)第二版发布

在几天之前发布了obet的第一个版本(Oracle数据块编辑工具( Oracle Block Editor Tool)-obet),最近对功能进行了一些完善,并发布第二版(下载地址:下载obet),主要增加了以下几个功能:
0) corrupt [block x] 命令主要用于标记坏块功能(在第一版中已经完善)
1) repair [block x] 命令对于坏块的自动修复,主要包括checksum,tailchk,seq_kcbh等
2)增加copy chkscn 命令主要用于对文件头的checkpoint scn相关信息修复
3)增加copy resetlogscn命令主要用于对文件头的resetlogs相关信息修复
4)把之前的copy命令调整为copy data命令格式
5)增加copy block命令主要用于数据文件之间的数据块直接拷贝
该版本的help命令提示

OBET (Oracle Block Editor Tool) commands:

  open <config_file>    - Load file list from config file (format: <num> <path>)

  info                  - Show loaded file list (from open command)

  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

  d/dump [options]      - Display data (options: block X, offset Y, count N)

  m/modify <hex> [opts] - Modify data with hex (opts: block X, offset Y)

  undo                  - Undo last modification

  sum [block X]         - Calculate checksum for block (default: current block)

  sum apply [block X]   - Apply checksum: write calculated value to block

  tailchk [block X]     - Calculate tailchk for block (default: current block)

  tailchk apply [block X] - Apply tailchk: write calculated value to block

  repair [block X]      - Repair bad block (fix seq_kcbh, tailchk, checksum)

  copy data <src> to <dest>  - Copy data between files

    <src> format: file,block,offset,count (e.g., 1,1,10,64)

    <dest> format: file[,block][,offset] (e.g., 3 or 3,1 or 3,1,128)

  copy block file#,block# to file#,block#     - Copy entire data block

  copy chkscn file n to file m         - Copy datafile header checkpoint SCN info

  copy resetlogscn file n to file m    - Copy datafile header resetlogs info

  corrupt [block X]     - Mark block as corrupted (default: current block)

  show                  - Display current settings (filename, blocksize, block, offset, count, mode)

  license               - Show/manage software license (registration code required)

  version               - Show software version and developer information

  p/print <param>       - Print Oracle structure,Use the 'p/print' command to see details

  undo                  - Undo the last copy chkscn or copy resetlogscn operation

  help                  - Show this help message

  quit/exit             - Exit OBET

copy block功能演示
随便把一个block拷贝到文件的另外位置,也可以拷贝到不同文件的其他位置,根据需要调整

OBET> copy block 1,1 to 1,5

Confirm copy block:

Source: file#1 (/u01/xifenfei/system01.dbf), block 1 (entire 8192-byte block)

Target: file#1 (/u01/xifenfei/system01.dbf), block 5 (entire 8192-byte block)

Proceed? (Y/YES to confirm): y

Successfully copied block 1 from file#1 to block 5 in file#1 (8192 bytes).

OBET> set file 1

filename set to: /u01/xifenfei/system01.dbf (file#1)

OBET> set count 128

count set to: 128

OBET> dump block 1 offset 0

File: /u01/xifenfei/system01.dbf

Block: 1                Offsets:     0 to   127

--------------------------------------------------------------------------------

00002000 01230000 01004000 00000000 00000104 28C60000 00000000 0004200B A2DB266A

00002020 58494645 4E464549 AC020000 00720100 00200000 01000300 00000000 00000000

00002040 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00002060 08024000 07000000 00000000 7DC92131 12345678 87654321 00000000 00000000

<128 bytes read>

OBET> dump block 5 offset 0

File: /u01/xifenfei/system01.dbf

Block: 5                Offsets:     0 to   127

--------------------------------------------------------------------------------

0000A000 01230000 01004000 00000000 00000104 28C60000 00000000 0004200B A2DB266A

0000A020 58494645 4E464549 AC020000 00720100 00200000 01000300 00000000 00000000

0000A040 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0000A060 08024000 07000000 00000000 7DC92131 12345678 87654321 00000000 00000000

<128 bytes read>

copy chkscn功能演示

OBET> p kcvfh.kcvfhckp

File: H:\xifenfei\system01.dbf

Size: 8192 bytes

Block: 1

Offset: 484

struct kcvfhckp, 36 bytes                   @484

   struct kcvcpscn, 8 bytes                 @484

      ub4 kscnbas                          @484     0x1BDDBF09

      ub2 kscnwrp                          @488     0x163D

      ub2 kscnwrp2                         @490     0x0000

   ub4 kcvcptim                            @492     0x488361FC

   ub2 kcvcpthr                            @496     0x0001

   union u, 12 bytes                       @500

      struct kcvcprba, 12 bytes            @500

         ub4 kcrbaseq                     @500     0x0006E3D3

         ub4 kcrbabno                     @504     0x0000B44B

         ub2 kcrbabof                     @508     0x0010

   ub1 kcvcpetb[8]                         @512-519 02 00 00 00 00 00 00 00

OBET> p kcvfh.kcvfhckp

File: H:\xifenfei\sysaux01.dbf

Size: 8192 bytes

Block: 1

Offset: 484

struct kcvfhckp, 36 bytes                   @484

   struct kcvcpscn, 8 bytes                 @484

      ub4 kscnbas                          @484     0x67452301

      ub2 kscnwrp                          @488     0x0000

      ub2 kscnwrp2                         @490     0x0000

   ub4 kcvcptim                            @492     0x00000000

   ub2 kcvcpthr                            @496     0x0000

   union u, 12 bytes                       @500

      struct kcvcprba, 12 bytes            @500

         ub4 kcrbaseq                     @500     0x0006E3D3

         ub4 kcrbabno                     @504     0x0000B44B

         ub2 kcrbabof                     @508     0x0010

   ub1 kcvcpetb[8]                         @512-519 02 00 00 00 00 00 00 00

<kcvfh.kcvfhckp structure printed successfully>

OBET> copy chkscn file 1 to file 2

Confirm Modify chkscn:

Source: file#1 (H:\xifenfei\system01.dbf)

Target: file#2 (H:\xifenfei\sysaux01.dbf)

Proceed? (Y/YES to confirm): y

Successfully copied checkpoint SCN information from file#1 to file#2.

OBET> p kcvfh.kcvfhckp

File: H:\xifenfei\sysaux01.dbf

Size: 8192 bytes

Block: 1

Offset: 484

struct kcvfhckp, 36 bytes                   @484

   struct kcvcpscn, 8 bytes                 @484

      ub4 kscnbas                          @484     0x1BDDBF09

      ub2 kscnwrp                          @488     0x163D

      ub2 kscnwrp2                         @490     0x0000

   ub4 kcvcptim                            @492     0x488361FC

   ub2 kcvcpthr                            @496     0x0001

   union u, 12 bytes                       @500

      struct kcvcprba, 12 bytes            @500

         ub4 kcrbaseq                     @500     0x0006E3D3

         ub4 kcrbabno                     @504     0x0000B44B

         ub2 kcrbabof                     @508     0x0010

   ub1 kcvcpetb[8]                         @512-519 02 00 00 00 00 00 00 00

<kcvfh.kcvfhckp structure printed successfully>

copy resetlogscn功能演示

OBET> p kcvfh.kcvfhrlc

File: H:\xifenfei\system01.dbf

Size: 8192 bytes

Block: 1

Offset: 112

ub4 kcvfhrlc                             @112     0x3215EC5C

<kcvfh.kcvfhrlc structure printed successfully>

OBET> p kcvfh.kcvfhrls

File: H:\xifenfei\system01.dbf

Size: 8192 bytes

Block: 1

Offset: 116

struct kcvfhrls, 8 bytes                    @116

   ub4 kscnbas                             @116     0x000E74FF

   ub2 kscnwrp                             @120     0x0000

   ub2 kscnwrp2                            @122     0x0000

<kcvfh.kcvfhrls structure printed successfully>

OBET> p kcvfh.kcvfhrlc

File: H:\xifenfei\sysaux01.dbf

Size: 8192 bytes

Block: 1

Offset: 112

ub4 kcvfhrlc                             @112     0x67452301

<kcvfh.kcvfhrlc structure printed successfully>

OBET> p kcvfh.kcvfhrls

File: H:\xifenfei\sysaux01.dbf

Size: 8192 bytes

Block: 1

Offset: 116

struct kcvfhrls, 8 bytes                    @116

   ub4 kscnbas                             @116     0x43658709

   ub2 kscnwrp                             @120     0x0021

   ub2 kscnwrp2                            @122     0x0000

<kcvfh.kcvfhrls structure printed successfully>

OBET> copy resetlogscn file 1 to file 2

Confirm Modify resetlogscn:

Source: file#1 (H:\xifenfei\system01.dbf)

Target: file#2 (H:\xifenfei\sysaux01.dbf)

Proceed? (Y/YES to confirm): y

Successfully copied resetlog SCN information from file#1 to file#2.

OBET> p kcvfh.kcvfhrlc

File: H:\xifenfei\sysaux01.dbf

Size: 8192 bytes

Block: 1

Offset: 112

ub4 kcvfhrlc                             @112     0x3215EC5C

<kcvfh.kcvfhrlc structure printed successfully>

OBET> p kcvfh.kcvfhrls

File: H:\xifenfei\sysaux01.dbf

Size: 8192 bytes

Block: 1

Offset: 116

struct kcvfhrls, 8 bytes                    @116

   ub4 kscnbas                             @116     0x000E74FF

   ub2 kscnwrp                             @120     0x0000

   ub2 kscnwrp2                            @122     0x0000

<kcvfh.kcvfhrls structure printed successfully>

corrupt [block x]标记坏块功能

C:\Users\XFF>dbv file=h:/xifenfei/users01.dbf

DBVERIFY: Release 11.2.0.4.0 - Production on 星期三 11月 12 21:40:55 2025

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

DBVERIFY - 开始验证: FILE = H:\XIFENFEI\USERS01.DBF

DBVERIFY - 验证完成

检查的页总数: 26656

处理的页总数 (数据): 23569

失败的页总数 (数据): 0

处理的页总数 (索引): 309

失败的页总数 (索引): 0

处理的页总数 (其他): 720

处理的总页数 (段)  : 0

失败的总页数 (段)  : 0

空的页总数: 2058

标记为损坏的总页数: 0

流入的页总数: 0

加密的总页数        : 0

最高块 SCN            : 2255414715 (18.2255414715)

OBET> corrupt block 10

Confirm modification:

File: h:/xifenfei/users01.dbf

Block: 10

Offset: 14 (file offset: 0x0001400E)

Original value: 01

New value:      FF

Are you sure to set this block corrupted? (Y/YES to proceed): y

Verification successful: Block 10 marked as corrupted (offset 14 set to 0xFF).

Modification successful.

C:\Users\XFF>dbv file=h:/xifenfei/users01.dbf

DBVERIFY: Release 11.2.0.4.0 - Production on 星期三 11月 12 21:41:22 2025

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

DBVERIFY - 开始验证: FILE = H:\XIFENFEI\USERS01.DBF

页 10 流入 - 很可能是介质损坏

Corrupt block relative dba: 0x0100000a (file 4, block 10)

Fractured block found during dbv:

Data in bad block:

 type: 30 format: 2 rdba: 0x0100000a

 last change scn: 0x0000.00003e78 seq: 0xff flg: 0x04

 spare1: 0x0 spare2: 0x0 spare3: 0x0

 consistency value in tail: 0x3e781e01

 check value in block header: 0x1a6

 computed block checksum: 0xfe

DBVERIFY - 验证完成

检查的页总数: 26656

处理的页总数 (数据): 23569

失败的页总数 (数据): 0

处理的页总数 (索引): 309

失败的页总数 (索引): 0

处理的页总数 (其他): 719

处理的总页数 (段)  : 0

失败的总页数 (段)  : 0

空的页总数: 2058

标记为损坏的总页数: 1

流入的页总数: 1

加密的总页数        : 0

最高块 SCN            : 2255414715 (18.2255414715)

repair [block x]修复坏块功能

C:\Users\XFF>dbv file=h:/xifenfei/undo01.dbf

DBVERIFY: Release 11.2.0.4.0 - Production on 星期日 11月 16 00:06:59 2025

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

DBVERIFY - 开始验证: FILE = H:\XIFENFEI\UNDO01.DBF

页 2 流入 - 很可能是介质损坏

Corrupt block relative dba: 0x02000002 (file 8, block 2)

Fractured block found during dbv:

Data in bad block:

 type: 29 format: 2 rdba: 0x02000002

 last change scn: 0x163d.1bddbcfa seq: 0xff flg: 0x04

 spare1: 0x0 spare2: 0x0 spare3: 0x0

 consistency value in tail: 0xbcfa1d02

 check value in block header: 0xec11

 computed block checksum: 0xfd

DBVERIFY - 验证完成

检查的页总数: 4880

处理的页总数 (数据): 0

失败的页总数 (数据): 0

处理的页总数 (索引): 0

失败的页总数 (索引): 0

处理的页总数 (其他): 4372

处理的总页数 (段)  : 11

失败的总页数 (段)  : 0

空的页总数: 507

标记为损坏的总页数: 1

流入的页总数: 1

加密的总页数        : 0

最高块 SCN            : 467517187 (5693.467517187)

OBET> repair

Repairing block 2 in file H:\xifenfei\undo01.dbf...

Repair analysis for block 2:

1. seq_kcbh check: 0xFF -> needs repair (0x01)

2. Tailchk check: 0x021DFABC -> needs repair (0x011DFABC)

3. Checksum check: 0x11EC -> OK

Confirm repair operations:

File: H:\xifenfei\undo01.dbf

Block: 2

Operations needed: fix offset14, fix tailchk

Confirm? (Y/YES to proceed): y

Verification after repair:

1. seq_kcbh: 0x01 OK

2. Tailchk: 0x011DFABC OK

3. Checksum: 0x11EC OK

Block 2 repair completed successfully.

C:\Users\XFF>dbv file=h:/xifenfei/undo01.dbf

DBVERIFY: Release 11.2.0.4.0 - Production on 星期日 11月 16 00:07:29 2025

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

DBVERIFY - 开始验证: FILE = H:\XIFENFEI\UNDO01.DBF

DBVERIFY - 验证完成

检查的页总数: 4880

处理的页总数 (数据): 0

失败的页总数 (数据): 0

处理的页总数 (索引): 0

失败的页总数 (索引): 0

处理的页总数 (其他): 4373

处理的总页数 (段)  : 11

失败的总页数 (段)  : 0

空的页总数: 507

标记为损坏的总页数: 0

流入的页总数: 0

加密的总页数        : 0

最高块 SCN            : 467517187 (5693.467517187)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值