ITPub博客

首页 > 应用开发 > IT综合 > bbed(二)

bbed(二)

原创 IT综合 作者:imlihj2007 时间:2011-08-02 15:20:10 0 删除 编辑

-----------bbed x and f and changed file header-----------
--寻找数据类型
select CASE DATA_TYPE
WHEN 'NUMBER' THEN 'n'
WHEN 'DATE' THEN 't'
when 'VARCHAR2' then 'c'
else 'c'
end case
from user_tab_columns
where table_name = 'LIHJ'

--打印数据
BBED> x /rnntnnccntntntnntnnnncnncntc
rowdata[1243] @7890
-------------
flag@7890: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@7891: 0x00
cols@7892: 25

col 0[2] @7893: 2
col 1[4] @7896: 444079
col 2[7] @7901: 30-JUN-05
col 3[2] @7909: 1
col 4[2] @7912: 2
col 5[6] @7915: SYSTNE
col 6[10] @7922: READ WRITE
col 7[4] @7933: 724169
col 8[7] @7938: 15-JUL-11
col 9[1] @7946: 0
col 10[0] @7948: *NULL*
col 11[0] @7949: *NULL*
col 12[0] @7950: *NULL*
col 13[4] @7951: 446074
col 14[4] @7956: 446075
col 15[7] @7961: 06-APR-11
col 16[4] @7969: 26214400
col 17[2] @7974: 3200
col 18[1] @7977: 0
col 19[3] @7979: 8192
col 20[42] @7983: /u01/app/oracle/oradata/test/undotbs01.dbf
col 21[1] @8026: 0
col 22[3] @8028: 8192
col 23[4] @8032: NONE
col 24[1] @8037: 0

---查找具体位置
BBED> find /c SYSTEM
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 12 Offsets: 8062 to 8191 Dba:0x0040000c
------------------------------------------------------------------------
53595354 454d0a52 45414420 57524954 4504c35b 541c0778 6f08020c 111b0180
ffffff04 c32d3d4b 04c32d3d 4c07786f 04060119 3306c506 0e511729 04c3071c
15018003 c2525d29 2f753031 2f617070 2f6f7261 636c652f 6f726164 6174612f
74657374 2f737973 74656d30 312e6462 66018003 c2525d04 4e4f4e45 01800206
--验证位置是否正确
BBED> dump /v
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 12 Offsets: 8062 to 8191 Dba:0x0040000c
-------------------------------------------------------
53595354 454d0a52 45414420 57524954 l SYSTEM.READ WRIT
4504c35b 541c0778 6f08020c 111b0180 l E.肹T..xo.......
ffffff04 c32d3d4b 04c32d3d 4c07786f l ....?=K.?=L.xo
04060119 3306c506 0e511729 04c3071c l ....3.?.Q.).?.
15018003 c2525d29 2f753031 2f617070 l ....翿])/u01/app
2f6f7261 636c652f 6f726164 6174612f l /oracle/oradata/
74657374 2f737973 74656d30 312e6462 l test/system01.db
66018003 c2525d04 4e4f4e45 01800206 l f...翿].NONE....
--修改测试 字符
BBED> modify /c SYSTMM
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 12 Offsets: 8062 to 8191 Dba:0x0040000c
------------------------------------------------------------------------
53595354 4d4d0a52 45414420 57524954 4504c35b 541c0778 6f08020c 111b0180
ffffff04 c32d3d4b 04c32d3d 4c07786f 04060119 3306c506 0e511729 04c3071c
15018003 c2525d29 2f753031 2f617070 2f6f7261 636c652f 6f726164 6174612f
74657374 2f737973 74656d30 312e6462 66018003 c2525d04 4e4f4e45 01800206
7de9
--测试验证
BBED> dump /v
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 12 Offsets: 8062 to 8191 Dba:0x0040000c
-------------------------------------------------------
53595354 4d4d0a52 45414420 57524954 l SYSTMM.READ WRIT
4504c35b 541c0778 6f08020c 111b0180 l E.肹T..xo.......
ffffff04 c32d3d4b 04c32d3d 4c07786f l ....?=K.?=L.xo
04060119 3306c506 0e511729 04c3071c l ....3.?.Q.).?.
15018003 c2525d29 2f753031 2f617070 l ....翿])/u01/app
2f6f7261 636c652f 6f726164 6174612f l /oracle/oradata/
--数据块验证
BBED> v
DBVERIFY - Verification starting
FILE = /u01/app/oracle/oradata/test/block.dbf
BLOCK = 12


DBVERIFY - Verification complete

Total Blocks Examined : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing (Data) : 0
Total Blocks Processed (Index): 0
Total Blocks Failing (Index): 0
Total Blocks Empty : 0
Total Blocks Marked Corrupt : 0
Total Blocks Influx : 0
--修改数字
--...
--修改file header
BBED> show
FILE# 1
BLOCK# 1
OFFSET 0
DBA 0x00400001 (4194305 1,1)
FILENAME /u01/app/oracle/oradata/test/block.dbf
BIFILE bifile.bbd
LISTFILE list
BLOCKSIZE 8192
MODE Edit
EDIT Unrecoverable
IBASE Dec
OBASE Dec
WIDTH 80
COUNT 512
LOGFILE log.bbd
SPOOL No

BBED> map /v
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Dba:0x00400001
------------------------------------------------------------
Data File Header

struct kcvfh, 676 bytes @0
struct kcvfhbfh, 20 bytes @0
struct kcvfhhdr, 76 bytes @20
ub4 kcvfhrdb @96
struct kcvfhcrs, 8 bytes @100
ub4 kcvfhcrt @108
ub4 kcvfhrlc @112
struct kcvfhrls, 8 bytes @116
ub4 kcvfhbti @124
struct kcvfhbsc, 8 bytes @128
ub2 kcvfhbth @136
ub2 kcvfhsta @138
struct kcvfhckp, 36 bytes @484
ub4 kcvfhcpc @140
ub4 kcvfhrts @144
ub4 kcvfhccc @148
struct kcvfhbcp, 36 bytes @152
ub4 kcvfhbhz @312
struct kcvfhxcd, 16 bytes @316
word kcvfhtsn @332
ub2 kcvfhtln @336
text kcvfhtnm[30] @338
ub4 kcvfhrfn @368
struct kcvfhrfs, 8 bytes @372
ub4 kcvfhrft @380
struct kcvfhafs, 8 bytes @384
ub4 kcvfhbbc @392
ub4 kcvfhncb @396
ub4 kcvfhmcb @400
ub4 kcvfhlcb @404
ub4 kcvfhbcs @408
ub2 kcvfhofb @412
ub2 kcvfhnfb @414
ub4 kcvfhprc @416
struct kcvfhprs, 8 bytes @420
struct kcvfhprfs, 8 bytes @428
ub4 kcvfhtrt @444

ub4 tailchk @8188


BBED> p kcvfhckp
struct kcvfhckp, 36 bytes @484
struct kcvcpscn, 8 bytes @484
ub4 kscnbas @484 0x000ddc27 --
ub2 kscnwrp @488 0x0000
ub4 kcvcptim @492 0x2d2fe78a --
ub2 kcvcpthr @496 0x0001
union u, 12 bytes @500
struct kcvcprba, 12 bytes @500
ub4 kcrbaseq @500 0x00000011
ub4 kcrbabno @504 0x00000002
ub2 kcrbabof @508 0x0010
ub1 kcvcpetb[0] @512 0x02
ub1 kcvcpetb[1] @513 0x00
ub1 kcvcpetb[2] @514 0x00
ub1 kcvcpetb[3] @515 0x00
ub1 kcvcpetb[4] @516 0x00
ub1 kcvcpetb[5] @517 0x00
ub1 kcvcpetb[6] @518 0x00
ub1 kcvcpetb[7] @519 0x00
BBED> p kcvfhcpc
ub4 kcvfhcpc @140 0x00000032 --

BBED> p kcvfhccc
ub4 kcvfhccc @148 0x00000031 --
--修改以上几个数据就可以了
BBED> set offset 484 count 16
OFFSET 484
COUNT 16

BBED> dump /v
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 484 to 499 Dba:0x00400001
-------------------------------------------------------
27dc0d00 00005a00 8ae72f2d 01000000 l '?...Z..?-....

<16 bytes per line>'
--一下是具体的实验步骤
--shutdown database and reopen to mount
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 184549376 bytes
Fixed Size 1218412 bytes
Variable Size 92276884 bytes
Database Buffers 88080384 bytes
Redo Buffers 2973696 bytes
Database mounted.
--update datafile header
BBED> show
FILE# 1
BLOCK# 1
OFFSET 0
DBA 0x00400001 (4194305 1,1)
FILENAME /u01/app/oracle/oradata/test/block.dbf
BIFILE bifile.bbd
LISTFILE list
BLOCKSIZE 8192
MODE Edit
EDIT Unrecoverable
IBASE Dec
OBASE Dec
WIDTH 80
COUNT 512
LOGFILE log.bbd
SPOOL No

BBED> p kcvfhckp
struct kcvfhckp, 36 bytes @484
struct kcvcpscn, 8 bytes @484
ub4 kscnbas @484 0x000df330
ub2 kscnwrp @488 0x0000
ub4 kcvcptim @492 0x2d3006c5
ub2 kcvcpthr @496 0x0001
union u, 12 bytes @500
struct kcvcprba, 12 bytes @500
ub4 kcrbaseq @500 0x00000011
ub4 kcrbabno @504 0x00002da7
ub2 kcrbabof @508 0x0010
ub1 kcvcpetb[0] @512 0x02
ub1 kcvcpetb[1] @513 0x00
ub1 kcvcpetb[2] @514 0x00
ub1 kcvcpetb[3] @515 0x00
ub1 kcvcpetb[4] @516 0x00
ub1 kcvcpetb[5] @517 0x00
ub1 kcvcpetb[6] @518 0x00
ub1 kcvcpetb[7] @519 0x00

BBED> p kcvfhcpc
ub4 kcvfhcpc @140 0x00000033

BBED> p kcvfhccc
ub4 kcvfhccc @148 0x00000032

BBED> set offset 484 count 16
OFFSET 484
COUNT 16

BBED> dump /v
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 484 to 499 Dba:0x00400001
-------------------------------------------------------
30f30d00 00000000 c506302d 01000a00 l 0?.....?0-....

<16 bytes per line>

BBED> modify /x 20
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 484 to 499 Dba:0x00400001
------------------------------------------------------------------------
20f30d00 00000000 c506302d 01000a00

<32 bytes per line>

BBED> set offset 492
OFFSET 492

BBED> dump
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 492 to 507 Dba:0x00400001
------------------------------------------------------------------------
c506302d 01000a00 11000000 a72d0000

<32 bytes per line>

BBED> modify /x c0
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 492 to 507 Dba:0x00400001
------------------------------------------------------------------------
c006302d 01000a00 11000000 a72d0000

<32 bytes per line>

BBED> set offset 140
OFFSET 140

BBED> dump
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 140 to 155 Dba:0x00400001
------------------------------------------------------------------------
33000000 ea63292d 32000000 00000000

<32 bytes per line>

BBED> modify /x 31
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 140 to 155 Dba:0x00400001
------------------------------------------------------------------------
31000000 ea63292d 32000000 00000000

<32 bytes per line>

BBED> set offset 148
OFFSET 148

BBED> modify
BBED-00203: incomplete/malformed command


BBED> modify /x 30
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 148 to 163 Dba:0x00400001
------------------------------------------------------------------------
30000000 00000000 00000000 00000000

<32 bytes per line>

BBED> sum apply
Check value for File 1, Block 1:
current = 0xa51f, required = 0xa51f
--alter database open
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01113: file 5 needs media recovery
ORA-01110: data file 5: '/u01/app/oracle/oradata/test/block.dbf'
--modify the file header from system
BBED> set offset 484 count 16
OFFSET 484
COUNT 16

BBED> dump /v
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 484 to 499 Dba:0x00400001
-------------------------------------------------------
30f30d00 00000000 c506302d 01000a00 l 0?.....?0-....

<16 bytes per line>

BBED> modify /x 20
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 484 to 499 Dba:0x00400001
------------------------------------------------------------------------
20f30d00 00000000 c506302d 01000a00

<32 bytes per line>

BBED> set offset 492
OFFSET 492

BBED> dump
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 492 to 507 Dba:0x00400001
------------------------------------------------------------------------
c506302d 01000a00 11000000 a72d0000

<32 bytes per line>

BBED> modify /x c0
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 492 to 507 Dba:0x00400001
------------------------------------------------------------------------
c006302d 01000a00 11000000 a72d0000

<32 bytes per line>

BBED> set offset 140
OFFSET 140

BBED> dump
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 140 to 155 Dba:0x00400001
------------------------------------------------------------------------
33000000 ea63292d 32000000 00000000

<32 bytes per line>

BBED> modify /x 31
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 140 to 155 Dba:0x00400001
------------------------------------------------------------------------
31000000 ea63292d 32000000 00000000

<32 bytes per line>

BBED> set offset 148
OFFSET 148

BBED> modify
BBED-00203: incomplete/malformed command


BBED> modify /x 30
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 148 to 163 Dba:0x00400001
------------------------------------------------------------------------
30000000 00000000 00000000 00000000

<32 bytes per line>

BBED> sum apply
Check value for File 1, Block 1:
current = 0xa51f, required = 0xa51f

BBED> set offset 484
OFFSET 484

BBED> dump /v count 16
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 484 to 499 Dba:0x00400001
-------------------------------------------------------
20f30d00 00000000 c006302d 01000a00 l ?.....?0-....

<16 bytes per line>

BBED> modify /x 30
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 484 to 499 Dba:0x00400001
------------------------------------------------------------------------
30f30d00 00000000 c006302d 01000a00

<32 bytes per line>

BBED> set offset 492
OFFSET 492

BBED> dump /v
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 492 to 507 Dba:0x00400001
-------------------------------------------------------
c006302d 01000a00 11000000 a72d0000 l ?0-........?..

<16 bytes per line>

BBED> modify /c5
BBED-00201: invalid switch (/c5)


BBED> modify /x c5
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 492 to 507 Dba:0x00400001
------------------------------------------------------------------------
c506302d 01000a00 11000000 a72d0000

<32 bytes per line>

BBED> set offset 140
OFFSET 140

BBED> dump /v
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 140 to 155 Dba:0x00400001
-------------------------------------------------------
31000000 ea63292d 30000000 00000000 l 1...阠)-0.......

<16 bytes per line>

BBED> modify /x 33
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 140 to 155 Dba:0x00400001
------------------------------------------------------------------------
33000000 ea63292d 30000000 00000000

<32 bytes per line>

BBED> set offset 148
OFFSET 148

BBED> dump /v
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 148 to 163 Dba:0x00400001
-------------------------------------------------------
30000000 00000000 00000000 00000000 l 0...............

<16 bytes per line>

BBED> modify /x 32
File: /u01/app/oracle/oradata/test/block.dbf (1)
Block: 1 Offsets: 148 to 163 Dba:0x00400001
------------------------------------------------------------------------
32000000 00000000 00000000 00000000

<32 bytes per line>

BBED> sum apply
Check value for File 1, Block 1:
current = 0xa50a, required = 0xa50a
--open the database
SQL> alter database open;

Database altered.

SQL>
--------------------------------------------------------------------
--数据有坏块 时候是否影响启动
--corrupt the block
BBED> p kcbh
struct kcbh, 20 bytes @0
ub1 type_kcbh @0 0x06
ub1 frmt_kcbh @1 0xa2
ub1 spare1_kcbh @2 0x00
ub1 spare2_kcbh @3 0x00
ub4 rdba_kcbh @4 0x0140000c
ub4 bas_kcbh @8 0x000de97d
ub2 wrp_kcbh @12 0x0000
ub1 seq_kcbh @14 0x02
ub1 flg_kcbh @15 0x04 (KCBHFCKV)
ub2 chkval_kcbh @16 0x1c9c
ub2 spare3_kcbh @18 0x0000

BBED> corrupt
Block marked media corrupt.

BBED> v
DBVERIFY - Verification starting
FILE = /u01/app/oracle/oradata/test/block.dbf
BLOCK = 12

Block Checking: DBA = 4194316, Block Type = KTB-managed data block
Found block already marked corrupted

DBVERIFY - Verification complete

Total Blocks Examined : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing (Data) : 0
Total Blocks Processed (Index): 0
Total Blocks Failing (Index): 0
Total Blocks Empty : 0
Total Blocks Marked Corrupt : 0
Total Blocks Influx : 0

BBED> p kcbh
struct kcbh, 20 bytes @0
ub1 type_kcbh @0 0x06
ub1 frmt_kcbh @1 0xa2
ub1 spare1_kcbh @2 0x00
ub1 spare2_kcbh @3 0x00
ub4 rdba_kcbh @4 0x0040000c
ub4 bas_kcbh @8 0x00000000
ub2 wrp_kcbh @12 0x0000
ub1 seq_kcbh @14 0xff --原来是02
ub1 flg_kcbh @15 0x04 (KCBHFCKV)
ub2 chkval_kcbh @16 0x1d91
ub2 spare3_kcbh @18 0x0000

BBED> sum apply
Check value for File 1, Block 12:
current = 0x1d91, required = 0x1d91
--reopen the database
SQL> alter database open;

Database altered.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 184549376 bytes
Fixed Size 1218412 bytes
Variable Size 92276884 bytes
Database Buffers 88080384 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
SQL>
--一般坏块不影响数据库的启动
--修改回来 用corropt修改不会来 奶奶的 还是简单改改ff吧 revert 可以的 注意呀 奶奶的
--跟踪文件里的错误
Bad header found during buffer read
Data in bad block:
type: 6 format: 2 rdba: 0x0040000c
last change scn: 0x0000.00000000 seq: 0x2 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x00000602
check value in block header: 0x1d91
computed block checksum: 0x0
Reread of rdba: 0x0140000c (file 5, block 12) found same corrupted data
-----------------------------------------------------------------------

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9879835/viewspace-1053342/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: bbed(一)
下一篇: ocr votedisk 维护一
请登录后发表评论 登录
全部评论

注册时间:2011-05-25

  • 博文量
    109
  • 访问量
    1577025