工作RAC
环境很多,为了应付未来可能发生的状况,根据网上的文章,研究一下了
kfed
以及
amdu
磁盘组恢复工具。
kfed
kfed=kernel file metadata editor
。当
asm
磁盘组无法正常
mount
的时候可以使用该工具来分析
ASM
磁盘组的状态,并且可以此工具进行修复磁盘头的任务。
磁盘头信息一般 au0 blkn0 上
11.1.0.7以后磁盘头的信息会自动备份在au1 blkn 254上
可以使用kfed查看
kfed read /dev/raw/raw1 aun=0 blkn=0
kfed read /dev/raw/raw1 aun=1 blkn=254
kfed repire 11.1.0.7以后可以使用下面的命令使用自动备份的信息快速修复受损的磁盘头。
kfed repair /dev/raw/raw1
上面的命令会自动把aun=1 blkn=254的block 写到aun=0 blkn=0 上面
11.1.0.7以前需要手动备份磁盘头
备份
kfed read /dev/oracleasm/disks/CRSVOL aunum=0 blknum=0 text=raw1.txt
恢复
kfed write /dev/oracleasm/disks/CRSVO aunum=0 blknum=0 text=raw1.txt
amdu
网上的文章总是少一些关键信息,所以这里将详细的实验步骤记录如下。
当磁盘头全部损坏,无法打开集群的时候,可以使用amdu来抽取磁盘组中的信息,比如说存储在磁盘组上面的数据文件、redolog、控制文件等。
下面的例子是抽取存储于asm diskgroup 中的数据库相关文件,在异机恢复的例子:
先查看alert日志确定controlfile的位置