eygle.com   eygle.com
eygle.com  
 

« September 11, 2005 | Blog首页 | September 13, 2005 »



September 12, 2005

EMC Disk Fault Again and Again

作者:eygle

出处:http://blog.eygle.com

EMC的磁盘又又又又坏了一块:

# navicli -h 172.16.9.5 getdisk 1_0_14
Bus 1 Enclosure 0  Disk 14
Vendor Id:               SEAGATE 
Product Id:              ST314680 CLAR72 
Product Revision:        7A0A
Lun:                     102 
Type:                    102: Hot Spare 
State:                   Enabled
Hot Spare:               102: YES 
Hot Spare Replacing:     1_0_1
Prct Rebuilt:            102: 100 
Prct Bound:              102: 100 
Serial Number:           3HY6TS0D
Sectors:                 139681792 (68204)
Capacity:                68238
Private:                 102: 69704 
Bind Signature:          0x682d, 0, 14
Hard Read Errors:        0
Hard Write Errors:       0
Soft Read Errors:        0
Soft Write Errors:       0
Read Retries:     N/A
Write Retries:    N/A
Remapped Sectors:        N/A
Number of Reads:         5056455
Number of Writes:        136233
Number of Luns:          1
Raid Group ID:           102
Clariion Part Number:    DG118032458  
Request Service Time:    N/A
Read Requests:           5056455
Write Requests:          136233
Kbytes Read:             278203212
Kbytes Written:          2305373
Stripe Boundary Crossing: 0

最近这个月不停的换硬盘玩了.
唉,命苦啊!

Posted by eygle at 9:44 AM | Comments (4)


How to repair corruption block use BBED?

作者:eygle

出处:http://blog.eygle.com

前面我已经介绍了如何使用BBED模拟坏块,本文简要介绍如何使用BBED修复损坏的BLOCK。

1.备份数据文件
要想恢复损坏的文件,需要存在一个良好文件,本文简单冷备份一下文件.
[oracle@jumper conner]$ cp users01.dbf users01.dbf.bak


2.修改BBED参数文件
加入备份文件

[oracle@jumper conner]$ vi filelist.txt 

         1 /opt/oracle/oradata/conner/system01.dbf       440401920
         2 /opt/oracle/oradata/conner/undotbs01.dbf      104857600
         3 /opt/oracle/oradata/conner/users01.dbf        27262976
         4 /opt/oracle/oradata/conner/users01.dbf.bak    27262976
~
~
~
"filelist.txt" 4L, 259C written    



3.破坏数据块
[oracle@jumper conner]$ bbed parfile=par.bbd 
Password: 

BBED: Release 2.0.0.0.0 - Limited Production on Sun Sep 11 22:30:11 2005

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

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

BBED> set file 3
        FILE#           3

BBED> modify 1000 file 3 block 17
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) Y
 File: /opt/oracle/oradata/conner/users01.dbf (3)
 Block: 17               Offsets:    0 to  511           Dba:0x00c00011
------------------------------------------------------------------------
 03e80000 1100c000 75b5a320 00000104 06300000 01000000 611e0000 72b5a320 
 00000000 03003201 0900c000 ffff0000 00000000 00000000 00000000 00800000 
 72b5a320 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00012600 
 ffff5e00 d5037703 77030000 2600c21e 101e581d a91cf61b 471b941a dd192819 
 6218b417 06175216 9715dd14 26146c13 b4120712 44118310 bc0ffa0e 380e790d 
 b60cf40b 350b790a c0090409 45088b07 cc060e06 57059804 d5030000 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> verify
DBVERIFY - Verification starting
FILE = /opt/oracle/oradata/conner/users01.dbf
BLOCK = 17

Block 17 is corrupt
***
Corrupt block relative dba: 0x00c00011 (file 0, block 17)
Bad header found during verification
Data in bad block -
 type: 3 format: 0 rdba: 0x00c00011
 last change scn: 0x0000.20a3b575 seq: 0x1 flg: 0x04
 consistency value in tail: 0xb5750601
 check value in block header: 0x3006, computed block checksum: 0xea05
 spare1: 0x0, spare2: 0x0, spare3: 0x0
***


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> quit


4.从备份文件中copy良好数据块进行恢复
                                                          
[oracle@jumper conner]$ bbed parfile=par.bbd 
Password: 

BBED: Release 2.0.0.0.0 - Limited Production on Sun Sep 11 22:33:55 2005

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

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

BBED> set file 4
        FILE#           4

BBED> show
        FILE#           4
        BLOCK#          1
        OFFSET          0
        DBA             0x01000001 (16777217 4,1)
        FILENAME        /opt/oracle/oradata/conner/users01.dbf.bak
        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

BBED> copy file 4 block 17 to file 3 block 17;
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) Y
 File: /opt/oracle/oradata/conner/users01.dbf (3)
 Block: 17               Offsets:    0 to  511           Dba:0x00c00011
------------------------------------------------------------------------
 06020000 1100c000 75b5a320 00000104 06300000 01000000 611e0000 72b5a320 
 00000000 03003201 0900c000 ffff0000 00000000 00000000 00000000 00800000 
 72b5a320 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00012600 
 ffff5e00 d5037703 77030000 2600c21e 101e581d a91cf61b 471b941a dd192819 
 6218b417 06175216 9715dd14 26146c13 b4120712 44118310 bc0ffa0e 380e790d 
 b60cf40b 350b790a c0090409 45088b07 cc060e06 57059804 d5030000 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> verify
DBVERIFY - Verification starting
FILE = /opt/oracle/oradata/conner/users01.dbf
BLOCK = 17


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> 


至此恢复完成。
5.数据库验证

SQL> select count(*) from bbed;
select count(*) from bbed
*
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 3, block # 17)
ORA-01110: data file 3: '/opt/oracle/oradata/conner/users01.dbf'

SQL> alter tablespace users offline;

Tablespace altered.

SQL> alter tablespace users online;

Tablespace altered.

SQL> select count(*) from bbed;

  COUNT(*)
----------
       523

善用BBED可以从很多棘手的问题中拯救我们的数据库。本案例仅供参考。

Posted by eygle at 4:38 AM | Comments (7)



CopyRight © 2004-2008 eygle.com, All rights reserved.