ORACLE 12C的测试版出来了,对于习惯了使用bbed(ORACLE 手术刀)的人来说,12C是否继续被支持是一个很让人关注的问题,通过本实验测试,12C继续支持bbed,很多艰难的数据库恢复依然可以通过bbed来实现,也从侧面说明,ORACLE 12C在块的结构上还依然和以往版本相似。本文由cuug发布。
数据库信息

[oracle@xifenfei ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.0.2 Beta on Thu Dec 13 09:55:35 2012
Copyright (c) 1982, 2012, Oracle.   All rights reserved.
Connected to :
Oracle Database 12c Enterprise Edition Release 12.1.0.0.2 - 64bit Beta
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select name from v$datafile where rownum=1;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/xifenfei/system01.dbf
SQL> select * from v$version;
BANNER                                                                               CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.0.2 - 64bit Beta                    0
PL/SQL Release 12.1.0.0.2 - Beta                                                          0
CORE    12.1.0.0.2      Beta                                                              0
TNS for Linux: Version 12.1.0.0.2 - Beta                                                  0
NLSRTL Version 12.1.0.0.2 - Beta                                                          0
SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.0.2 - 64bit Beta
With the Partitioning, OLAP, Data Mining and Real Application Testing options

12C中编译bbed

[oracle@xifenfei bbed_64]$ ls -l
total 32
-rw-r--r-- 1 oracle oinstall  8704 Apr 20  2010 bbedus.msb
-rw-r--r-- 1 oracle oinstall 10270 Jul 25  2000 bbedus.msg
-rw-r--r-- 1 oracle oinstall  3976 Apr 20  2010 sbbdpt.o
-rw-r--r-- 1 oracle oinstall  3306 Apr 20  2010 ssbbded.o
[oracle@xifenfei ~]$ cd /u01/app/oracle/product/12 .1 /db_1/rdbms/lib
[oracle@xifenfei lib]$ cp ~ /bbed_64/s * ./
[oracle@xifenfei lib]$ cd ../
[oracle@xifenfei rdbms]$ cd /u01/app/oracle/product/12 .1 /db_1/rdbms/mesg
[oracle@xifenfei mesg]$ cp ~ /bbed_64/bbedus .ms* ./
[oracle@xifenfei ~]$ cd /u01/app/oracle/product/12 .1 /db_1/rdbms/lib
[oracle@xifenfei lib]$ make -f ins_rdbms.mk /u01/app/oracle/product/12 .1 /db_1/rdbms/lib/bbed
Linking BBED utility (bbed)
rm -f /u01/app/oracle/product/12 .1 /db_1/rdbms/lib/bbed
/u01/app/oracle/product/12 .1 /db_1/bin/orald -o /u01/app/oracle/product/12 .1 /db_1/rdbms/lib/bbed
…………
/u01/app/oracle/product/12 .1 /db_1/lib/sysliblist ` -ldl -lm   -L /u01/app/oracle/product/12 .1 /db_1/lib
[oracle@xifenfei lib]$ mv bbed /u01/app/oracle/product/12 .1 /db_1/bin/

测试12C中bbed

[oracle@xifenfei ~]$ bbed
Password:
BBED: Release 2.0.0.0.0 - Limited Production on Thu Dec 13 09:58:16 2012
Copyright (c) 1982, 2012, Oracle and /or its affiliates.  All rights reserved.
************* !!! For Oracle Internal Use only !!! ***************
BBED> set filename '/u01/app/oracle/oradata/xifenfei/system01.dbf'
FILENAME         /u01/app/oracle/oradata/xifenfei/system01 .dbf
BBED> show
FILE #           0
BLOCK #          1
OFFSET          0
DBA             0x00000000 (0 0,1)
FILENAME         /u01/app/oracle/oradata/xifenfei/system01 .dbf
BIFILE          bifile.bbd
LISTFILE      
BLOCKSIZE       8192
MODE            Browse
EDIT            Unrecoverable
IBASE           Dec
OBASE           Dec
WIDTH           80
COUNT           512
LOGFILE         log.bbd
SPOOL           No
BBED> map
File: /u01/app/oracle/oradata/xifenfei/system01 .dbf (0)
Block: 1                                     Dba:0x00000000
------------------------------------------------------------
Data File Header
struct kcvfh, 1112 bytes                   @0      
ub4 tailchk                                @8188    
BBED> p kcvfhbfh
struct kcvfhbfh, 20 bytes                   @0      
ub1 type_kcbh                            @0        0x0b
ub1 frmt_kcbh                            @1        0xa2
ub1 spare1_kcbh                          @2        0x00
ub1 spare2_kcbh                          @3        0x00
ub4 rdba_kcbh                            @4        0x00400001
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       0x21a8
ub2 spare3_kcbh                          @18       0x0000
BBED> set block 1233
BLOCK #          1233
BBED> map
File: /u01/app/oracle/oradata/xifenfei/system01 .dbf (0)
Block: 1233                                  Dba:0x00000000
------------------------------------------------------------
KTB Data Block (Index Leaf)
struct kcbh, 20 bytes                      @0      
struct ktbbh, 72 bytes                     @20      
struct kdxle, 32 bytes                     @92      
sb2 kd_off[517]                            @124    
ub1 freespace[302]                         @1158    
ub1 rowdata[6660]                          @1460    
ub4 tailchk                                @8188