欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

怎么計算出正確的checksum值?

1)創(chuàng)建一個測試表

公司主營業(yè)務:成都網站設計、成都網站建設、移動網站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出防城港免費做網站回饋大家。

SQL> create table test (id int, name varchar2(10));

 

Table created.

 

SQL> insert into test values(1,'AAAAA');

 

1 row created.

SQL> commit;

 

Commit complete.

 

SQL> select dbms_rowid.ROWID_RELATIVE_FNO(rowid) file#,dbms_rowid.ROWID_BLOCK_NUMBER(rowid) blk# from test;

 

     FILE#       BLK#

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

         4        284

 

通過BBED查看當前的CHECKSUM值

[oracle@MySQL ~]$ bbed

 

BBED: Release 2.0.0.0.0 - Limited Production on Fri May 25 00:54:11 2018

 

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

 

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

 

BBED> set file 4 block 284

        FILE#           4

        BLOCK#          284

 

BBED> sum

Check value for File 4, Block 284:

current = 0xf9ff, required = 0xf9ff

 

把284號數據塊dump出來。

[oracle@Mysql ~]$ dd if=/u01/app/oracle/oradata/dsidb/users01.dbf of=/tmp/test.dd count=1 skip=284 bs=8192

1+0 records in

1+0 records out

8192 bytes (8.2 kB) copied, 0.000435816 s, 18.8 MB/s

 

我們使用UE編輯器打開test.dd數據塊

然后把C1 02改成C1 03

 

然后把test.dd數據塊copy回去

[oracle@Mysql tmp]$ dd if=/tmp/test.dd of=/u01/app/oracle/oradata/dsidb/users01.dbf count=1 seek=284 bs=8192 conv=notrunc

1+0 records in

1+0 records out

8192 bytes (8.2 kB) copied, 0.000339993 s, 24.1 MB/s

 

 

然后重啟一下數據庫

SQL> startup force;

ORACLE instance started.

 

Total System Global Area  588746752 bytes

Fixed Size                  2230592 bytes

Variable Size             201328320 bytes

Database Buffers          377487360 bytes

Redo Buffers                7700480 bytes

Database mounted.

Database opened.

 

SQL> conn scott/oracle

Connected.

SQL> select * from test;

select * from test

              *

ERROR at line 1:

ORA-01578: ORACLE data block corrupted (file # 4, block # 284)

ORA-01110: data file 4: '/u01/app/oracle/oradata/dsidb/users01.dbf'

 

可以看到數據庫查詢表test報錯,我們再看一下數據庫日志。

2018-05-25 01:16:29.248000 +08:00

Errors in file /u01/app/oracle/diag/rdbms/dsidb/dsidb/trace/dsidb_ora_10666.trc  (incident=102183):

ORA-01578: ORACLE data block corrupted (file # 4, block # 284)

ORA-01110: data file 4: '/u01/app/oracle/oradata/dsidb/users01.dbf'

Incident details in: /u01/app/oracle/diag/rdbms/dsidb/dsidb/incident/incdir_102183/dsidb_ora_10666_i102183.trc

Sweep [inc][102182]: completed

Hex dump of (file 4, block 284) in trace file /u01/app/oracle/diag/rdbms/dsidb/dsidb/incident/incdir_102182/dsidb_m000_10668_i102182_a.trc

Corrupt block relative dba: 0x0100011c (file 4, block 284)

Bad check value found during validation

Data in bad block:

 type: 6 format: 2 rdba: 0x0100011c

 last change scn: 0x0000.003ffe2d seq: 0x1 flg: 0x06

 spare1: 0x0 spare2: 0x0 spare3: 0x0

 consistency value in tail: 0xfe2d0601

 check value in block header: 0xf9ff

 computed block checksum: 0x100

 

可以看到文件頭上的check value值為0xf9ff,計算的check sum值為0x100

 

然后我們再使用BBED去sum一下這個數據塊,可以看到,當前check value的值為f9ff,而需要的值為f8ff

[oracle@Mysql ~]$ bbed

 

BBED: Release 2.0.0.0.0 - Limited Production on Fri May 25 01:18:44 2018

 

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

 

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

 

BBED> set file 4 block 284

        FILE#           4

        BLOCK#          284

 

BBED> sum

Check value for File 4, Block 284:

current = 0xf9ff, required = 0xf8ff

 

我們根據 0xf9ff與0x100計算一下當前block正常的checksum值應該是多少。

F9FF= 1111 1001 1111 1111

100=  0000 0001 0000 0000

根據異或算法原理,這里很容易可以看出oracle計算出來的正確的checksum值應該是:  1111 1000 1111 1111, 也就是f8ff

 

好了,我們這里如法炮制再改一次上述block的checksum值,即將上述block的checksum值改為f8 ff

 

我們先verify一下

BBED> verify

DBVERIFY - Verification starting

FILE = /u01/app/oracle/oradata/dsidb/users01.dbf

BLOCK = 284

 

Block 284 is corrupt

Corrupt block relative dba: 0x0100011c (file 0, block 284)

Bad check value found during verification

Data in bad block:

 type: 6 format: 2 rdba: 0x0100011c

 last change scn: 0x0000.003ffe2d seq: 0x1 flg: 0x06

 spare1: 0x0 spare2: 0x0 spare3: 0x0

 consistency value in tail: 0xfe2d0601

 check value in block header: 0xf9ff

 computed block checksum: 0x100

 

 

DBVERIFY - Verification complete

 

Total Blocks Examined         : 1

Total Blocks Processed (Data) : 0

Total Blocks Failing   (Data) : 0

Total Blocks Processed (Index): 0

Total Blocks Failing   (Index): 0

Total Blocks Empty            : 0

Total Blocks Marked Corrupt   : 1

Total Blocks Influx           : 0

 

 

BBED> sum

Check value for File 4, Block 284:

current = 0xf9ff, required = 0xf8ff

 

BBED> sum

Check value for File 4, Block 284:

current = 0xf9ff, required = 0xf8ff

 

BBED> modify /x 0xf8ff offset 16

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

 File: /u01/app/oracle/oradata/dsidb/users01.dbf (4)

 Block: 284              Offsets:   16 to  527           Dba:0x0100011c

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

 f8ff0000 01000000 fa2a0100 2cfe3f00 00000000 02003200 18010001 1d000900

 a0000000 ba040002 4d001100 01200000 2dfe3f00 00000000 00000000 00000000

 00000000 00000000 00000000 00000000 00000000 00010100 ffff1400 8c1f781f

 781f0000 01008c1f ffff3200 a0046e04 6e040000 1000c01d 961c7b1b b9190418

 50167a14 9812f110 4b0f830d ba0bde09 29087606 a0040000 00000000 00000000

 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

 

 <32 bytes per line>

 

BBED> sum apply

Check value for File 4, Block 284:

current = 0xf8ff, required = 0xf8ff

 

 

然后再次verify,可以看到,已經不報壞塊了。

BBED> verify

DBVERIFY - Verification starting

FILE = /u01/app/oracle/oradata/dsidb/users01.dbf

BLOCK = 284

 

 

DBVERIFY - Verification complete

 

Total Blocks Examined         : 1

Total Blocks Processed (Data) : 1

Total Blocks Failing   (Data) : 0

Total Blocks Processed (Index): 0

Total Blocks Failing   (Index): 0

Total Blocks Empty            : 0

Total Blocks Marked Corrupt   : 0

Total Blocks Influx           : 0

 

 

BBED> sum

Check value for File 4, Block 284:

current = 0xf8ff, required = 0xf8ff

 

數據也可以正常返回了。

SQL> select * from test;

 

        ID NAME

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

         2 AAAAA

 

 

 

2.重現(xiàn)數據塊內空間計算錯誤?(詳細的實驗操作步驟,BBED工具verify如下命令提示)

BBED>verify

 

kdbchk:the amount of space used is not equal to block size

Total Blocks Failing(Data)

 

SQL> create table t2 (id int,name varchar2(10));

 

Table created.

 

SQL> insert into t2 values(1,'AAAAA');

 

1 row created.

 

SQL> commit;

 

Commit complete.

 

 

SQL> alter system flush buffer_cache;

 

System altered.

 

SQL> select dbms_rowid.rowid_relative_fno(rowid) file#,dbms_rowid.rowid_block_number(rowid) blk# from t2;

 

     FILE#       BLK#

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

         4        220

 

 

SQL> delete from t2;

 

1 row deleted.

 

SQL> alter system flush buffer_cache;

 

System altered.

 

 

BBED> set file 4 block 220

        FILE#           4

        BLOCK#          220

 

BBED> map

 File: /u01/app/oracle/oradata/dsidb/users01.dbf (4)

 Block: 220                                   Dba:0x010000dc

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

 KTB Data Block (Table/Cluster)

 

 struct kcbh, 20 bytes                      @0      

 

 struct ktbbh, 72 bytes                     @20     

 

 struct kdbh, 14 bytes                      @100    

 

 struct kdbt[1], 4 bytes                    @114    

 

 sb2 kdbr[1]                                @118    

 

 ub1 freespace[8055]                        @120    

 

 ub1 rowdata[13]                            @8175   

 

 ub4 tailchk                                @8188   

 

 

BBED> p rowdata

ub1 rowdata[0]                              @8175     0x3c

ub1 rowdata[1]                              @8176     0x02

ub1 rowdata[2]                              @8177     0x02

ub1 rowdata[3]                              @8178     0x02

ub1 rowdata[4]                              @8179     0xc1

ub1 rowdata[5]                              @8180     0x02

ub1 rowdata[6]                              @8181     0x06

ub1 rowdata[7]                              @8182     0x41

ub1 rowdata[8]                              @8183     0x41

ub1 rowdata[9]                              @8184     0x41

ub1 rowdata[10]                             @8185     0x41

ub1 rowdata[11]                             @8186     0x41

ub1 rowdata[12]                             @8187     0x0a

 

BBED> modify /x 2c offset 8175

 File: /u01/app/oracle/oradata/dsidb/users01.dbf (4)

 Block: 220              Offsets: 8175 to 8191           Dba:0x010000dc

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

 2c020202 c1020641 41414141 0a010621 59

 

 <32 bytes per line>

 

BBED> sum apply

Check value for File 4, Block 220:

current = 0x1f3f, required = 0x1f3f

 

BBED> verify

DBVERIFY - Verification starting

FILE = /u01/app/oracle/oradata/dsidb/users01.dbf

BLOCK = 220

 

Block Checking: DBA = 16777436, Block Type = KTB-managed data block

data header at 0x24d9064

kdbchk: the amount of space used is not equal to block size

        used=33 fsc=11 avsp=8055 dtl=8088

Block 220 failed with check code 6110

 

DBVERIFY - Verification complete

 

Total Blocks Examined         : 1

Total Blocks Processed (Data) : 1

Total Blocks Failing   (Data) : 1

Total Blocks Processed (Index): 0

Total Blocks Failing   (Index): 0

Total Blocks Empty            : 0

Total Blocks Marked Corrupt   : 0

Total Blocks Influx           : 0

Message 531 not found;  product=RDBMS; facility=BBED

 

 

BBED> p kdbh

struct kdbh, 14 bytes                       @100    

   ub1 kdbhflag                             @100      0x00 (NONE)

   sb1 kdbhntab                             @101      1

   sb2 kdbhnrow                             @102      1

   sb2 kdbhfrre                             @104     -1

   sb2 kdbhfsbo                             @106      20

   sb2 kdbhfseo                             @108      8075

   sb2 kdbhavsp                             @110      8055

   sb2 kdbhtosp                             @112      8068

名稱欄目:怎么計算出正確的checksum值?
本文地址:http://aaarwkj.com/article36/ihhdsg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供外貿網站建設、虛擬主機微信小程序、外貿建站網站改版、關鍵詞優(yōu)化

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

手機網站建設
日本在线免费成人高清| 中文字幕av一区二区人妻| 久久国产精品亚洲熟女66r| av永久天堂一区二区三区| 国产三级传媒在线观看| 国产传媒网约在线观看| 日本黄色录像在线观看| 国产精品—色哟哟视频| 日韩精品欧美精品一区二区| 乱码日本欧美一区二区| 国产一区二区在线不卡播放| 国产三级传媒视频在线观看| 久久九九精品日本人妻视频| 乱码日本欧美一区二区| 亚洲福利视频在线观看免费 | 另类亚洲欧美专区第一页| 久久人热视频这里只有精品| 99精品欧美一区二区三区视频| 日进去了啊内射视频| 国产好大好爽在线免费观看| 人妻熟妇一区二区三区成人| 国产三级亚洲三级在线理论| 成人av影视中文字幕 | 天堂在线手机av观看| 国产乱码免费一区二区三区| 永久黄区观看在线网址| 色哟哟国产精品一区自拍| 亚洲性码不卡视频在线| 日本免费高清一区二区| 国产精品一区二区国产激情久久| 久久午夜视频在线观看| 成人国产视频免费观看| 精品人妻中文字幕在线| 国产亚洲精品一区在线| 四虎在线观看精品一区| 国产91香蕉在线精品| 99久久精品国产熟女| 国产色综合一区二区| 浮力草草日韩欧美三级| 国产精品欧美色区福利在线 | 日韩高清在线不卡视频|