1 编译kfed
$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins* ikfed
2 查看(备份)
kfed read /dev/rhdisk1 text=/tmp/disk1.txt
3 备份恢复
对于版本低于10.2.0.5或者11.1.0.7的ASM,对于disk header没有自动备份,需要手工备份一下.
自动备份:asm自动将头块进行备份,备份块的位置在第2个AU的倒数第2个块上(对于默认1M的AU来说,是第510个块)
恢复:kfed merge /dev/rhdisk1 text=disk1.txt (低版本)
如果没有备份,从同组或类似磁盘备份一份,修改这个文本文件的关键地方,恢复回去
对于版本10.2.0.5或者11.1.0.7的ASM 以上者
kfed repair /dev/rhdisk1
4 检查其他block是否正常
ausize=`kfed read DISK4 | grep ausize | tr -s | cut -d -f2`
blksize=`kfed read DISK4 | grep blksize | tr -s | cut -d -f2`
let n=$ausize/$blksize
for (( i=2; i<$n; i++ ))
do
kfed read /dev/rhdisk1 blkn=$i | grep KFBTYP
done
不能有任何这样的行 kfbh.type=KFBTYP_INVALID
5 深入分析
truss -fea -o /tmp/kfed.out kfed repair /dev/rhdisk1
参考文档:
http://www.dbform.com/html/2012/1875.html
[@more@]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7330528/viewspace-1060173/
,如需转载,请注明出处,否则将追究法律责任。