Chinaunix首页 | 论坛 | 博客
  • 博客访问: 175720
  • 博文数量: 46
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 490
  • 用 户 组: 普通用户
  • 注册时间: 2017-03-26 14:22
个人简介

做最Low逼的DBA

文章分类

全部博文(46)

文章存档

2017年(46)

我的朋友

分类: Oracle

2017-05-18 22:21:01

--摘抄于Metalink
如何在 RAC 集群或单机 ASM 环境中对已经存在的 Diskgroup 添加新磁盘(最佳实践) 


适用于:

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 配置环境中。

 


阅读(2055) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~