Oracle asm disk header 备份恢复

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
posted @ 2018-05-09 19:47  清酒丶  阅读(426)  评论(0编辑  收藏  举报