如何在 RAC 集群或单机 ASM 环境中对已经存在的 Diskgroup 添加新磁盘(最佳实践) (Doc ID 1946668.1)

适用于:

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= of=/dev/null count=100 bs=8192

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  ADD DISK '';




 

注意:相同的磁盘校验步骤同样需要在 ASM Standalone 配置环境中。

你可能感兴趣的:(如何在 RAC 集群或单机 ASM 环境中对已经存在的 Diskgroup 添加新磁盘(最佳实践) (Doc ID 1946668.1))