oracle kfed 和 amdu

备份asm disk header

kfed 或者 dd

kfed read /dev/asm_data1 > asm_data1.txt &&
kfed read /dev/asm_data2 > asm_data2.txt &&
kfed read /dev/asm_data3 > asm_data3.txt

dd if=/dev/asm_data1 of=/home/grid/asm_data1.dump bs=4096 count=1 &&
dd if=/dev/asm_data2 of=/home/grid/asm_data2.dump bs=4096 count=1 &&
dd if=/dev/asm_data3 of=/home/grid/asm_data3.dump bs=4096 count=1

模拟asm disk header头损坏

dd if=/dev/zero of=/dev/asm_data1  bs=4096 count=1

重新挂载报错

SQL> alter diskgroup data dismount;

Diskgroup altered.

SQL> alter diskgroup data mount;
alter diskgroup data mount
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15040: diskgroup is incomplete
ORA-15042: ASM disk "0" is missing from group number "2"
[+ASM1]@ht01[/home/grid]$dd if=/dev/zero of=/dev/asm_data1  bs=4096 count=1
1+0 records in
1+0 records out
4096 bytes (4.1 kB) copied, 0.000907187 s, 4.5 MB/s

kfed 读报错
[+ASM1]@ht01[/home/grid]$kfed read /dev/asm_data1 
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
7F06DD408400 00000000 00000000 00000000 00000000  [................]
  Repeat 255 times
KFED-00322: Invalid content encountered during block traversal: [kfbtTraverseBlock][Invalid OSM block type][][0]

amdu 抽取报错
[+ASM1]@ht01[/home/grid]$amdu -diskstring ' /dev/asm_data*' -extract data.259
amdu_2019_11_10_19_27_12/
AMDU-00204: Disk N0002 is in currently mounted diskgroup DATA
AMDU-00201: Disk N0002: '/dev/asm_data2'
AMDU-00204: Disk N0003 is in currently mounted diskgroup DATA
AMDU-00201: Disk N0003: '/dev/asm_data3'

asm disk header 3种修复方式
kfed repair /dev/asm_data1
kfed write /dev/asm_data1 te=asm_data1.txt
dd if=/home/grid/asm_data1.dump  of=/dev/asm_data1 bs=4096 count=1

抽取数据时候可以先抽取control,control信息记录在alert日志里
amdu -diskstring '/dev/asm_data*' -extract data.259
data.259 有磁盘组名称和file_number组成.
select name from v$datafile;
可以以此抽出

  

原文地址:https://www.cnblogs.com/omsql/p/11831613.html