当前位置: 首页 > news >正文

dd破坏asm磁盘头恢复---惜分飞

有朋友对asm disk的磁盘头dd了2048byte的数据
 

dd-2048


 

asm-candidate


 

QQ20241202-204931


通过分析,gi软件版本,确认是11.2.0.4

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Real Application Clusters and Automatic Storage Management options.

ORACLE_HOME = /u01/app/11.2.0/grid

System name:    Linux

Node name:  rac1

Release:    4.1.12-37.4.1.el6uek.x86_64

Version:    #2 SMP Tue May 17 07:23:38 PDT 2016

Machine:    x86_64

从10.2.0.5之后版本,在第二个au的倒数第二个block上面,有asm disk header备份(每个block大小为4k),分析au大小(通过分析正常的asm disk快速找到au 大小【使用dd备份的正常的磁盘头查看】)

H:\TEMP\tmp\asmbak>kfed read sdcp.dd |grep ausize

kfdhdb.ausize:                 16777216 ; 0x0bc: 0x01000000

找到被破坏的asm disk的备份磁盘头信息

H:\TEMP\tmp\asmbak>kfed read sdc.dd blkn=4094 aun=1 aus=16777216|more

kfbh.endian:                          1 ; 0x000: 0x01

kfbh.hard:                          130 ; 0x001: 0x82

kfbh.type:                            1 ; 0x002: KFBTYP_DISKHEAD

kfbh.datfmt:                          1 ; 0x003: 0x01

kfbh.block.blk:                    4094 ; 0x004: blk=4094

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

kfbh.check:                   229348702 ; 0x00c: 0x0dab955e

kfbh.fcn.base:                 11727032 ; 0x010: 0x00b2f0b8

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

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

kfdhdb.capname:                         ; 0x088: length=0

kfdhdb.crestmp.hi:             33123276 ; 0x0a8: HOUR=0xc DAYS=0x1e MNTH=0xa YEAR=0x7e5

kfdhdb.crestmp.lo:           2259134464 ; 0x0ac: USEC=0x0 MSEC=0x1ea SECS=0x2a MINS=0x21

kfdhdb.mntstmp.hi:             33162836 ; 0x0b0: HOUR=0x14 DAYS=0x12 MNTH=0x1 YEAR=0x7e8

kfdhdb.mntstmp.lo:           3600987136 ; 0x0b4: USEC=0x0 MSEC=0xad SECS=0x2a MINS=0x35

kfdhdb.secsize:                     512 ; 0x0b8: 0x0200

kfdhdb.blksize:                    4096 ; 0x0ba: 0x1000

kfdhdb.ausize:                 16777216 ; 0x0bc: 0x01000000

kfdhdb.mfact:                    454272 ; 0x0c0: 0x0006ee80

kfdhdb.dsksize:                   65536 ; 0x0c4: 0x00010000

kfdhdb.pmcnt:                         2 ; 0x0c8: 0x00000002

kfdhdb.fstlocn:                       1 ; 0x0cc: 0x00000001

kfdhdb.altlocn:                       2 ; 0x0d0: 0x00000002

kfdhdb.f1b1locn:                      0 ; 0x0d4: 0x00000000

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

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

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

…………

确认被损坏的磁盘只有磁盘头信息损坏(即确认第二个block是否是好的)

H:\TEMP\tmp\asmbak>kfed read sdc.dd blkn=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: blk=0

kfbh.block.obj:                       0 ; 0x008: file=0

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

0065D8400 00000000 00000000 00000000 00000000  [................]

  Repeat 255 times

KFED-00322: Invalid content encountered during block traversal: [kfbtTraverseBlock][Invalid OSM block type][][0]

H:\TEMP\tmp\asmbak>kfed read sdc.dd blkn=1|more

kfbh.endian:                          1 ; 0x000: 0x01

kfbh.hard:                          130 ; 0x001: 0x82

kfbh.type:                            2 ; 0x002: KFBTYP_FREESPC

kfbh.datfmt:                          2 ; 0x003: 0x02

kfbh.block.blk:                       1 ; 0x004: blk=1

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

kfbh.check:                  2781697777 ; 0x00c: 0xa5cd56f1

kfbh.fcn.base:                 39359331 ; 0x010: 0x02589363

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

kfbh.spare1:                          0 ; 0x018: 0x00000000

kfbh.spare2:                          0 ; 0x01c: 0x00000000

kfdfsb.aunum:                         0 ; 0x000: 0x00000000

kfdfsb.max:                        1014 ; 0x004: 0x03f6

kfdfsb.cnt:                         147 ; 0x006: 0x0093

kfdfsb.bound:                         0 ; 0x008: 0x0000

kfdfsb.flag:                          1 ; 0x00a: B=1

kfdfsb.ub1spare:                      0 ; 0x00b: 0x00

kfdfsb.spare[0]:                      0 ; 0x00c: 0x00000000

kfdfsb.spare[1]:                      0 ; 0x010: 0x00000000

kfdfsb.spare[2]:                      0 ; 0x014: 0x00000000

kfdfse[0].fse:                        0 ; 0x018: FREE=0x0 FRAG=0x0

…………

基于上述分析,直接使用备份的asm disk header信息进行merge或者repair修复之后,asm 磁盘头状态恢复正常
 

QQ20241202-205116


 

QQ20241202-205235


 

QQ20241202-205147


这个客户运气比较好,库非常大,只是破坏了2k的数据,如果超过4k可能就是比较麻烦的事故了,再次提醒对asm磁盘的dd操作一定要小心谨慎.如果不慎破坏asm磁盘过多,参考以前类似文档:
asm磁盘dd破坏恢复


http://www.mrgr.cn/news/79330.html

相关文章:

  • MySQL常用运维操作(二):grant赋权语句
  • NLP与LLM的工程化实践与学习思考 - 说说知识图谱
  • PHP无法读取.env的配置变量原因
  • day10 电商系统后台API——接口测试(使用postman)
  • 小迪笔记 第四十五天 sql 注入进阶 :二次注入,堆叠注入,数据读取(load_file)加外带
  • Python pandas离散化方法优化与应用实例
  • MFEM源码分析:代数库
  • 清风数学建模学习笔记——Topsis法
  • WLAN AutoConfig服务假死?重启服务恢复网络连接!
  • 典型常见的知识蒸馏方法总结一
  • 欧拉角和旋转矩阵之间的转换
  • 高级 CEF 内核集成与 VC++——开发环境搭建与配置
  • 解决靶场网络问题教程(详细版)
  • 微服务架构解析:跨越传统架构的技术革命
  • 关于小标join大表,操作不当会导致笛卡尔积,数据倾斜
  • go引入skywalking
  • 大语言模型(2)--GPT-1
  • 【C语言】C语言的潜规则:运行环境对C程序执行特性的影响
  • 高级 CEF 内核集成与 VC++——CEF系统架构与开发环境搭建
  • 数据结构代码归纳
  • 大数据新视界 -- 大数据大厂之 Hive 临时表与视图:灵活数据处理的技巧(上)(29 / 30)
  • [创业之路-169]:《BLM战略规划》- 战略洞察 (战略能力中最最核心的能力) - 市场洞察 -1- 看宏观/行业 - 行业:激光器行业的详细分析
  • 【STM32 Modbus编程】-作为主设备读取保持/输入寄存器
  • 如何在鸿蒙API9和x86模拟器中使用MQTT
  • ️️耗时一周,肝了一个超丝滑的卡盒小程序
  • 图生3d 图生全景 学习笔记