Oracle ASM 如何添加新磁盘到磁盘
适用平台: AIX hp linux win Solaris
适用版本:所有数据库10.1.0.2 to12.1.0.1
适用于 rac和 standalone
以RAC 环境为例: 假设 Oracle 为oracle rdbms 属组;grid 为 gi 属组;
For ASMLIB users:
RAC 环境 gi owner 执行以下命令
1、# /etc/init.d/oracleasm scandisks #( root用户执行)
$> id
$> /etc/init.d/oracleasm listdisks
$> /etc/init.d/oracleasm querydisk <具体磁盘路径>
所有节点都要执行;
2、在操作系统层面检查磁盘是否可以读写(每个节点)(oracle 用户或者grid用户)
# raw device
$> dd if=/dev/raw/raw1 of=/dev/null count=100 bs=8192
# ASMLIB device
$> dd if=/dev/oracleasm/disks/PRODA07 of=/dev/null count=100 bs=8192
# raw device
$> dd if=/dev/rdsk/c1t3d0s6 of=/dev/null count=100 bs=8192
3、适用kfed 验证磁盘是否为候选盘;
kfed read <raw/character or block partition >|grep kfbh.type
kfbh.type: 0 ; 0x002: KFBTYP_INVALID 如果看到这么一个结果,表明该磁盘是可用的。
4、创建临时磁盘组,主要是用ASM 实例来检验下所有要加的盘没有问题,即使出问题,也不会影响原来的生产系统。虽然要检查的步骤比较多,比较烦,但是对于生产系统来说出不了任何意外。
CREATE DISKGROUP lixora EXTERNAL REDUNDANCY DISK '/dev/rhdisk*';
5、检查刚创建的dg 是否已经自动mount 了?
SELECT STATE, NAME FROM V$ASM_DISKGROUP;
6、如果没有mount,尝试手工mount
ALTER DISKGROUP TEST MOUNT;
---确认dg状态
SELECT STATE, NAME FROM V$ASM_DISKGROUP;
7、如果step6 查询lixora成功mount(如果rac ,则确保每个ASM实例都成功mount)
则说明我们需要添加的asm 盘都正常的,可以正常使用。那么我们就可以把他们加到生产的dg中了。
-----卸载dg(在ASM instance中执行这个命令)
alter diskgroup test dismount;
----删除测试用临时dg (在ASM instance 中执行这个命令)
DROP DISKGROUP TEST;
8、到这里就可以吧候选盘加到生产的dg里了。
ALTER DISKGROUP <my production diskgroup> ADD DISK '<your candidate disk>';
Standalone 环境也是一样的,同样建议执行上述测试步骤。