> 背景, 有一些情况,尤其在扩容文件系统时,由于排查不彻底,将正在使用的磁盘组磁盘给格式化了,被ext4格式化后没有修复可能,可以通过其他途径读取该磁盘数据,到也会造成部分数据丢失,且花费巨大。 那么如果没有备份,且忍痛可以丢失被格式化磁盘的数据,其他正常磁盘能否正常挂起呢,不能,因为asm 挂载会找丢失的磁盘。通过什么办法可以尝试呢,具体如下

ASM介绍,具体参考本博其他文章,本文主要是介绍如何修改磁盘头信息,及正常挂起磁盘组

首先我们可以检查确认磁盘头是否完全损坏

```

kfed read /dev/raw/raw5 aun=1 blkn=254 #此块是asm 磁盘头信息的备份

```

如果报错,只能通过其他磁盘头信息,修复,需要修改的内容如下

```

[grid@myasm tmp]$ vi /tmp/3.txt

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: blk=0 ## 磁盘组中磁盘号

kfbh.block.obj: 2147483648 ; 0x008: disk=0

kfbh.check: 258447492 ; 0x00c: 0x0f679884

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: ORCLDISK ; 0x000: length=8

kfdhdb.driver.reserved[0]: 0 ; 0x008: 0x00000000

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 ## dsknum 磁盘组磁盘号

kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL

kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER

kfdhdb.dskname: DATA_0000 ; 0x028: length=9 ## 磁盘组中的名字

kfdhdb.grpname: DATA ; 0x048: length=4

kfdhdb.fgname: DATA_0000 ; 0x068: length=9 ## 磁盘组中的名字

```

通过kfed命令写入到坏的磁盘组中,尝试挂起,如果可以挂起,一般能正常启动数据库,只是当访问数据库时,磁盘组很容易dismount,因为读取损坏磁盘的数据时报错。 我们可以通过删除磁盘组磁盘命令进行删除, 当然,也无法正常删除,执行删除后 磁盘组也会dismount,那么如何让磁盘组损坏的磁盘标记为删除,又停止删除操作呢(因为无法正常删除,造成磁盘组频繁mount、dismount)

可通过以下命令

```

alter diskgroup data mount;

alter diskgroup data REBALANCE power 0; --意思就是暂停删除

```

如上所示,这样,数据库启动后不会再去访问损坏的磁盘,可以通过 rman等工具验证以下 有多少坏块,将可以导出的数据导出,重新搭建数据库。

人为误操作是造成数据丢失最大的风险,建议 定期对数据库进行==备份、灾备==等数据保护相关操作。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29487349/viewspace-2765461/,如需转载,请注明出处,否则将追究法律责任。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐