ASM的磁盘组不能被MOUNT,或者通过视图v$asm_ diskgroup看不到DG了。
(1)原因一:磁盘权限不正确
如果磁盘组所用的磁盘的宿主不是oracle用户,那么会导致磁盘组不能被MOUNT。
【处理方法】
修改好磁盘的权限,然后关闭有问题的节点上的ASM实例,再重新启动它。
【注意事项】
这样的情况下,磁盘上的数据不受影响。
(2)原因二:磁盘头信息被破坏
如果磁盘头信息被损坏,则磁盘组也不能被MOUNT。
【检查方法】
执行以下命令,如果返回的结果只有15行以内,那么肯定是错误的。
kfedread /磁盘路径及名称
【处理方法】
找到磁盘头信息的备份文件,对它进行恢复。如果是通过dd命令备份的,那么恢复命令如下:
ddif=/备份文件的路径及名称 bs=4096 count=1 of=/要恢复的磁盘路径及名称
如果是通过kfed备份的,那么恢复命令如下:
kfedmerge/要恢复的磁盘路径及名称text=/备份文件的路径及名称
做完恢复后,重新启动ASM实例。
【注意事项】
如果仅仅是磁盘头信息被破坏,那么恢复后,原来磁盘组上的数据是不受影响的。
(3)原因三:磁盘被生成了PV信息
目前,一个磁盘被ASM使用后,如果执行生成PV的命令,则此磁盘的ASM信息被清除并可成功生成PV信息,此时ASM将无法识别它。
【检查方法】
执行以下命令将头信息导出,并用vi打开导出文件,如果文件内容中有乱码,并看到字符串PV或一串数字与字母组成的字符,则很可能是此盘被生成了PV。
ddif=/磁盘路径及名称of=/导出文件的目标路径及名称bs=4096 count=2
【处理方法】
核实为何要用此磁盘做PV,如果可以,将PV等信息删除,然后启动ASM实例,重新将此磁盘加入到磁盘组中,或者重新创建磁盘组。
【注意事项】
这样的情况下,如果原来磁盘组中有两个以上的磁盘,那么数据不会有丢失。但是如果磁盘组中只有这一个磁盘,则原来磁盘组上的内容都被清除了,必须通过RMAN做恢复。