用KFED REPAIR快速修复ASM磁盘头

网友投稿 908 2022-10-15

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

用KFED REPAIR快速修复ASM磁盘头

ASM磁盘头故障的原因十分复杂,一般和安装与运维有关,也有可能是早期的操作系统与ORACLE ASM之间的不兼容或者操作系统运维人员不了解ORACLE ASM,根据经验去做一些和卷头有关的操作导致的.比如在AIX平台上,如果没有清掉PVID,下次服务器重启时就可能会出现设备名混乱的问题,如果你用chdev去修改设备,那么ASM磁盘头可能会丢失。

ASM磁盘头丢失在以前是十分麻烦的一件事情,10年前,修复DISK HEAD的费用可能高达数万元甚至十多万元。因为那时候只有少数对ASM DISKHEAD比较了解的工程师才能通过kfed工具手工修复磁盘头。到目前位置,用kfed使用常规方法修复磁盘头还是一件十分困难的事情。直到Oracle10.2.0.5开始,Oracle也意识到了asm的这个问题,在asm metadata中保留了一个备份块,这样使用 kfed的一个隐含功能就可以实现asm磁盘头的一键修复了。Kfed repair功能可以一键修复磁盘头,哪怕你对磁盘头一无所知,只要会使用这个命令就可以了。下面我们通过一个实验来验证一下。

SQL>selectname,path,state,header_status from v$asm_disk

SQL>

NAME                 PATH                           STATE    HEADER_STATU

-------------------------------------------------- -------- ------------

DATA2_0000           /dev/oracleasm/disks/ASMDISK7  NORMAL  MEMBER

FRA_DG_0000          /dev/oracleasm/disks/ASMDISK6  NORMAL  MEMBER

DATA_0003            /dev/oracleasm/disks/ASMDISK5  NORMAL  MEMBER

DATA_0002            /dev/oracleasm/disks/ASMDISK4  NORMAL  MEMBER

AVM_DG_0000          /dev/oracleasm/disks/ASMDISK3  NORMAL  MEMBER

DATA_0001            /dev/oracleasm/disks/ASMDISK2  NORMAL  MEMBER

DATA_0000            /dev/oracleasm/disks/ASMDISK1  NORMAL  MEMBER

从中我们来选择DATA的0001号盘ASMDISK2来做实验。

[root@localhostbin]# dd if=/dev/oracleasm/disks/ASMDISK2 of=ASMDISK2.dd bs=4096 count=1

1+0 records in

1+0 recordsout

4096 bytes(4.1 kB) copied, 0.00168042 seconds, 2.4 MB/s

[root@localhostbin]# ls *.dd

ASMDISK2.dd

[root@localhostbin]# dd if=/dev/zero of=/dev/oracleasm/disks/ASMDISK2 bs=4096 count=1

1+0 records in

1+0 recordsout

4096 bytes(4.1 kB) copied, 0.00219438 seconds, 1.9 MB/s

然后我们来启动ASM:

[grid@localhostbin]$ sqlplus '/as sysasm'

SQL*Plus: Release11.2.0.2.0 Production on Fri Mar 27 09:27:07 2015

Copyright (c)1982, 2010, Oracle.  All rights reserved.

Connected to anidle instance.

SQL> startup

ASM instancestarted

Total SystemGlobal Area  284565504 bytes

Fixed Size                  1343692 bytes

VariableSize             258055988 bytes

ASM Cache                  25165824 bytes

ORA-15032: notall alterations performed

ORA-15040:diskgroup is incomplete

ORA-15042: ASMdisk "1" is missing from group number "3"

SQL> alterdiskgroup data mount;

alter diskgroupdata mount

*

ERROR at line 1:

ORA-15032: notall alterations performed

ORA-15040:diskgroup is incomplete

ORA-15042: ASMdisk "1" is missing from group number "3"

下面一键修复就大显神威了:

[root@localhost bin]# ./kfed repair/dev/oracleasm/disks/ASMDISK2

[root@localhost bin]#

然后我们来看看:

SQL> alter diskgroup data mount;

Diskgroup altered.

磁盘头已修复。掌握了这个技巧,一旦遇到ASM磁盘头故障,就没必要花冤枉钱来请人修复了。

上一篇:PYTHON运维开发面试题整理
下一篇:数据库纳管平台DBhouse的技术路线与实践
相关文章

 发表评论

暂时没有评论,来抢沙发吧~