程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> BBED模擬表數據塊的損壞

BBED模擬表數據塊的損壞

編輯:Oracle教程

BBED模擬表數據塊的損壞


1.創建測試表
SQL> conn tes1t/test 1
Connected.
SQL> create table testbbed as select * from dba_tables;

Table created.

SQL> col segment_name format a20;
SQL> select segment_name,file_id,block_id from dba_extents where owner='TEST1' and segment_name='TESTBBED';


SEGMENT_NAME                                                                         FILE_ID   BLOCK_ID
--------------------------------------------------------------------------------- ---------- ----------
TESTBBED                                                                                   5        128
TESTBBED                                                                                   5        136
TESTBBED                                                                                   5        144
TESTBBED                                                                                   5        152
TESTBBED                                                                                   5        160
TESTBBED                                                                                   5        168
TESTBBED                                                                                   5        176
TESTBBED                                                                                   5        184
TESTBBED                                                                                   5        192
TESTBBED                                                                                   5        200
TESTBBED                                                                                   5        208

SEGMENT_NAME                                                                         FILE_ID   BLOCK_ID
--------------------------------------------------------------------------------- ---------- ----------
TESTBBED                                                                                   5        216
TESTBBED                                                                                   5        224
TESTBBED                                                                                   5        232

14 rows selected.

2.創建BBED參數文件
BBED無法對ASM操作

SQL> select file_id, file_name from dba_data_files;

   FILE_ID FILE_NAME
---------- --------------------------------------------------------------------------------------------------------------------------------------------------------------
         4 /u01/app/oracle/oradata/single2/users01.dbf
         3 /u01/app/oracle/oradata/single2/undotbs01.dbf
         2 /u01/app/oracle/oradata/single2/sysaux01.dbf
         1 /u01/app/oracle/oradata/single2/system01.dbf
         5 /u01/app/oracle/oradata/single2/test1.dbf

[oracle@single2 ~]$ vi filelist.txt
5 /u01/app/oracle/oradata/single2/test1.dbf

[oracle@single2 ~]$ vi bbed.par
blocksize=8192
listfile=filelist.txt
mode=edit

3.BBED基本操作
[oracle@single2 ~]$ bbed parfile=bbed.par
Password:

BBED: Release 2.0.0.0.0 - Limited Production on Wed Feb 17 03:46:16 2016

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

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

BBED> info all
 File#  Name                                                        Size(blks)
 -----  ----                                                        ----------
     5  /u01/app/oracle/oradata/single2/test1.dbf                            0

BBED> set file 5
        FILE#           5

BBED> show
        FILE#           5
        BLOCK#          1
        OFFSET          0
        DBA             0x01400001 (20971521 5,1)
        FILENAME        /u01/app/oracle/oradata/single2/test1.dbf
        BIFILE          bifile.bbd
        LISTFILE        filelist.txt
        BLOCKSIZE       8192
        MODE            Edit
        EDIT            Unrecoverable
        IBASE           Dec
        OBASE           Dec
        WIDTH           80
        COUNT           512
        LOGFILE         log.bbd
        SPOOL           No
4.模擬壞塊
BBED> modify 1000 file 5 block 136    --修改第二個segment
 File: /u01/app/oracle/oradata/single2/test1.dbf (5)
 Block: 136              Offsets:    0 to  511           Dba:0x01400088
------------------------------------------------------------------------
 03e80000 88004001 b97a2f00 00000204 32c80000 01000000 895a0100 b27a2f00
 00000000 03003201 80004001 ffff0000 00000000 00000000 00000000 00800000
 b27a2f00 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00011d00
 ffff4c00 89033d03 3d030000 1d007b1e 791d731c 7b1b8c1a 9a19a718 b417c416
 d115d814 e013ed12 fa110b11 1910260f 330e440d 4e0c530b 5c0a6c09 77088207
 8a068d05 86048903 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>
如果修改錯誤,可以執行revert命令回滾
5.驗證壞塊

BBED> verify
DBVERIFY - Verification starting
FILE = /u01/app/oracle/oradata/single2/test1.dbf
BLOCK = 136

Block 136 is corrupt                      -------------------------------------
Corrupt block relative dba: 0x01400088 (file 0, block 136)
Bad header found during verification
Data in bad block:
 type: 3 format: 0 rdba: 0x01400088
 last change scn: 0x0000.002f7ab9 seq: 0x2 flg: 0x04
 spare1: 0x0 spare2: 0x0 spare3: 0x0
 consistency value in tail: 0x7ab90602
 check value in block header: 0xc832
 computed block checksum: 0x4a05


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
Message 531 not found;  product=RDBMS; facility=BBED

6.DBV驗證

[oracle@single2 ~]$ dbv file=/u01/app/oracle/oradata/single2/test1.dbf blocksize=8192


DBVERIFY: Release 11.2.0.4.0 - Production on Wed Feb 17 04:23:46 2016

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

DBVERIFY - Verification starting : FILE = /u01/app/oracle/oradata/single2/test1.dbf
Page 136 is marked corrupt
Corrupt block relative dba: 0x01400088 (file 5, block 136)
Bad header found during dbv:
Data in bad block:
 type: 3 format: 0 rdba: 0x01400088
 last change scn: 0x0000.002f7ab9 seq: 0x2 flg: 0x04
 spare1: 0x0 spare2: 0x0 spare3: 0x0
 consistency value in tail: 0x7ab90602
 check value in block header: 0xc832
 computed block checksum: 0x4a05


DBVERIFY - Verification complete

Total Pages Examined         : 12800
Total Pages Processed (Data) : 98
Total Pages Failing   (Data) : 0
Total Pages Processed (Index): 0
Total Pages Failing   (Index): 0
Total Pages Processed (Other): 136
Total Pages Processed (Seg)  : 0
Total Pages Failing   (Seg)  : 0
Total Pages Empty            : 12565
Total Pages Marked Corrupt   : 1
Total Pages Influx           : 0
Total Pages Encrypted        : 0
Highest block SCN            : 3111633 (0.3111633)

7.讀取
SQL> conn test1/test1
Connected.
SQL> select count(1) from testbbed;

  COUNT(1)
----------
      2834

SQL> alter system flush buffer_cache;

System altered.

SQL> select count(1) from testbbed;
select count(1) from testbbed
                     *
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 5, block # 136)
ORA-01110: data file 5: '/u01/app/oracle/oradata/single2/test1.dbf'

告警日志中:
ALTER SYSTEM: Flushing buffer cache
Hex dump of (file 5, block 136) in trace file /u01/app/oracle/diag/rdbms/single2/single2/trace/single2_ora_2605.trc
Corrupt block relative dba: 0x01400088 (file 5, block 136)
Bad header found during multiblock buffer read
Data in bad block:
 type: 3 format: 0 rdba: 0x01400088
 last change scn: 0x0000.002f7ab9 seq: 0x2 flg: 0x04
 spare1: 0x0 spare2: 0x0 spare3: 0x0
 consistency value in tail: 0x7ab90602
 check value in block header: 0xc832
 computed block checksum: 0x4a05
Reading datafile '/u01/app/oracle/oradata/single2/test1.dbf' for corruption at rdba: 0x01400088 (file 5, block 136)
Reread (file 5, block 136) found same corrupt data (no logical check)
Wed Feb 17 04:24:45 2016
Corrupt Block Found
         TSN = 6, TSNAME = TEST1
         RFN = 5, BLK = 136, RDBA = 20971656
         OBJN = 88713, OBJD = 88713, OBJECT = TESTBBED, SUBOBJECT =
         SEGMENT OWNER = TEST1, SEGMENT TYPE = Table Segment
Corrupt Block Found
         TSN = 6, TSNAME = TEST1
         RFN = 5, BLK = 136, RDBA = 20971656
         OBJN = 88713, OBJD = 88713, OBJECT = TESTBBED, SUBOBJECT =
         SEGMENT OWNER = TEST1, SEGMENT TYPE = Table Segment
Errors in file /u01/app/oracle/diag/rdbms/single2/single2/trace/single2_ora_2605.trc  (incident=99809):
ORA-01578: ORACLE data block corrupted (file # 5, block # 136)
ORA-01110: data file 5: '/u01/app/oracle/oradata/single2/test1.dbf'

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved