ASM 磁盘头信息保存在每个磁盘的前4K里面,这个信息的备份对于ASM的恢复非常重要
从 10.2.0.5 开始 asm 会自动备份 asm disk header 的信息,不管 au size 是多少,asm disk header 自动备份的位置是第二个 au 的倒数第二个 block.
计算方法:AU中包含的 block num[AU_SIZE/block_size]*2-2[因为第一个块从0计数],通过该方法计算结论为:
1M AU 在 510
2M AU 在 1022
4M AU 在 2046
8M AU 在 4094
16M AU 在 8190
32M AU 在 16382
64M AU 在 32766
oracle asm disk header 备份恢复方法
1.使用dd来备份磁盘的前4K,磁盘头信息丢失时,dd回来
备份:dd if=/dev/raw/raw1 of=/gyj/asmheader.dd bs=4096 count=1
恢复:dd if=/gyj/asmheader.dd of=/dev/raw/raw1
2.利用oracle的kfed工具来备份,将磁盘头信息转换成文本明文形式记录下来,恢复时使用kfed merge进去
备份:kfed read /dev/raw/raw1 aunum=0 blknum=0 text=raw1.txt
恢复:kfed write /dev/raw/raw1 aunum=0 blknum=0 text=raw1.txt
3.11G asmcmd里面增加了md_backup,md_restore备份指令,但这个只是备份DG的meta结构信息,他的恢复必须是DG已经mount,然后导入结构信息,类似于exp/imp,这种方式对于DG损坏是不起作用的
备份:asmcmd md_backup -b /gyj/asmheader.20130130.txt
恢复:asmcmd md_restore -t full -g dg2 -i -b /gyj/asmheader.20130130.txt
使用dd来备份磁盘的前4K,磁盘头信息丢失时,dd回来
基础环境
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
SQL> select group_number,name,disk_number,path,header_status from v$asm_disk order by 1,2,3;
GROUP_NUMBER NAME DISK_NUMBER PATH HEADER_STATU
------------ ------------------------------ ----------- -------------------------------------------------- ------------
1 DATA_0000 0 /dev/asm-diske MEMBER
1 DATA_0001 1 /dev/asm-diskf MEMBER
1 DATA_0002 2 /dev/asm-diskg MEMBER
2 OCR_VF_0000 0 /dev/asm-diskb MEMBER
2 OCR_VF_0001 1 /dev/asm-diskc MEMBER
2 OCR_VF_0002 2 /dev/asm-diskd MEMBER
6 rows selected.
SQL> select group_number,name,allocation_unit_size from v$asm_diskgroup order by 1;
GROUP_NUMBER NAME ALLOCATION_UNIT_SIZE
------------ ------------------------------ --------------------
1 DATA 1048576
2 OCR_VF 1048576