ASM如何识别磁盘

在ASM中,要创建diskgroup或者往已有的diskgroup里添加新的disk,则该disk必须已经识别,也就是要在v$asm_disk里有记录。ASM会根据asm_diskstring指定的路径去检查所有的磁盘。另外,查询v$asm_diskgroup和v$asm_disk也会导致这个识别磁盘动作的发生,所以平时最好查询v$asm_disk_stat来替代v$asm_disk。

Oracle也提供了一个工具来手工识别磁盘,就是KFOD,注意不是KFED哦。

$kfod -h
_asm_a/llow_only_raw_disks KFOD allow only raw devices [_asm_allow_only_raw_disks=TRUE/(FALSE)]
_asm_l/ibraries ASM Libraries[_asm_libraries=’lib1′,’lib2′,…]
_asms/id ASM Instance[_asmsid=sid]
a/sm_diskstring ASM Diskstring [asm_diskstring=’discoverystring’, ‘discoverystring’ …]
d/isks Disks to discover [disks=raw,asm,all]
g/roup Group discover [group=controlfile]
n/ohdr KFOD header suppression [nohdr=TRUE/(FALSE)]
o/p KFOD options type [OP=DISKS/GROUPS/ALL]
p/file ASM parameter file [pfile=’parameterfile’]
s/tatus Include disk header status [status=TRUE/(FALSE)]
v/erbose KFOD verbose errors [verbose=TRUE/(FALSE)]

可以看到KFOD使用起来还是比较简单的。一个实际执行的例子如下:

$kfod disks=all status=true
—————————————————————
Disk Size Header Path
==========================================================
1: 1023 Mb FOREIGN /dev/raw/raw1
2: 273708 Mb MEMBER /dev/raw/raw10
3: 273708 Mb MEMBER /dev/raw/raw11
4: 273708 Mb MEMBER /dev/raw/raw12

————————————————————–
ORACLE_SID ORACLE_HOME
=========================================================
+ASM4 /u01/oracle/product/10g/db
+ASM3 /u01/oracle/product/10g/db
+ASM2 /u01/oracle/product/10g/db
+ASM1 /u01/oracle/product/10g/db



无觅相关文章插件,快速提升流量

4条评论

  • At 2008.06.22 15:42, qsxing said:

    KFOD-00301: file not found; arguments: [2] [kgxgncin]

    请问这是什么错误啊?

    • At 2008.06.22 19:10, NinGoo said:

      是不是你参数给的不对?如果status=true只写了status?

    • At 2008.06.22 22:27, ricky said:

      真是高啊。
      不过KFOD和KFED是两个内部工具,不推荐用户使用。^_^

      试试:
      $kfed read “/dev/raw/raw10″

      • At 2008.06.23 07:52, NinGoo said:

        我上面给的链接,以前用kfed修复过一次磁盘头损坏的情况。oracle不推荐的东西多了,但是不用谁来帮我解决这种问题?呵呵


      (Required)
      (Required, will not be published)