windows和linux下BBED使用体验

最近遇到到某个库的文启动中,数据文件SCN号不一致,本想按常规做,没有备份和归档。强上BBED,使用bbed修复损坏datafile header前推一致SCN号,启库。
需要说明的是,我下载了BBED到window环境下,操作过程中发现, p kcvfhckp这一步总是在报错。网上查了好多原因不得要领,不得已,将window环境下 datafile 11 移动到linux环境下解决。
这里写图片描述
这个是我window下报错截图,希望有高人能指点一下,如何解决报错问题。因为当window下数据文件过大的时候,来回迁移是不现实且低效的。

按照网上前人的经验,我在linux再次做一次实验:

启动数据块异常
SQL> startup
ORACLE instance started.

Total System Global Area 353441008 bytes
Fixed Size 451824 bytes
Variable Size 184549376 bytes
Database Buffers 167772160 bytes
Redo Buffers 667648 bytes
Database mounted.
ORA-01110: data file 11: ‘/u01/oracle/oradata/xifenfei/bbed01.dbf’
ORA-01115: IO error reading block from file 11 (block # 1)
ORA-27072: skgfdisp: I/O error
bbed检测datafile header
[oracle@xifenfei ~]$ bbed password=blockedit blocksize=8192 listfile=/home/oracle/bbed.file mode=edit

BBED: Release 2.0.0.0.0 - Limited Production on Sat May 26 05:29:37 2012

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

*** !!! For Oracle Internal Use only !!! *****

BBED> info
File# Name Size(blks)
—– —- ———-
1 /home/oracle/users01.dbf 0
2 /home/oracle/system01.dbf.head 0
3 /home/oracle/data11.ora 0
4 /u01/oracle/oradata/xifenfei/system01.dbf 0
5 /u01/oracle/oradata/xifenfei/users01.dbf 0
6 /home/oracle/data11.ora.10 0
11 /u01/oracle/oradata/xifenfei/bbed01.dbf 0
12 /u01/oracle/oradata/xifenfei/bbed02.dbf 0

BBED> set file 11
FILE# 11

BBED> set block 1
BLOCK# 1

BBED> show
FILE# 11
BLOCK# 1
OFFSET 0
DBA 0x02c00001 (46137345 11,1)
FILENAME /u01/oracle/oradata/xifenfei/bbed01.dbf
BIFILE bifile.bbd
LISTFILE /home/oracle/bbed.file
BLOCKSIZE 8192
MODE Edit
EDIT Unrecoverable
IBASE Dec
OBASE Dec
WIDTH 80
COUNT 16
LOGFILE log.bbd
SPOOL No

BBED> map
File: /u01/oracle/oradata/xifenfei/bbed01.dbf (11)

Block: 1 Dba:0x02c00001

Data File Header

struct kcvfh, 360 bytes @0

ub4 tailchk @8188
修改数据块内容
BBED> p kcvfh
struct kcvfh, 360 bytes @0
struct kcvfhbfh, 20 bytes @0
ub1 type_kcbh @0 0x0b
ub1 frmt_kcbh @1 0x02
ub1 spare1_kcbh @2 0x00
ub1 spare2_kcbh @3 0x00
ub4 rdba_kcbh @4 0x03000001
ub4 bas_kcbh @8 0x00000000
ub2 wrp_kcbh @12 0x0000
ub1 seq_kcbh @14 0x01
ub1 flg_kcbh @15 0x04 (KCBHFCKV)
ub2 chkval_kcbh @16 0xb10a
ub2 spare3_kcbh @18 0x0000
struct kcvfhhdr, 76 bytes @20
ub4 kccfhswv @20 0x09200000
ub4 kccfhcvn @24 0x08000000
ub4 kccfhdbi @28 0x5314b4cd
text kccfhdbn[0] @32 X
text kccfhdbn[1] @33 I
text kccfhdbn[2] @34 F
text kccfhdbn[3] @35 E
text kccfhdbn[4] @36 N
text kccfhdbn[5] @37 F
text kccfhdbn[6] @38 E
text kccfhdbn[7] @39 I
ub4 kccfhcsq @40 0x000001d8
ub4 kccfhfsz @44 0x00001400
s_blkz kccfhbsz @48 0x00
ub2 kccfhfno @52 0x000c
ub2 kccfhtyp @54 0x0003
ub4 kccfhacid @56 0x00000000
ub4 kccfhcks @60 0x00000000
text kccfhtag[0] @64
text kccfhtag[1] @65
text kccfhtag[2] @66
text kccfhtag[3] @67
text kccfhtag[4] @68
text kccfhtag[5] @69
text kccfhtag[6] @70
text kccfhtag[7] @71
text kccfhtag[8] @72
text kccfhtag[9] @73
text kccfhtag[10] @74
text kccfhtag[11] @75
text kccfhtag[12] @76
text kccfhtag[13] @77
text kccfhtag[14] @78
text kccfhtag[15] @79
text kccfhtag[16] @80
text kccfhtag[17] @81
text kccfhtag[18] @82
text kccfhtag[19] @83
text kccfhtag[20] @84
text kccfhtag[21] @85
text kccfhtag[22] @86
text kccfhtag[23] @87
text kccfhtag[24] @88
text kccfhtag[25] @89
text kccfhtag[26] @90
text kccfhtag[27] @91
text kccfhtag[28] @92
text kccfhtag[29] @93
text kccfhtag[30] @94
text kccfhtag[31] @95
ub4 kcvfhrdb @96 0x00000000
struct kcvfhcrs, 8 bytes @100
ub4 kscnbas @100 0xc00a3405
ub2 kscnwrp @104 0x0b2c
ub4 kcvfhcrt @108 0x2ebeb8c3
ub4 kcvfhrlc @112 0x2e51408f
struct kcvfhrls, 8 bytes @116
ub4 kscnbas @116 0x0002ab78
ub2 kscnwrp @120 0x0000
ub4 kcvfhbti @124 0x00000000
struct kcvfhbsc, 8 bytes @128
ub4 kscnbas @128 0x00000000
ub2 kscnwrp @132 0x0000
ub2 kcvfhbth @136 0x0000
ub2 kcvfhsta @138 0x0000 (NONE)
struct kcvfhckp, 36 bytes @140
struct kcvcpscn, 8 bytes @140
ub4 kscnbas @140 0xc00b6467
ub2 kscnwrp @144 0x0b2c
ub4 kcvcptim @148 0x2ebf0c07
ub2 kcvcpthr @152 0x0001
union u, 12 bytes @156
struct kcvcprba, 12 bytes @156
ub4 kcrbaseq @156 0x00000015
ub4 kcrbabno @160 0x0000429a
ub2 kcrbabof @164 0x0010
struct kcvcptr, 12 bytes @156
struct kcrtrscn, 8 bytes @156
ub4 kscnbas @156 0x00000015
ub2 kscnwrp @160 0x429a
ub4 kcrtrtim @164 0x09110010
ub1 kcvcpetb[0] @168 0x02
ub1 kcvcpetb[1] @169 0x00
ub1 kcvcpetb[2] @170 0x00
ub1 kcvcpetb[3] @171 0x00
ub1 kcvcpetb[4] @172 0x00
ub1 kcvcpetb[5] @173 0x00
ub1 kcvcpetb[6] @174 0x00
ub1 kcvcpetb[7] @175 0x00
ub4 kcvfhcpc @176 0x0000000d
ub4 kcvfhrts @180 0x2ebeea4f
ub4 kcvfhccc @184 0x0000000c
struct kcvfhbcp, 36 bytes @188
struct kcvcpscn, 8 bytes @188
ub4 kscnbas @188 0x00000000
ub2 kscnwrp @192 0x0000
ub4 kcvcptim @196 0x00000000
ub2 kcvcpthr @200 0x0000
union u, 12 bytes @204
struct kcvcprba, 12 bytes @204
ub4 kcrbaseq @204 0x00000000
ub4 kcrbabno @208 0x00000000
ub2 kcrbabof @212 0x0000
struct kcvcptr, 12 bytes @204
struct kcrtrscn, 8 bytes @204
ub4 kscnbas @204 0x00000000
ub2 kscnwrp @208 0x0000
ub4 kcrtrtim @212 0x00000000
ub1 kcvcpetb[0] @216 0x00
ub1 kcvcpetb[1] @217 0x00
ub1 kcvcpetb[2] @218 0x00
ub1 kcvcpetb[3] @219 0x00
ub1 kcvcpetb[4] @220 0x00
ub1 kcvcpetb[5] @221 0x00
ub1 kcvcpetb[6] @222 0x00
ub1 kcvcpetb[7] @223 0x00
ub4 kcvfhbhz @224 0x00000000
struct kcvfhxcd, 16 bytes @228
ub4 space_kcvmxcd[0] @228 0x00000000
ub4 space_kcvmxcd[1] @232 0x00000000
ub4 space_kcvmxcd[2] @236 0x00000000
ub4 space_kcvmxcd[3] @240 0x00000000
word kcvfhtsn @244 12
ub2 kcvfhtln @248 0x0004
text kcvfhtnm[0] @250 B
text kcvfhtnm[1] @251 B
text kcvfhtnm[2] @252 E
text kcvfhtnm[3] @253 D
text kcvfhtnm[4] @254
text kcvfhtnm[5] @255
text kcvfhtnm[6] @256
text kcvfhtnm[7] @257
text kcvfhtnm[8] @258
text kcvfhtnm[9] @259
text kcvfhtnm[10] @260
text kcvfhtnm[11] @261
text kcvfhtnm[12] @262
text kcvfhtnm[13] @263
text kcvfhtnm[14] @264
text kcvfhtnm[15] @265
text kcvfhtnm[16] @266
text kcvfhtnm[17] @267
text kcvfhtnm[18] @268
text kcvfhtnm[19] @269
text kcvfhtnm[20] @270
text kcvfhtnm[21] @271
text kcvfhtnm[22] @272
text kcvfhtnm[23] @273
text kcvfhtnm[24] @274
text kcvfhtnm[25] @275
text kcvfhtnm[26] @276
text kcvfhtnm[27] @277
text kcvfhtnm[28] @278
text kcvfhtnm[29] @279
ub4 kcvfhrfn @280 0x0000000c
struct kcvfhrfs, 8 bytes @284
ub4 kscnbas @284 0x00000000
ub2 kscnwrp @288 0x0000
ub4 kcvfhrft @292 0x2ebee9f9
struct kcvfhafs, 8 bytes @296
ub4 kscnbas @296 0x00000000
ub2 kscnwrp @300 0x0000
ub4 kcvfhbbc @304 0x00000000
ub4 kcvfhncb @308 0x00000000
ub4 kcvfhmcb @312 0x00000000
ub4 kcvfhlcb @316 0x00000000
ub4 kcvfhbcs @320 0x00000000
ub2 kcvfhofb @324 0x0000
ub2 kcvfhnfb @326 0x0000
ub4 kcvfhprc @328 0x00000000
struct kcvfhprs, 8 bytes @332
ub4 kscnbas @332 0x00000000
ub2 kscnwrp @336 0x0000
struct kcvfhprfs, 8 bytes @340
ub4 kscnbas @340 0x00000000
ub2 kscnwrp @344 0x0000
ub4 kcvfhtrt @356 0x00000000

/*需要修改内容
ub4 rdba_kcbh @4 0x03000001
ub4 kccfhfsz @44 0x00001400
ub2 kccfhfno @52 0x000c
struct kcvfhcrs, 8 bytes @100
ub4 kscnbas @100 0xc00a3405
ub2 kscnwrp @104 0x0b2c
ub4 kcvfhrfn @280 0x0000000c
/
/*修改值(通过错误提示结合file$表)
rdba_kcbh 02c00001
kccfhfsz 00000500
kccfhfno 000b
kscnbas c00a32b8
kcvfhrfn 0000000b
/

BBED> set offset 4
OFFSET 4

BBED> m /x 0100c002
File: /u01/oracle/oradata/xifenfei/bbed01.dbf (11)

Block: 1 Offsets: 4 to 19 Dba:0x02c00001

0100c002 00000000 00000104 0ab10000

<32 bytes per line>

BBED> set offset 44
OFFSET 44

BBED> m /x 00050000
File: /u01/oracle/oradata/xifenfei/bbed01.dbf (11)

Block: 1 Offsets: 44 to 59 Dba:0x02c00001

00050000 00200000 0c000300 00000000

<32 bytes per line>

BBED> set offset 52
OFFSET 52

BBED> m /x
BBED-00203: incomplete/malformed command

BBED> m /x 0b00
File: /u01/oracle/oradata/xifenfei/bbed01.dbf (11)

Block: 1 Offsets: 52 to 67 Dba:0x02c00001

0b000300 00000000 00000000 00000000

<32 bytes per line>

BBED> set offset 100
OFFSET 100

BBED> m /x b8320ac0
File: /u01/oracle/oradata/xifenfei/bbed01.dbf (11)

Block: 1 Offsets: 100 to 115 Dba:0x02c00001

b8320ac0 2c0b0000 c3b8be2e 8f40512e

<32 bytes per line>

BBED> set offset 280
OFFSET 280

BBED> m /x 0b000000
File: /u01/oracle/oradata/xifenfei/bbed01.dbf (11)

Block: 1 Offsets: 280 to 295 Dba:0x02c00001

0b000000 00000000 00000000 f9e9be2e

<32 bytes per line>

BBED> sum apply
Check value for File 11, Block 1:
current = 0xa777, required = 0xa777
重建控制文件open数据库
SQL> alter database backup controlfile to trace as ‘/tmp/t_xifenfie.ctl’;

Database altered.

SQL> shutdown immediate;
ORA-01109: database not open

Database dismounted.
ORACLE instance shut down.

SQL> startup nomount
ORACLE instance started.

Total System Global Area 353441008 bytes
Fixed Size 451824 bytes
Variable Size 184549376 bytes
Database Buffers 167772160 bytes
Redo Buffers 667648 bytes

SQL> CREATE CONTROLFILE REUSE DATABASE “XIFENFEI” NORESETLOGS ARCHIVELOG
2 MAXLOGFILES 50
3 MAXLOGMEMBERS 5
4 MAXDATAFILES 100
5 MAXINSTANCES 1
6 MAXLOGHISTORY 226
7 LOGFILE
8 GROUP 1 ‘/u01/oracle/oradata/xifenfei/redo01.log’ SIZE 100M,
9 GROUP 2 ‘/u01/oracle/oradata/xifenfei/redo02.log’ SIZE 100M,
10 GROUP 3 ‘/u01/oracle/oradata/xifenfei/redo03.log’ SIZE 100M
11 DATAFILE
12 ‘/u01/oracle/oradata/xifenfei/system01.dbf’,
13 ‘/u01/oracle/oradata/xifenfei/undotbs01.dbf’,
14 ‘/u01/oracle/oradata/xifenfei/cwmlite01.dbf’,
15 ‘/u01/oracle/oradata/xifenfei/drsys01.dbf’,
16 ‘/u01/oracle/oradata/xifenfei/example01.dbf’,
17 ‘/u01/oracle/oradata/xifenfei/indx01.dbf’,
18 ‘/u01/oracle/oradata/xifenfei/odm01.dbf’,
19 ‘/u01/oracle/oradata/xifenfei/tools01.dbf’,
20 ‘/u01/oracle/oradata/xifenfei/users01.dbf’,
21 ‘/u01/oracle/oradata/xifenfei/xdb01.dbf’,
22 ‘/u01/oracle/oradata/xifenfei/bbed01.dbf’,
23 ‘/u01/oracle/oradata/xifenfei/bbed02.dbf’
24 CHARACTER SET ZHS16GBK
25 ;

Control file created.

SQL> recover database ;
ORA-00283: recovery session canceled due to errors
ORA-00264: no recovery required

SQL> alter database open;

Database altered.

提供10g,11g linuxwindows BBED工具 及详细编译说明readme文件。 一. 10g linux编译BBED [oracle@node3 ~]$ cd $ORACLE_HOME/rdbms/lib [oracle@node3 lib]$ make -f ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed 直接生成到bin下为可执行文件 编译完成后: 编译成功后登陆BBED,登陆时需要密码(BBED的默认密码是blockedit) [oracle@node3 bin]$ bbed Password: BBED: Release 2.0.0.0.0 - Limited Production on Wed Apr 11 10:01:07 2018 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED> 二. 11g linux编译BBED oracle 11gR2环境中编译BBED可执行文件所需要的ssbbded.osbbdpt.o对象文件被移除,不过可以从oracle 10g环境中将这两个文件拷贝到oracle11g环境进行编译。 除了将上面的ssbbded.osbbdpt.o 文件拷贝到11g环境外,BBED还需要用到 $ORACLE_HOME/rdbms/mesg目录下的bbedus.msb这个信息文件, 这几个文件都需要从oracle10g中拷贝到oracle11g中对于的目录中。 文件夹linux_10g_bbed_64 包括了这3个文件。 下面是将以上3个文件从Oracle 10g中拷贝到11g对于目录后编译的过程。 1)把linux_10g_bbed_64目录下的10g的ssbbded.osbbdpt.o 放到 $ORACLE_HOME/rdbms/lib 目录下 2)把linux_10g_bbed_64目录下的10g的 bbedus.msb 文件拷贝到 $ORACLE_HOME/rdbms/mesg目录下 3)编译 [oracle@node1 ~] cd $ORACLE_HOME/rdbms/lib [oracle@node1 ~] make -f ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed [oracle@node3 bin]$ bbed Password: BBED: Release 2.0.0.0.0 - Limited Production on Wed Apr 11 10:01:07 2018 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED> 三、windows 11GR2 bbed oracle9i版本以后Oracle不装载BBED了, Windows上也没有makefile来编译bbed。 所以,如果你想在Windows使用bbed,你需要很多文件(本下载压缩包已经全包含了): 你需要一个bbed.exe. 你只能从Oracle 9i的安装中得到它。 你需要有一堆的DLL。所有这些DLL在Oracle9i安装中可以得到。 使用BBED需要消息文件。这文件是“bbedus.msb”,位于Oracle9i安装的MESG目录下。而你需要将其复制到ORACLE_HOME的RDBMS\MESG目录下。 这些在目录本压缩包的 bbed_win 中已经全部提供了。 把它们放在BBED安装的目录下(比如D:\bbed_win),环境变量ORACLE_HOME设置好。确保消息文件在$ORACLE_HOME\RDBMS\MESG下,最后启动BBED: D:\bbed_win>bbed Password: BBED: Release 2.0.0.0.0 - Limited Production on Wed Apr 11 10:20:43 2018 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值