oracle11g ASM磁盘组头部损坏修复(asm修复2)

--编译KFED

[[email protected] lib]$cd $ORACLE_HOME/rdbms/lib

[[email protected] lib]$ pwd

/u01/app/oracle/product/10.2.0/db_1/rdbms/lib

[[email protected] lib]$ make -f ins_rdbms.mk ikfed

[[email protected] ~]$ kfed read /dev/oracleasm/disks/VOL1

kfbh.endian:                          1 ; 0x000: 0x01

kfbh.hard:                          130 ; 0x001: 0x82

kfbh.type:                            1 ; 0x002: KFBTYP_DISKHEAD   -- 磁盘头总是KFBTYP_DISKHEAD

kfbh.datfmt:                          1 ; 0x003: 0x01

kfbh.block.blk:                       0 ; 0x004: T=0 NUMB=0x0

kfbh.block.obj:              2147483648 ; 0x008: TYPE=0x8 NUMB=0x0

kfbh.check:                  1464188596 ; 0x00c: 0x5745beb4

kfbh.fcn.base:                        0 ; 0x010: 0x00000000

kfbh.fcn.wrap:                        0 ; 0x014: 0x00000000

kfbh.spare1:                          0 ; 0x018: 0x00000000

kfbh.spare2:                          0 ; 0x01c: 0x00000000

kfdhdb.driver.provstr:     ORCLDISKVOL1 ; 0x000: length=12

kfdhdb.driver.reserved[0]:    827084630 ; 0x008: 0x314c4f56

kfdhdb.driver.reserved[1]:            0 ; 0x00c: 0x00000000

kfdhdb.driver.reserved[2]:            0 ; 0x010: 0x00000000

kfdhdb.driver.reserved[3]:            0 ; 0x014: 0x00000000

kfdhdb.driver.reserved[4]:            0 ; 0x018: 0x00000000

kfdhdb.driver.reserved[5]:            0 ; 0x01c: 0x00000000

kfdhdb.compat:                186646528 ; 0x020: 0x0b200000

kfdhdb.dsknum:                        0 ; 0x024: 0x0000

kfdhdb.grptyp:                        1 ; 0x026: KFDGTP_EXTERNAL

kfdhdb.hdrsts:                        3 ; 0x027: KFDHDR_MEMBER

kfdhdb.dskname:                    VOL1 ; 0x028: length=4

kfdhdb.grpname:                   ASMDG ; 0x048: length=5

kfdhdb.fgname:                     VOL1 ; 0x068: length=4

kfdhdb.capname:                         ; 0x088: length=0

kfdhdb.crestmp.hi:             33003570 ; 0x0a8: HOUR=0x12 DAYS=0x1 MNTH=0x6 YEAR=0x7de

kfdhdb.crestmp.lo:           3991771136 ; 0x0ac: USEC=0x0 MSEC=0x366 SECS=0x1e MINS=0x3b

kfdhdb.mntstmp.hi:             33005233 ; 0x0b0: HOUR=0x11 DAYS=0x15 MNTH=0x7 YEAR=0x7de

kfdhdb.mntstmp.lo:           3079015424 ; 0x0b4: USEC=0x0 MSEC=0x183 SECS=0x38 MINS=0x2d

kfdhdb.secsize:                     512 ; 0x0b8: 0x0200

kfdhdb.blksize:                    4096 ; 0x0ba: 0x1000

kfdhdb.ausize:                  1048576 ; 0x0bc: 0x00100000

kfdhdb.mfact:                    113792 ; 0x0c0: 0x0001bc80

kfdhdb.dsksize:                   10236 ; 0x0c4: 0x000027fc --本磁盘包含的AU数量。kfdhdb.ausize * dsksize_kfdhdb = disk size

kfdhdb.pmcnt:                         2 ; 0x0c8: 0x00000002 --AU的物理地址空间。

kfdhdb.fstlocn:                       1 ; 0x0cc: 0x00000001 --说明第一个AU后,是用户可用空间

kfdhdb.altlocn:                       2 ; 0x0d0: 0x00000002 --说明文件目录开始自第二个AU  与博客一直

kfdhdb.f1b1locn:                      2 ; 0x0d4: 0x00000002

kfdhdb.redomirrors[0]:                0 ; 0x0d8: 0x0000

kfdhdb.redomirrors[1]:                0 ; 0x0da: 0x0000

kfdhdb.redomirrors[2]:                0 ; 0x0dc: 0x0000

kfdhdb.redomirrors[3]:                0 ; 0x0de: 0x0000

kfdhdb.dbcompat:              168820736 ; 0x0e0: 0x0a100000

kfdhdb.grpstmp.hi:             33003570 ; 0x0e4: HOUR=0x12 DAYS=0x1 MNTH=0x6 YEAR=0x7de

kfdhdb.grpstmp.lo:           3991513088 ; 0x0e8: USEC=0x0 MSEC=0x26a SECS=0x1e MINS=0x3b

kfdhdb.vfstart:                       0 ; 0x0ec: 0x00000000

kfdhdb.vfend:                         0 ; 0x0f0: 0x00000000

kfdhdb.spfile:                       33 ; 0x0f4: 0x00000021

kfdhdb.spfflg:                        1 ; 0x0f8: 0x00000001

kfdhdb.ub4spare[0]:                   0 ; 0x0fc: 0x00000000

kfdhdb.ub4spare[1]:                   0 ; 0x100: 0x00000000

kfdhdb.ub4spare[2]:                   0 ; 0x104: 0x00000000

kfdhdb.ub4spare[3]:                   0 ; 0x108: 0x00000000

kfdhdb.ub4spare[4]:                   0 ; 0x10c: 0x00000000

kfdhdb.ub4spare[5]:                   0 ; 0x110: 0x00000000

kfdhdb.ub4spare[6]:                   0 ; 0x114: 0x00000000

kfdhdb.ub4spare[7]:                   0 ; 0x118: 0x00000000

kfdhdb.ub4spare[8]:                   0 ; 0x11c: 0x00000000

kfdhdb.ub4spare[9]:                   0 ; 0x120: 0x00000000

kfdhdb.ub4spare[10]:                  0 ; 0x124: 0x00000000

kfdhdb.ub4spare[11]:                  0 ; 0x128: 0x00000000

kfdhdb.ub4spare[12]:                  0 ; 0x12c: 0x00000000

kfdhdb.ub4spare[13]:                  0 ; 0x130: 0x00000000

kfdhdb.ub4spare[14]:                  0 ; 0x134: 0x00000000

kfdhdb.ub4spare[15]:                  0 ; 0x138: 0x00000000

kfdhdb.ub4spare[16]:                  0 ; 0x13c: 0x00000000

kfdhdb.ub4spare[17]:                  0 ; 0x140: 0x00000000

kfdhdb.ub4spare[18]:                  0 ; 0x144: 0x00000000

kfdhdb.ub4spare[19]:                  0 ; 0x148: 0x00000000

kfdhdb.ub4spare[20]:                  0 ; 0x14c: 0x00000000

kfdhdb.ub4spare[21]:                  0 ; 0x150: 0x00000000

kfdhdb.ub4spare[22]:                  0 ; 0x154: 0x00000000

kfdhdb.ub4spare[23]:                  0 ; 0x158: 0x00000000

kfdhdb.ub4spare[24]:                  0 ; 0x15c: 0x00000000

kfdhdb.ub4spare[25]:                  0 ; 0x160: 0x00000000

kfdhdb.ub4spare[26]:                  0 ; 0x164: 0x00000000

kfdhdb.ub4spare[27]:                  0 ; 0x168: 0x00000000

kfdhdb.ub4spare[28]:                  0 ; 0x16c: 0x00000000

kfdhdb.ub4spare[29]:                  0 ; 0x170: 0x00000000

kfdhdb.ub4spare[30]:                  0 ; 0x174: 0x00000000

kfdhdb.ub4spare[31]:                  0 ; 0x178: 0x00000000

kfdhdb.ub4spare[32]:                  0 ; 0x17c: 0x00000000

kfdhdb.ub4spare[33]:                  0 ; 0x180: 0x00000000

kfdhdb.ub4spare[34]:                  0 ; 0x184: 0x00000000

kfdhdb.ub4spare[35]:                  0 ; 0x188: 0x00000000

kfdhdb.ub4spare[36]:                  0 ; 0x18c: 0x00000000

kfdhdb.ub4spare[37]:                  0 ; 0x190: 0x00000000

kfdhdb.ub4spare[38]:                  0 ; 0x194: 0x00000000

kfdhdb.ub4spare[39]:                  0 ; 0x198: 0x00000000

kfdhdb.ub4spare[40]:                  0 ; 0x19c: 0x00000000

kfdhdb.ub4spare[41]:                  0 ; 0x1a0: 0x00000000

kfdhdb.ub4spare[42]:                  0 ; 0x1a4: 0x00000000

kfdhdb.ub4spare[43]:                  0 ; 0x1a8: 0x00000000

kfdhdb.ub4spare[44]:                  0 ; 0x1ac: 0x00000000

kfdhdb.ub4spare[45]:                  0 ; 0x1b0: 0x00000000

kfdhdb.ub4spare[46]:                  0 ; 0x1b4: 0x00000000

kfdhdb.ub4spare[47]:                  0 ; 0x1b8: 0x00000000

kfdhdb.ub4spare[48]:                  0 ; 0x1bc: 0x00000000

kfdhdb.ub4spare[49]:                  0 ; 0x1c0: 0x00000000

kfdhdb.ub4spare[50]:                  0 ; 0x1c4: 0x00000000

kfdhdb.ub4spare[51]:                  0 ; 0x1c8: 0x00000000

kfdhdb.ub4spare[52]:                  0 ; 0x1cc: 0x00000000

kfdhdb.ub4spare[53]:                  0 ; 0x1d0: 0x00000000

kfdhdb.acdb.aba.seq:                  0 ; 0x1d4: 0x00000000

kfdhdb.acdb.aba.blk:                  0 ; 0x1d8: 0x00000000

kfdhdb.acdb.ents:                     0 ; 0x1dc: 0x0000

kfdhdb.acdb.ub2spare:                 0 ; 0x1de: 0x0000

--网上的替换 这些怎么那么随便...

[[email protected] ~]$ kfed read /dev/oracleasm/disks/VOL1 > vol1.header

[[email protected] ~]$ kfed read /dev/oracleasm/disks/VOL2 > vol2.header

[[email protected] ~]$ diff vol1.header vol2.header

6,7c6,7

< kfbh.block.obj:              2147483648 ; 0x008: TYPE=0x8 NUMB=0x0

< kfbh.check:                  1464188596 ; 0x00c: 0x5745beb4

---

> kfbh.block.obj:              2147483649 ; 0x008: TYPE=0x8 NUMB=0x1

> kfbh.check:                  1413856918 ; 0x00c: 0x5445be96

12,13c12,13

< kfdhdb.driver.provstr:     ORCLDISKVOL1 ; 0x000: length=12

< kfdhdb.driver.reserved[0]:    827084630 ; 0x008: 0x314c4f56

---

> kfdhdb.driver.provstr:     ORCLDISKVOL2 ; 0x000: length=12

> kfdhdb.driver.reserved[0]:    843861846 ; 0x008: 0x324c4f56

20c20

< kfdhdb.dsknum:                        0 ; 0x024: 0x0000

---

> kfdhdb.dsknum:                        1 ; 0x024: 0x0001

23c23

< kfdhdb.dskname:                    VOL1 ; 0x028: length=4

---

> kfdhdb.dskname:                    VOL2 ; 0x028: length=4

25c25

< kfdhdb.fgname:                     VOL1 ; 0x068: length=4

---

> kfdhdb.fgname:                     VOL2 ; 0x068: length=4

39c39

< kfdhdb.f1b1locn:                      2 ; 0x0d4: 0x00000002

---

> kfdhdb.f1b1locn:                      0 ; 0x0d4: 0x00000000

49,50c49,50

< kfdhdb.spfile:                       33 ; 0x0f4: 0x00000021

< kfdhdb.spfflg:                        1 ; 0x0f8: 0x00000001

---

> kfdhdb.spfile:                        0 ; 0x0f4: 0x00000000

> kfdhdb.spfflg:                        0 ; 0x0f8: 0x00000000

--#########################################################################

--查找spfile的位置http://www.xifenfei.com/4071.html

[[email protected] ~]$

[[email protected] ~]$ kfed dev=/dev/oracleasm/disks/VOL2  op=READ|egrep "kfdhdb.sp|ausize"

kfdhdb.ausize:                  1048576 ; 0x0bc: 0x00100000

kfdhdb.spfile:                        0 ; 0x0f4: 0x00000000

kfdhdb.spfflg:                        0 ; 0x0f8: 0x00000000

[[email protected] ~]$ kfed dev=/dev/oracleasm/disks/VOL1  op=READ|egrep "kfdhdb.sp|ausize"

kfdhdb.ausize:                  1048576 ; 0x0bc: 0x00100000

kfdhdb.spfile:                       33 ; 0x0f4: 0x00000021

kfdhdb.spfflg:                        1 ; 0x0f8: 0x00000001

--#########################################################################

3.使用kfed repair修改损坏asm disk header

rac1-> kfed  repair ‘/dev/raw/raw1‘

rac1->  kfed read /dev/raw/raw1 blknum=0

kfbh.endian:                          1 ; 0x000: 0x01

kfbh.hard:                          130 ; 0x001: 0x82

kfbh.type:                            1 ; 0x002: KFBTYP_DISKHEAD

kfbh.datfmt:                          1 ; 0x003: 0x01

kfbh.block.blk:                       0 ; 0x004: T=0 NUMB=0x0

kfbh.block.obj:              2147483648 ; 0x008: TYPE=0x8 NUMB=0x0

kfbh.check:                   883602253 ; 0x00c: 0x34aab34d

kfbh.fcn.base:                        0 ; 0x010: 0x00000000

kfbh.fcn.wrap:                        0 ; 0x014: 0x00000000

kfbh.spare1:                          0 ; 0x018: 0x00000000

kfbh.spare2:                          0 ; 0x01c: 0x00000000

--#########################################################################

4.使用kfed merge恢复asm disk header

rac1-> dd if=/dev/zero of=/dev/raw/raw1 bs=4096 count=1

1+0 records in

1+0 records out

rac1->  kfed read /dev/raw/raw1 blknum=0

kfbh.endian:                          0 ; 0x000: 0x00

kfbh.hard:                            0 ; 0x001: 0x00

kfbh.type:                            0 ; 0x002: KFBTYP_INVALID

kfbh.datfmt:                          0 ; 0x003: 0x00

kfbh.block.blk:                       0 ; 0x004: T=0 NUMB=0x0

kfbh.block.obj:                       0 ; 0x008: TYPE=0x0 NUMB=0x0

kfbh.check:                           0 ; 0x00c: 0x00000000

kfbh.fcn.base:                        0 ; 0x010: 0x00000000

kfbh.fcn.wrap:                        0 ; 0x014: 0x00000000

kfbh.spare1:                          0 ; 0x018: 0x00000000

kfbh.spare2:                          0 ; 0x01c: 0x00000000

http://www.itpub.net/thread-1597605-1-1.html 具体信息参考这里:

[[email protected] ~]$ kfod disk=all

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

Disk          Size Path                                     User     Group

================================================================================

1:      10236 Mb ORCL:VOL1                                <unknown> <unknown>

2:      10236 Mb ORCL:VOL2                                <unknown> <unknown>

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

ORACLE_SID ORACLE_HOME

================================================================================

+ASM /orac/orahome/app/11.2.0/grid

[[email protected] ~]$

时间: 2024-08-25 17:30:58

oracle11g ASM磁盘组头部损坏修复(asm修复2)的相关文章

案例:Oracle非常规恢复 ASM磁盘组diskgroup被删除使用kfed进行完美恢复

Oracle RAC环境ASM磁盘组被强制删除,使用kfed工具完美恢复误删除磁盘组案例 在某些情况下,可能因为误操作,不小先drop diskgroup,这个时候千万别紧张,出现此类故障,可以通过kfed进行完美恢复(数据0丢失).如果进一步损坏了相关asm disk,那后续恢复就很麻烦了,可能需要使用dul扫描磁盘来进行抢救性恢复,而且可能导致数据丢失. 1.创建Oracle环境中的测试磁盘组 [[email protected] ~]$ sqlplus / as sysasm SQL*Pl

AMDU恢复ASM磁盘组数据(测)

--umount ASMCMD> umoung -a asmdg commands: md_backup, md_restor lsattr, setattr cd, cp, du, find, help, ls, lsct, lsdg, lsof, mkalias mkdir, pwd, rm, rmalias chdg, chkdg, dropdg, iostat, lsdsk, lsod, mkdg, mount offline, online, rebal, remap, umount

AIX使用LV创建ASM磁盘组

纠结啊为毛感觉只过了一天,就有两天没写了,今天晚上的机票离开上海.希望小叶子不会难为我. 昨晚研究了一下插卡小哥的业务流程,发现他并不是每个房间都插的,时间在每晚的9点到11点之间.估计是会在周边每个宾馆巡回一遍,插广告的房间有两种可能,第一种就是他们和宾馆沆瀣一气,知道哪个房间有人,第二种可能就是他们只给大床房的房间发,7天没有单间所以单身旅客一般会选择大床房,这绝对是优质潜在用户哇. 晚上看了个 正者无敌 还挺好看的样子,里面男主娶了3房姨太太,不错不错~ 晚上做了个梦,醒来后还是格外清晰,

ASM磁盘组状态和使用率的监控

最近根据需求,使用Zabbix对ASM磁盘组的状态和使用率进行监控,于是写了个Shell脚步对ASM磁盘组进行监控. 1.Shell脚步如下: #!/bin/bash ############################################################### # Check usage rate -- Check the ASM disk usage # # History: 2016/04/07 zhuwei First release ##########

LINUX 11G RAC ASM磁盘组在线增加磁盘扩容

[javascript] view plain copy LINUX 11G RAC ASM磁盘组在线增加磁盘扩容 1.操作系统版本 OEL 6.1 [[email protected] ~]# more /etc/redhat-release Red Hat Enterprise Linux Server release 6.1 (Santiago) 2.数据库版本 oracle 11g rac SQL> select * from v$version; BANNER ------------

asm磁盘全部是损坏恢复总结

实验环境: centos6.4 oracle 11.2.0.4 -- 使用的是udev方式映射的raw,然后做的是asm --- 本来想把sdb,sdc这个块磁盘替换掉. sdb => 1g:sdb1,sdb2,sdb3. 2g:sdb5,sdb6,sdb7 sdc => 2g:sdc1,sdc2,sdc3,sdc5,sdc6 做成了2个磁盘组 OCR sdb1,sdb2,sdb3  raw1,raw2,raw3,raw4 DATA sdb5,sdb6,sdb7 sdc1 raw5 ,raw6

11G ORACLE RAC DBCA 无法识别asm磁盘组

ASM磁盘无法识别几种现象: 1) gi家目录或者其子目录权限错误 2)asm磁盘的权限错误 3)asm实例未启动或者asm磁盘组没有mount上 4)asm磁盘组资源没有在线 5)oracle用户的权限错误 6)oracle($ORACLE_HOME/bin)可执行文件的权限错误 OK,那我就按照上面的分析结果进行逐一排查: 1) gi家目录或者其子目录权限错误 [[email protected] ~]# ls -ld /u01/app/11.2.0/grid/drwxr-x--- 66 r

使用asmcmdcp命令把datafile从文件系统移动(move)到asm磁盘组中 针对11gR2

使用asmcmd cp命令 把datafile从文件系统移动(move)到asm磁盘组中--针对11gR2 参考原文:How to Move a Datafile from Filesystem to ASM Using ASMCMD CP Command. (Doc ID 1610615.1) 适用于:Oracle Database - Enterprise Edition - Version 11.2.0.1 to 11.2.0.4 [Release 11.2]Information in

ASM磁盘组异机迁移

环境: Source: OS:redhat 6.3 DB:Oralce RAC 11.2.4.0 destination: OS:redhat 6.3 DB:Oralce RAC 11.2.4.0 背景:客户的PC机上面有两个实例,压力太大,需要迁移出一个实例.数据量TB级别,因为同平台,同版本,外挂存储.所以这里采用直接迁移asm磁盘组 操作前需要注意的: 1.Voting Disk是单独的盘,不包含需要迁移的数据 话不多,这里模拟出来分享给大家(PS:我的原库和目标库的主机名是一样的,第三步