mi_zy
作者mi_zy·2011-03-06 22:32
软件开发工程师·民航山西空管分局

恢复LVCB的操作

字数 1278阅读 4917评论 3赞 0
假如某个LV的LVCB被破坏:
dd if=/dev/zero of=/dev/sjhlv bs=512 count=1   --破坏lvcb的内容。
#umount /lvcbtest
#mount /lvcbtest
可以看到虽然lvcb被清空,但LV及其上的FS都没有问题,依然可以正常使用。说明MOUNT不需要LVCB。
要恢复LVCB首先需要--把逻辑卷标志写到从逻辑卷开始的9个字节中。
#echo "AIX LVCB" | dd of=/dev/sjhlv bs=1 count=9
9+0 records in
9+0 records out
然后执行synclvodm写入LVCB。假如不做上一步synclvodm会报错:0516-622 synclvodm: Warning, cannot write lv control block data.
#synclvodm -vP sjhvg sjhlv
synclvodm: Physical volume data updated.
synclvodm: Logical volume sjhlv updated.
--用VGDA的数据同步ODM,ODM多的VGDA不管,不更新。然后会把ODM库中关于这个LV的参数写入LV卷头4KB中。最后我们看到一些信息还是没有恢复,比如:label = ,machine id =  ,fs =等。LVCB的信息存在三份,分别在lv的头部,VGDA,ODM。我猜测VGDA,ODM只含有LVCB的部分信息。VGDA也没有LVCB关于type的条目信息。
#chfs -a log=/dev/loglv02 /lvcbtest命令会写入LVCB的“fs = vfs=jfs2:log=/dev/loglv02 :   options=rw:account=false ”的信息
--用chfs命令按照ODM数据库中的其它内容,进行恢复。到现在位置还有label,time created条目没有恢复。
#putlvcb -L /lvcbtest sjhlv命令会写入LVCB的“label = /lvcbtest ”的信息。
--The putlvcb command writes the control block information into block 0 of the logical volume lvname. Only the fields specified are written. putlvcb can be used to write a new control block or update an existing one.
然后:
#varyoffvg sjhvg
#exportvg sjhvg
在其他机器上importvg试试看,这个LV有没有问题。
#importvg -y sjhvg hdisk7
sjhvg
经测试一切OK。LVCB完全恢复!



 

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论3 条评论

ice-monsterice-monster其它aaa
2015-06-05 17:19
求教,我按照步骤进行恢复,可是#synclvodm -vP sjhvg sjhlv 并没有把相应的数据恢复,而且总是报错,说/etc/filesystems里面没有/lvcbtest相关数据,请问肿么办
ice520308ice520308工程师futong
2011-11-01 23:26
实在是高啊
suxiaoleisuxiaolei学生henghua
2011-03-07 16:52
看不懂啊
Ctrl+Enter 发表

作者其他文章

X社区推广