Oracle Database - Enterprise Edition - 版本 10.1.0.2 到 12.1.0.1 [发行版 10.1 到 12.1]
本文档所含信息适用于所有平台
在您将磁盘加入到已有的生产磁盘组之前,您可以使用下面步骤去校验候选磁盘状态,并保障可以被每个节点访问(这样可以防止对现有生产磁盘组造成损害),具体步骤如下:
1) 使用 Oracle 或 Grid 系统用户,在每个节点运行下面命令(如果使用 ASMLIB API):
# /etc/init.d/oracleasm scandisks #(only this command needs to be executed as root user)
$> id
$> /etc/init.d/oracleasm listdisks
$> /etc/init.d/oracleasm querydisk
注意:所有磁盘在每个节点必须可见。
2) 确认每个节点(使用 oracle 或 Grid 系统用户)在系统级所有磁盘可见(I/O):
$> id
$> ls -l
$> dd if=
Example:
$> dd if=/dev/raw/raw1 of=/dev/null count=100 bs=8192 # raw device
$> dd if=/dev/oracleasm/disks/PRODA07 of=/dev/null count=100 bs=8192 # ASMLIB device
$> dd if=/dev/rdsk/c1t3d0s6 of=/dev/null count=100 bs=8192 # raw device
3) 在每个节点系统级别使用 kfed 命令确认候选磁盘可读(使用 oracle 或 Grid 系统用户):
$> kfed read
Example:
$> kfed read /dev/raw/raw1
$> kfed read /dev/oracleasm/disks/PRODA07
$> kfed read /dev/rdsk/c1t3d0s6
注意:如果磁盘以前没有使用过,则kfed命令检查这个新磁盘将返回:kfbh.type: 0 ; 0x002: KFBTYP_INVALID 这是期望的。
4) 建一个新的临时磁盘组:
SQL> CREATE DISKGROUP TEST EXTERNAL REDUNDANCY DISK '
5) 检查磁盘组是否已经被建立并且加载(mounted):
SQL> SELECT STATE, NAME FROM V$ASM_DISKGROUP;
6) 如果是,请手工将其加载至其他节点 ASM 实例:
SQL> ALTER DISKGROUP TEST MOUNT;
SQL> SELECT STATE, NAME FROM V$ASM_DISKGROUP;
7) 如果前面步骤已经成功并且 TEST 磁盘组在每个 ASM 实例成功加载,则按下面步骤删除 TEST 磁盘组:
SQL> alter diskgroup test dismount; --(from all the ASM instances, except from one).
SQL> DROP DISKGROUP TEST; --(from the ASM instance, which the diskgroup is still mounted).
8) 可以将候选磁盘组加入到期望的磁盘组中:
SQL> ALTER DISKGROUP
注意:相同的磁盘校验步骤同样需要在 ASM Standalone 配置环境中。