[20181204]bbed修改問題.txt

lfree發表於2018-12-04

[20181204]bbed修改問題.txt


--//使用bbed修改資料塊,遇到一個問題,做1個記錄.


1.環境:

SYS@book> @ ver1

PORT_STRING                    VERSION        BANNER

------------------------------ -------------- --------------------------------------------------------------------------------

x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production


SYS@book> select HEADER_FILE,HEADER_BLOCK,BLOCKS,EXTENTS from dba_segments where segment_name='SYSTEM' and SEGMENT_TYPE='ROLLBACK';

HEADER_FILE HEADER_BLOCK     BLOCKS    EXTENTS

----------- ------------ ---------- ----------

          1          128         48          6


--//system表空間使用MSSM,bbed可以訪問段頭.

SYS@book> shutdown immediate ;

Database closed.

Database dismounted.

ORACLE instance shut down.


2.解決ora-00600[4193][4194]問題,需要修改如下:

set dba 1,128

assign ktuxc.ktuxcnfb=0x0000

assign ktuxc.ktuxcfbp[0].ktufbuba.kubadba=0x00000000


--//遇到的奇怪問題,做一個記錄:


2.bbed操作:


SYS@book> shutdown immediate ;

Database closed.

Database dismounted.

ORACLE instance shut down.


BBED> set dba 1,128

        DBA             0x00400080 (4194432 1,128)


BBED> p dba 1,128 ktuxc

struct ktuxc, 104 bytes                     @4148

   struct ktuxcscn, 8 bytes                 @4148

      ub4 kscnbas                           @4148     0x3776bed3

      ub2 kscnwrp                           @4152     0x0003

   struct ktuxcuba, 8 bytes                 @4156

      ub4 kubadba                           @4156     0x0040008c

      ub2 kubaseq                           @4160     0x002b

      ub1 kubarec                           @4162     0x15

   sb2 ktuxcflg                             @4164     1 (KTUXCFSK)

   ub2 ktuxcseq                             @4166     0x002b

   sb2 ktuxcnfb                             @4168     1

   ub4 ktuxcinc                             @4172     0x00000000

   sb2 ktuxcchd                             @4176     84

   sb2 ktuxcctl                             @4178     72

   ub2 ktuxcmgc                             @4180     0x8002

   ub4 ktuxcopt                             @4188     0x7ffffffe

   struct ktuxcfbp[0], 12 bytes             @4192

      struct ktufbuba, 8 bytes              @4192

         ub4 kubadba                        @4192     0x0040008c

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  

         ub2 kubaseq                        @4196     0x002b

         ub1 kubarec                        @4198     0x1e

      sb2 ktufbext                          @4200     1

      sb2 ktufbspc                          @4202     650


--//修改下劃線的內容為0x00000000.

--//我寫成assign ktuxc.ktuxcfbp[0].ktufbuba=0x00000000,少寫了kubadba,看看發生什麼?


BBED> assign ktuxc.ktuxcfbp[0].ktufbuba=0x00000000

Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y

struct ktufbuba, 8 bytes                    @4192

   ub4 kubadba                              @4192     0x00000000

   ub2 kubaseq                              @4196     0x8180

   ub1 kubarec                              @4198     0x62


--//連後面的ktuxcfbp[0].kubaseq,ktuxcfbp[0].kubarec都修改了.


BBED> p ktuxc.ktuxcfbp[0]

struct ktuxcfbp[0], 12 bytes                @4192

   struct ktufbuba, 8 bytes                 @4192

      ub4 kubadba                           @4192     0x00000000

      ub2 kubaseq                           @4196     0x8180

      ub1 kubarec                           @4198     0x62

   sb2 ktufbext                             @4200     1

   sb2 ktufbspc                             @4202     650



--//還原:

BBED> revert

All changes made in this session will be rolled back. Proceed? (Y/N) y

Reverted file '/mnt/ramdisk/book/system01.dbf', block 128

Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y


BBED> p ktuxc.ktuxcfbp[0]

struct ktuxcfbp[0], 12 bytes                @4192

   struct ktufbuba, 8 bytes                 @4192

      ub4 kubadba                           @4192     0x0040008c

      ub2 kubaseq                           @4196     0x002b

      ub1 kubarec                           @4198     0x1e

   sb2 ktufbext                             @4200     1

   sb2 ktufbspc                             @4202     650


--//實際上上面的命令assign ktuxc.ktuxcfbp[0].ktufbuba=0x00000000,修改的是ktufbuba,長度不足,我估計亂打入一些內容.以後注意.

--//正確的是執行:

BBED> assign ktuxc.ktuxcfbp[0].ktufbuba.kubadba=0x00000000

ub4 kubadba                                 @4192     0x00000000


BBED> p ktuxc.ktuxcfbp[0]

struct ktuxcfbp[0], 12 bytes                @4192

   struct ktufbuba, 8 bytes                 @4192

      ub4 kubadba                           @4192     0x00000000

      ub2 kubaseq                           @4196     0x002b

      ub1 kubarec                           @4198     0x1e

   sb2 ktufbext                             @4200     1

   sb2 ktufbspc                             @4202     650


--//這樣才修改正確,以後工作注意,一些細節很重要,儘量避免不必要的錯誤.


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2284090/,如需轉載,請註明出處,否則將追究法律責任。

相關文章