查询asm disk directory的脚本

简单写了一个查询asm disk directory。

我们一般在asm磁盘mount不了的时候,需要检查磁盘头的信息,有时候盘头的信息会和disk directory的信息不一致,需要手工的修改disk dir或者盘头的信息。

由于找disk dir有点麻烦,需要先找到file 1 block 1,找到file dir,再去找disk dir,如果磁盘多,这个过程会有点麻烦,因此写了个脚本,可以指示如何去找disk dir。

脚本见文章末尾附件。脚本运行完之后,会在当前目录下产生一个以时间戳结尾的chk_result文件。输出类似结果如下:

根据上面的结果,可以去看如DATA这个diskgroup的disk dir在该diskgroup的disk1,aun 2上。那么,我们就可用用kfed看此disk dir的信息:

第0块盘是/dev/asm-data01,我们可以对比盘头的信息,是否有差异:

我的磁盘目前是正常的情况。在异常的情况下,可能会因为disk dir和disk header信息不一致,导致ora-15042 无法mount asm。

我们可以用kfed修改一下之后,再merge进去,然后在mount起来,再运行check all norepair检查该diskgroup,没问题后,就可以起到数据库了。

附件:asm_disk_dir_loc.zip

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.