Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

82

积分

0

好友

0

主题
1#
发表于 2012-4-19 16:03:26 | 查看: 6904| 回复: 4
SQL> select rowid,dbms_rowid.rowid_relative_fno(rowid) rel_fno,
  2  dbms_rowid.rowid_block_number(rowid) blockno,
  3  dbms_rowid.rowid_row_number(rowid) rowno from dvd;
ROWID                 REL_FNO    BLOCKNO      ROWNO
------------------ ---------- ---------- ----------
AAAR9IAAHAAAACDAAA          7        131          0
AAAR9IAAHAAAACDAAB          7        131          1

上面这个是我的表的记录使用的block情况,想用bbed来做block corruption 试验

[oracle@primary_db ~]$ bbed parfile=bbed.par
Password:
BBED: Release 2.0.0.0.0 - Limited Production on Mon Apr 9 02:13:56 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
************* !!! For Oracle Internal Use only !!! ***************
BBED> set dba 7,131
        DBA             0x01c00083 (29360259 7,131)
BBED> map
File: /oradata1/daixuej.dbf (7)
Block: 131                                   Dba:0x01c00083
------------------------------------------------------------
KTB Data Block (Table/Cluster)
struct kcbh, 20 bytes                      @0      
struct ktbbh, 96 bytes                     @20      
struct kdbh, 14 bytes                      @124     
struct kdbt[1], 4 bytes                    @138     
sb2 kdbr[2]                                @142     
ub1 freespace[8005]                        @146     
ub1 rowdata[37]                            @8151   
ub4 tailchk                                @8188   

BBED>

但下一步要BBED> d /v offset 0 count 128 时却不知这个offset和count的值是怎么的来的?


非常感谢老大的帮助
2#
发表于 2012-4-19 21:45:27
你参考的是哪一个文档? 

如果想做 block corruption   直接用corrupt 命令即可

回复 只看该作者 道具 举报

3#
发表于 2012-4-21 21:14:14

参考的是戴明明的blog

http://blog.csdn.net/tianlesoftware/article/details/5024966 的1.3 查看blockcorruption这部份,其中用bbed 修改block部份 BBED> d /v offset 0 count 128 不明白其中的offset 和 count的值是怎么的来的

回复 只看该作者 道具 举报

4#
发表于 2012-4-21 21:33:12
DUMP[/v] [ DBA | FILENAME | FILE | BLOCK | OFFSET | COUNT ]


dump 命令用以 打印一定长度的 block内容

[oracle@vrh8 datafile]$ bbed filename=/tmp/system.dbf password=blockedit blocksize=8192

BBED: Release 2.0.0.0.0 - Limited Production on Sat Apr 21 09:25:04 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

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



BBED> set block 90
        BLOCK#          90

BBED> map /v
File: /tmp/system.dbf (0)
Block: 90                                    Dba:0x00000000
------------------------------------------------------------
KTB Data Block (Table/Cluster)

struct kcbh, 20 bytes                      @0      
    ub1 type_kcbh                           @0      
    ub1 frmt_kcbh                           @1      
    ub1 spare1_kcbh                         @2      
    ub1 spare2_kcbh                         @3      
    ub4 rdba_kcbh                           @4      
    ub4 bas_kcbh                            @8      
    ub2 wrp_kcbh                            @12      
    ub1 seq_kcbh                            @14      
    ub1 flg_kcbh                            @15      
    ub2 chkval_kcbh                         @16      
    ub2 spare3_kcbh                         @18      

struct ktbbh, 72 bytes                     @20      
    ub1 ktbbhtyp                            @20      
    union ktbbhsid, 4 bytes                 @24      
    struct ktbbhcsc, 8 bytes                @28      
    b2 ktbbhict                             @36      
    ub1 ktbbhflg                            @38      
    ub1 ktbbhfsl                            @39      
    ub4 ktbbhfnx                            @40      
    struct ktbbhitl[2], 48 bytes            @44      

struct kdbh, 14 bytes                      @92      
    ub1 kdbhflag                            @92      
    b1 kdbhntab                             @93      
    b2 kdbhnrow                             @94      
    sb2 kdbhfrre                            @96      
    sb2 kdbhfsbo                            @98      
    sb2 kdbhfseo                            @100     
    b2 kdbhavsp                             @102     
    b2 kdbhtosp                             @104     

struct kdbt[3], 12 bytes                   @106     
    b2 kdbtoffs                             @106     
    b2 kdbtnrow                             @108     

sb2 kdbr[46]                               @118     

ub1 freespace[5659]                        @210     

ub1 rowdata[2319]                          @5869   

ub4 tailchk                                @8188   


BBED> dump offset 0 count 10
File: /tmp/system.dbf (0)
Block: 90               Offsets:    0 to    9           Dba:0x00000000
------------------------------------------------------------------------
06a20000 5a004000 ea97

<32 bytes per line>

BBED> dump offset 1 count 10
File: /tmp/system.dbf (0)
Block: 90               Offsets:    1 to   10           Dba:0x00000000
------------------------------------------------------------------------
a200005a 004000ea 970a

<32 bytes per line>

BBED> dump /v  offset 1 count 10
File: /tmp/system.dbf (0)
Block: 90      Offsets:    1 to   10  Dba:0x00000000
-------------------------------------------------------
a200005a 004000ea 970a              l .@.

<16 bytes per line>


dump /v offset $OFFSET  count $COUNT

意为 打印 从 $OFFSET偏移量字节数 的 $COUNT个字节 ,  /v 意为 同时打印 hex to string 的内容


我想这里  的 d /v offset 0 count 128

只是 想演示一下 打印 该block 的header 内容, 前128个字节的内容  没有特别的用意。

回复 只看该作者 道具 举报

5#
发表于 2012-4-24 09:35:53

看了老大的回复,明白了。

bbed的使用及block结构这块我还需要多研究,使用很不熟悉,多谢老大的指点。

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-24 09:41 , Processed in 0.045702 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569