bbed 修复BLOCK

1.安装bbed
 
  • 拷贝文件包
su - orafdp cd /tmp/bbed -->文件包都传这里了 cp ssbbded.o $ORACLE_HOME/rdbms/lib/ssbbded.o cp sbbdpt.o $ORACLE_HOME/rdbms/lib/sbbdpt.o cp bbedus.msb $ORACLE_HOME/rdbms/mesg/bbedus.msb
 
  • 编译安装:
make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed
 
  • 创建filelist文件
vi filelist 9 /oracle/FDP/sapdata3/sr3_3/sr3.data3 0 --> 这里写0 可以支持超过4GB 的文件使用
 
此次使用bbed中途遇到一个bug,bbed通常支持4GB 的文件大小,那么超过4GB的文件就不要写文件大小了,改为0,否则会有问题。
BBED> set dba 9,1202895 BBED-00205: illegal or out of range DBA (File 9, Block 1202895)
  • 编辑参数文件
vi par.txt listfile=filelist.txt mode=edit
 
2.开始bbed修复:
 
 
 
bbed parfile=par.txt Password: 密码:blockedit
 
 
BBED: Release 2.0.0.0.0 - Limited Production on Thu Nov 5 13:32:08 2020 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED> info all File# Name Size(blks) ----- ---- ---------- 9 /oracle/FDP/sapdata3/sr3_3/sr3.data3 0 BBED> set dba 9,1202895 -->进入到block DBA 0x02525acf (38951631 9,1202895) BBED> map File: /oracle/FDP/sapdata3/sr3_3/sr3.data3 (9) Block: 1202895 Dba:0x02525acf ------------------------------------------------------------ KTB Data Block (Index Leaf) struct kcbh, 20 bytes @0 struct ktbbh, 72 bytes @20 struct kdxle, 32 bytes @100 sb2 kd_off[29] @132 ub1 freespace[988] @190 ub1 rowdata[6950] @1178 ub4 tailchk @8188
 
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 0x02525acf ub4 bas_kcbh @8 0xd0def9e6 ub2 wrp_kcbh @12 0x0000 ub1 seq_kcbh @14 0xff -->oracle把坏块都置为ff,需要把这里改成01 ub1 flg_kcbh @15 0x24 (KCBHFCKV) ub2 chkval_kcbh @16 0x82c9 ub2 spare3_kcbh @18 0x0000
 
BBED> m /x 01 offset 14 -->修改动作 File: /oracle/FDP/sapdata3/sr3_3/sr3.data3 (9) Block: 1202895 Offsets: 14 to 525 Dba:0x02525acf ------------------------------------------------------------------------ 0124c982 00000200 0000003d 00007fa9 d7d00000 00000200 3200c85a 52020100 1600c787 0a003812 c00019c5 010000c0 0000ef2e 1d340500 17001c87 20003c36 c00068bf 07000600 a2000000 00000000 00000000 00000000 80040100 00001d00 5e003a04 2d1c0000 06006f35 8b0251df 82020000 0000601f 0000f606 92067906 85045304 b1053a04 f007be07 e3059805 a5078c07 5a072807 e9047f05 4d05b704 54082208 fc05cb09 67094e09 35090309 b808c406 35090309 b808c406 d20c1d0d 870cad0e 940e620e 170ee50d d20c1d0d 870caf16 e50daf16 af16af16 01430338 30300946 444e424d 4d303134 06024785 3b000a01 00014303 38303009 46444e42 4d4d3031 34060247 6bf3000c 01000143 03383030 0946444e 424d4d30 31340602 47853b00 09000001 43033830 30094644 4e424d4d 30313406 0247853a 00090100 01430338 30300946 444e424d 4d303134 0602476b f3000c00 00014303 38303009 46444e42 4d4d3031 34060247 853a0013 01000143 03383030 0946444e 424d4d30 31340602 47853a00 09000001 43033830 30094644 4e424d4d 30313406 02476bf3 00070100 01430338 30300946 444e424d 4d303134 0602476b f3000601 00014303 38303009 46444e42 4d4d3031 34060247 853a0005 00000143 03383030 0946444e 424d4d30 31340602 476bf300 05010001 43033830 30094644 4e424d4d 30313406 <32 bytes per line> BBED> p -->查看 kcbh.seq_kcbh ------------- ub1 seq_kcbh @14 0x01
 
 
BBED> set offset 8188 -->然后修改8188位置的值 OFFSET 8188 BBED> p tailchk ------- ub4 tailchk @8188 0xf9e606ff ->默认值尾部是ff,把这个ff改成01即可。 BBED> m /x 0106e6f9 --> linux要倒序 File: /oracle/FDP/sapdata3/sr3_3/sr3.data3 (9) Block: 1202895 Offsets: 8188 to 8191 Dba:0x02525acf ------------------------------------------------------------------------ 0106e6f9 <32 bytes per line> BBED> p tailchk ------- ub4 tailchk @8188 0xf9e60601 --> 修改完后为正确的值
 
 
BBED> sum --> 保存 Check value for File 9, Block 1202895: current = 0x82c9, required = 0x82c9
BBED> sum apply --> 保存并应用 Check value for File 9, Block 1202895: current = 0x82c9, required = 0x82c9
 
BBED> verify block 1202859 -->校验一下已经OK DBVERIFY - Verification starting FILE = /oracle/FDP/sapdata3/sr3_3/sr3.data3 BLOCK = 1202859 DBVERIFY - Verification complete Total Blocks Examined : 1 Total Blocks Processed (Data) : 0 Total Blocks Failing (Data) : 0 Total Blocks Processed (Index): 1 Total Blocks Failing (Index): 0 Total Blocks Empty : 0 Total Blocks Marked Corrupt : 0 Total Blocks Influx : 0 Message 531 not found; product=RDBMS; facility=BBED Dump of memory from 0x00007FDA8F784A00 to 0x00007FDA8F786A00
 
 
fdprd01:orafdp 59> dbv file=/oracle/FDP/sapdata3/sr3_3/sr3.data3 --> dbv校验也OK DBVERIFY: Release 11.2.0.4.0 - Production on Thu Nov 5 14:02:51 2020 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. DBVERIFY - Verification starting : FILE = /oracle/FDP/sapdata3/sr3_3/sr3.data3 DBVERIFY - Verification complete Total Pages Examined : 2129920 Total Pages Processed (Data) : 1266776 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 566474 Total Pages Failing (Index): 0 Total Pages Processed (Lob) : 102637 Total Pages Failing (Lob) : 0 Total Pages Processed (Other): 25392 Total Pages Processed (Seg) : 0 Total Pages Failing (Seg) : 0 Total Pages Empty : 168641 Total Pages Marked Corrupt : 0 Total Pages Influx : 0 Total Pages Encrypted : 0 Highest block SCN : 3509393296 (0.3509393296)

 
1.安装bbed
 
  • 拷贝文件包
su - orafdp cd /tmp/bbed -->文件包都传这里了 cp ssbbded.o $ORACLE_HOME/rdbms/lib/ssbbded.o cp sbbdpt.o $ORACLE_HOME/rdbms/lib/sbbdpt.o cp bbedus.msb $ORACLE_HOME/rdbms/mesg/bbedus.msb
 
  • 编译安装:
make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed
 
  • 创建filelist文件
vi filelist 9 /oracle/FDP/sapdata3/sr3_3/sr3.data3 0
 
  • 编辑参数文件
vi par.txt listfile=filelist.txt mode=edit
 
2.开始bbed修复:
bbed parfile=par.txt Password: 密码:blockedit
 
 
BBED: Release 2.0.0.0.0 - Limited Production on Thu Nov 5 13:32:08 2020 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED> info all File# Name Size(blks) ----- ---- ---------- 9 /oracle/FDP/sapdata3/sr3_3/sr3.data3 0 BBED> set dba 9,1202895 -->进入到block DBA 0x02525acf (38951631 9,1202895) BBED> map File: /oracle/FDP/sapdata3/sr3_3/sr3.data3 (9) Block: 1202895 Dba:0x02525acf ------------------------------------------------------------ KTB Data Block (Index Leaf) struct kcbh, 20 bytes @0 struct ktbbh, 72 bytes @20 struct kdxle, 32 bytes @100 sb2 kd_off[29] @132 ub1 freespace[988] @190 ub1 rowdata[6950] @1178 ub4 tailchk @8188
 
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 0x02525acf ub4 bas_kcbh @8 0xd0def9e6 ub2 wrp_kcbh @12 0x0000 ub1 seq_kcbh @14 0xff -->oracle把坏块都置为ff,需要把这里改成01 ub1 flg_kcbh @15 0x24 (KCBHFCKV) ub2 chkval_kcbh @16 0x82c9 ub2 spare3_kcbh @18 0x0000
 
BBED> m /x 01 offset 14 -->修改动作 File: /oracle/FDP/sapdata3/sr3_3/sr3.data3 (9) Block: 1202895 Offsets: 14 to 525 Dba:0x02525acf ------------------------------------------------------------------------ 0124c982 00000200 0000003d 00007fa9 d7d00000 00000200 3200c85a 52020100 1600c787 0a003812 c00019c5 010000c0 0000ef2e 1d340500 17001c87 20003c36 c00068bf 07000600 a2000000 00000000 00000000 00000000 80040100 00001d00 5e003a04 2d1c0000 06006f35 8b0251df 82020000 0000601f 0000f606 92067906 85045304 b1053a04 f007be07 e3059805 a5078c07 5a072807 e9047f05 4d05b704 54082208 fc05cb09 67094e09 35090309 b808c406 35090309 b808c406 d20c1d0d 870cad0e 940e620e 170ee50d d20c1d0d 870caf16 e50daf16 af16af16 01430338 30300946 444e424d 4d303134 06024785 3b000a01 00014303 38303009 46444e42 4d4d3031 34060247 6bf3000c 01000143 03383030 0946444e 424d4d30 31340602 47853b00 09000001 43033830 30094644 4e424d4d 30313406 0247853a 00090100 01430338 30300946 444e424d 4d303134 0602476b f3000c00 00014303 38303009 46444e42 4d4d3031 34060247 853a0013 01000143 03383030 0946444e 424d4d30 31340602 47853a00 09000001 43033830 30094644 4e424d4d 30313406 02476bf3 00070100 01430338 30300946 444e424d 4d303134 0602476b f3000601 00014303 38303009 46444e42 4d4d3031 34060247 853a0005 00000143 03383030 0946444e 424d4d30 31340602 476bf300 05010001 43033830 30094644 4e424d4d 30313406 <32 bytes per line> BBED> p -->查看 kcbh.seq_kcbh ------------- ub1 seq_kcbh @14 0x01
 
 
BBED> set offset 8188 -->然后修改8188位置的值 OFFSET 8188 BBED> p tailchk ------- ub4 tailchk @8188 0xf9e606ff ->默认值尾部是ff,把这个ff改成01即可。 BBED> m /x 0106e6f9 --> linux要倒序 File: /oracle/FDP/sapdata3/sr3_3/sr3.data3 (9) Block: 1202895 Offsets: 8188 to 8191 Dba:0x02525acf ------------------------------------------------------------------------ 0106e6f9 <32 bytes per line> BBED> p tailchk ------- ub4 tailchk @8188 0xf9e60601 --> 修改完后为正确的值
 
 
BBED> sum --> 保存 Check value for File 9, Block 1202895: current = 0x82c9, required = 0x82c9
BBED> sum apply --> 保存并应用 Check value for File 9, Block 1202895: current = 0x82c9, required = 0x82c9
 
BBED> verify block 1202859 -->校验一下已经OK DBVERIFY - Verification starting FILE = /oracle/FDP/sapdata3/sr3_3/sr3.data3 BLOCK = 1202859 DBVERIFY - Verification complete Total Blocks Examined : 1 Total Blocks Processed (Data) : 0 Total Blocks Failing (Data) : 0 Total Blocks Processed (Index): 1 Total Blocks Failing (Index): 0 Total Blocks Empty : 0 Total Blocks Marked Corrupt : 0 Total Blocks Influx : 0 Message 531 not found; product=RDBMS; facility=BBED Dump of memory from 0x00007FDA8F784A00 to 0x00007FDA8F786A00
 
 

fdprd01:orafdp 59> dbv file=/oracle/FDP/sapdata3/sr3_3/sr3.data3 --> dbv校验也OK DBVERIFY: Release 11.2.0.4.0 - Production on Thu Nov 5 14:02:51 2020 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. DBVERIFY - Verification starting : FILE = /oracle/FDP/sapdata3/sr3_3/sr3.data3 DBVERIFY - Verification complete Total Pages Examined : 2129920 Total Pages Processed (Data) : 1266776 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 566474 Total Pages Failing (Index): 0 Total Pages Processed (Lob) : 102637 Total Pages Failing (Lob) : 0 Total Pages Processed (Other): 25392 Total Pages Processed (Seg) : 0 Total Pages Failing (Seg) : 0 Total Pages Empty : 168641 Total Pages Marked Corrupt : 0 Total Pages Influx : 0 Total Pages Encrypted : 0 Highest block SCN : 3509393296 (0.3509393296)

posted @ 2020-11-06 00:12  lizhao01  阅读(152)  评论(0)    收藏  举报