使用BBED理解和修改Oracle数据块(2)

BBED> print type_kcbh
ub1 type_kcbh                              @0        0x06
BBED> print frmt_kcbh
ub1 frmt_kcbh                              @1        0xa2

事务层:

BBED> print ktbbh
struct ktbbh, 72 bytes                      @20     
  ub1 ktbbhtyp                            @20      0x01 (KDDBTDATA)  ==>块类型,01 Data,02 Index
  union ktbbhsid, 4 bytes                  @24                        ==>对象号(DBA_OBJECTS.OBJECT_ID)/段号
      ub4 ktbbhsg1                          @24      0x0001a2c4          ==>对象段号
      ub4 ktbbhod1                          @24      0x0001a2c4        ==>对象号
  struct ktbbhcsc, 8 bytes                @28     
      ub4 kscnbas                          @28      0x002fbaab          ==>SCN  Base
      ub2 kscnwrp                          @32      0x0000              ==>SCN  Wrap
  sb2 ktbbhict                            @36      2                  ==>事务槽号(ITL number)
  ub1 ktbbhflg                            @38      0x32 (NONE)          ==>on the free list
  ub1 ktbbhfsl                            @39      0x00                  ==>ITL TX free list slot
  ub4 ktbbhfnx                            @40      0x01c00080            ==>下一个空闲块的地址 (next free block dba)
  struct ktbbhitl[0], 24 bytes            @44                              ==>事务槽1
      struct ktbitxid, 8 bytes              @44                            ==>xid  V$TRANSACTION.XID
        ub2 kxidusn                        @44      0x0005              ==>usn V$TRANSACTION.XIDUSN
        ub2 kxidslt                        @46      0x001f                  ==>slot V$TRANSACTION.XIDSLOT
        ub4 kxidsqn                        @48      0x000009cb      ==>sqn  V$TRANSACTION.UBASQN
      struct ktbituba, 8 bytes              @52                        ==>uba
        ub4 kubadba                        @52      0x00c002d1    ==>dba
        ub2 kubaseq                        @56      0x0375        ==>seq
        ub1 kubarec                        @58      0x11          ==>V$TRANSACTION.UBAREC
      ub2 ktbitflg                          @60      0xa000 (KTBFUPB, KTBFCOM)
      union _ktbitun, 2 bytes              @62     
        sb2 _ktbitfsc                      @62      0
        ub2 _ktbitwrp                      @62      0x0000
      ub4 ktbitbas                          @64      0x002fb364
  struct ktbbhitl[1], 24 bytes            @68                            ==>事务槽2
      struct ktbitxid, 8 bytes              @68     
        ub2 kxidusn                        @68      0x0000
        ub2 kxidslt                        @70      0x0000
        ub4 kxidsqn                        @72      0x00000000
      struct ktbituba, 8 bytes              @76     
        ub4 kubadba                        @76      0x00000000
        ub2 kubaseq                        @80      0x0000
        ub1 kubarec                        @82      0x00
      ub2 ktbitflg                          @84      0x0000 (NONE)
      union _ktbitun, 2 bytes              @86     
        sb2 _ktbitfsc                      @86      0
        ub2 _ktbitwrp                      @86      0x0000
      ub4 ktbitbas                          @88      0x00000000

数据层:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/5b6a0dc8105a4ddf2eca22fd02a14cb8.html