1.添加新的磁盘,通过多路径、udev 做成裸盘
ls -l /dev/asm*[grid@rac1 ~]$ ls -l /dev/asm*
brw-rw---- 1 grid asmadmin 8, 16 4月 20 15:15 /dev/asm-diskb
brw-rw---- 1 grid asmadmin 8, 32 4月 20 15:15 /dev/asm-diskc
brw-rw---- 1 grid asmadmin 8, 48 4月 20 15:15 /dev/asm-diskd
brw-rw---- 1 grid asmadmin 8, 64 4月 20 15:15 /dev/asm-diske
brw-rw---- 1 grid asmadmin 8, 80 4月 20 15:15 /dev/asm-diskf
brw-rw---- 1 grid asmadmin 8, 96 4月 20 15:15 /dev/asm-diskg
brw-rw---- 1 grid asmadmin 8, 112 4月 19 18:02 /dev/asm-diskh ---新添加的
brw-rw---- 1 grid asmadmin 8, 128 4月 19 18:02 /dev/asm-diski ---新添加的
[root@rac2 ~]# ls -l /dev/asm*
brw-rw---- 1 grid asmadmin 8, 16 Apr 20 15:12 /dev/asm-diskb
brw-rw---- 1 grid asmadmin 8, 32 Apr 20 15:12 /dev/asm-diskc
brw-rw---- 1 grid asmadmin 8, 48 Apr 20 15:12 /dev/asm-diskd
brw-rw---- 1 grid asmadmin 8, 64 Apr 20 15:12 /dev/asm-diske
brw-rw---- 1 grid asmadmin 8, 80 Apr 20 15:12 /dev/asm-diskf
brw-rw---- 1 grid asmadmin 8, 96 Apr 19 18:05 /dev/asm-diskg
brw-rw---- 1 grid asmadmin 8, 112 Apr 19 16:57 /dev/asm-diskh ---新添加的
brw-rw---- 1 grid asmadmin 8, 128 Apr 19 16:55 /dev/asm-diski ---新添加的
2.检查新磁盘是否正常
col state format a10
col name format a15
col failgroup format a20
set line 200
select STATE,REDUNDANCY,TOTAL_MB,FREE_MB,NAME,FAILGROUP from v$asm_disk;
select GROUP_NUMBER,NAME,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup;
添加之前状态
SQL> col state format a10SQL> col name format a15
SQL> col failgroup format a20
SQL> set line 200
SQL> select STATE,REDUNDANCY,TOTAL_MB,FREE_MB,NAME,FAILGROUP from v$asm_disk;
select GROUP_NUMBER,NAME,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup;
STATE REDUNDANCY TOTAL_MB FREE_MB NAME FAILGROUP
---------- -------------- ---------- ---------- --------------- --------------------
NORMAL UNKNOWN 0 0
NORMAL UNKNOWN 0 0
NORMAL UNKNOWN 76800 3053 DATA_0000 DATA_0000
NORMAL UNKNOWN 81920 81456 ARCH_0000 ARCH_0000
NORMAL UNKNOWN 10240 9932 OCR_0001 OCR_0001
NORMAL UNKNOWN 10240 9932 OCR_0000 OCR_0000
NORMAL UNKNOWN 10240 9930 OCR_0002 OCR_0002
NORMAL UNKNOWN 53184 51030 DATA2_0000 DATA2_0000
8 rows selected.
SQL>
GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB
------------ --------------- ---------- ------------ ---------- ----------
1 ARCH MOUNTED EXTERN 81920 81456
2 DATA2 MOUNTED EXTERN 53184 51030
3 DATA MOUNTED EXTERN 76800 3053
4 OCR MOUNTED NORMAL 30720 29794
SQL>
failgroup (故障组)的个数的限制:
HIGH ---------- failgroup >= 3
NORMAL ---------- failgroup >= 2
EXTERNAL -------- failgroup == 0 (不能指定故障组)
3.创建磁盘组
CREATE DISKGROUP diskgroup_name
[ { HIGH | NORMAL | EXTERNAL } REDUNDANCY ]
[ FAILGROUP failgroup_name ]
DISK [ NAME disk_name ] [ SIZE size_clause ] [ FORCE | NOFORCE ]
注释:
● 首先要指定的就是磁盘组名称(diskgroup_name);
● 指定冗余度,有三个选择:HIGH(高度冗余>三路)、NORMAL(标准冗余--双路)和EXTERNAL(外部存储冗余);
● 选择是否指定FAILGROUP(如果选择非external则必须指定);
conn / as sysasm
#create diskgroup DATA3 external redundancy failgroup DATA3001 disk '/dev/asm-diskh' NAME DATA3_diskh ATTRIBUTE 'compatible.rdbms'='11.2','compatible.asm'='11.2' (错误的)
SQL> create diskgroup DATA3 external redundancy disk '/dev/asm-diskh' NAME DATA3_diskh ATTRIBUTE 'compatible.rdbms'='11.2','compatible.asm'='11.2';
Diskgroup created.
4.监控asm磁盘组平衡速度
select * from v$asm_operation;
直到出现以下信息表示磁盘组平衡完成。
no rows selected
5.创建完成后就可以查看新建的磁盘组状态:
节点一
col state format a10
col name format a15
col failgroup format a20
set linesize 200
select STATE,REDUNDANCY,TOTAL_MB,FREE_MB,NAME,FAILGROUP from v$asm_disk;
select GROUP_NUMBER,NAME,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup;
SQL> select STATE,REDUNDANCY,TOTAL_MB,FREE_MB,NAME,FAILGROUP from v$asm_disk;
STATE REDUNDANCY TOTAL_MB FREE_MB NAME FAILGROUP
---------- -------------- ---------- ---------- --------------- --------------------
NORMAL UNKNOWN 0 0
NORMAL UNKNOWN 3200 3148 DATA3_DISKH DATA3_DISKH
NORMAL UNKNOWN 76800 3053 DATA_0000 DATA_0000
NORMAL UNKNOWN 81920 81493 ARCH_0000 ARCH_0000
NORMAL UNKNOWN 10240 9932 OCR_0001 OCR_0001
NORMAL UNKNOWN 10240 9932 OCR_0000 OCR_0000
NORMAL UNKNOWN 10240 9930 OCR_0002 OCR_0002
NORMAL UNKNOWN 53184 51030 DATA2_0000 DATA2_0000
8 rows selected.
SQL> select GROUP_NUMBER,NAME,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup;
GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB
------------ --------------- ---------- ------------ ---------- ----------
1 ARCH MOUNTED EXTERN 81920 81493
2 DATA2 MOUNTED EXTERN 53184 51030
3 DATA MOUNTED EXTERN 76800 3053
4 OCR MOUNTED NORMAL 30720 29794
5 DATA3 MOUNTED EXTERN 3200 3148
SQL>
[grid@rac1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.ARCH.dg ora....up.type ONLINE ONLINE rac1
ora.DATA.dg ora....up.type ONLINE ONLINE rac1
ora.DATA2.dg ora....up.type ONLINE ONLINE rac1
ora.DATA3.dg ora....up.type ONLINE ONLINE rac1
ora....ER.lsnr ora....er.type ONLINE ONLINE rac1
ora....N1.lsnr ora....er.type ONLINE ONLINE rac1
ora.OCR.dg ora....up.type ONLINE ONLINE rac1
ora.asm ora.asm.type ONLINE ONLINE rac1
ora.cvu ora.cvu.type ONLINE ONLINE rac1
ora.gnnt.db ora....se.type ONLINE ONLINE rac1
ora....nta.svc ora....ce.type ONLINE ONLINE rac2
ora....ntb.svc ora....ce.type ONLINE ONLINE rac2
ora....ect.svc ora....ce.type ONLINE ONLINE rac1
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora....network ora....rk.type ONLINE ONLINE rac1
ora.oc4j ora.oc4j.type ONLINE ONLINE rac1
ora.ons ora.ons.type ONLINE ONLINE rac1
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application OFFLINE OFFLINE
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip ora....t1.type ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application OFFLINE OFFLINE
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip ora....t1.type ONLINE ONLINE rac2
ora....ry.acfs ora....fs.type ONLINE ONLINE rac1
ora.scan1.vip ora....ip.type ONLINE ONLINE rac1
[grid@rac1 ~]$
节点2
[grid@rac2 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.ARCH.dg ora....up.type ONLINE ONLINE rac1
ora.DATA.dg ora....up.type ONLINE ONLINE rac1
ora.DATA2.dg ora....up.type ONLINE ONLINE rac1
ora.DATA3.dg ora....up.type ONLINE ONLINE rac1
ora....ER.lsnr ora....er.type ONLINE ONLINE rac1
ora....N1.lsnr ora....er.type ONLINE ONLINE rac1
ora.OCR.dg ora....up.type ONLINE ONLINE rac1
ora.asm ora.asm.type ONLINE ONLINE rac1
ora.cvu ora.cvu.type ONLINE ONLINE rac1
ora.gnnt.db ora....se.type ONLINE ONLINE rac1
ora....nta.svc ora....ce.type ONLINE ONLINE rac2
ora....ntb.svc ora....ce.type ONLINE ONLINE rac2
ora....ect.svc ora....ce.type ONLINE ONLINE rac1
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora....network ora....rk.type ONLINE ONLINE rac1
ora.oc4j ora.oc4j.type ONLINE ONLINE rac1
ora.ons ora.ons.type ONLINE ONLINE rac1
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application OFFLINE OFFLINE
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip ora....t1.type ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application OFFLINE OFFLINE
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip ora....t1.type ONLINE ONLINE rac2
ora....ry.acfs ora....fs.type ONLINE ONLINE rac1
ora.scan1.vip ora....ip.type ONLINE ONLINE rac1
[grid@rac2 ~]$
[grid@rac2 ~]$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.4.0 Production on Wed Apr 20 17:17:07 2016
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
SQL> col state format a10
SQL> col name format a15
SQL> col failgroup format a20
SQL> set linesize 200
SQL> select STATE,REDUNDANCY,TOTAL_MB,FREE_MB,NAME,FAILGROUP from v$asm_disk;
select GROUP_NUMBER,NAME,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup;
STATE REDUNDANCY TOTAL_MB FREE_MB NAME FAILGROUP
---------- -------------- ---------- ---------- --------------- --------------------
NORMAL UNKNOWN 0 0
NORMAL UNKNOWN 0 0
NORMAL UNKNOWN 10240 9930 OCR_0002 OCR_0002
NORMAL UNKNOWN 53184 51030 DATA2_0000 DATA2_0000
NORMAL UNKNOWN 81920 81493 ARCH_0000 ARCH_0000
NORMAL UNKNOWN 76800 3053 DATA_0000 DATA_0000
NORMAL UNKNOWN 10240 9932 OCR_0001 OCR_0001
NORMAL UNKNOWN 10240 9932 OCR_0000 OCR_0000
8 rows selected.
SQL>
GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB
------------ --------------- ---------- ------------ ---------- ----------
1 ARCH MOUNTED EXTERN 81920 81493
2 DATA2 MOUNTED EXTERN 53184 51030
3 DATA MOUNTED EXTERN 76800 3053
4 OCR MOUNTED NORMAL 30720 29794
0 DATA3 DISMOUNTED 0 0
SQL>
SQL> show parameter disk;
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
asm_diskgroups string
DATA, ARCH, DATA2 -----没有data3
asm_diskstring string
/dev/asm*
节点二 DATA3 DISMOUNTED
节点二需要 mount 下
SQL> alter diskgroup DATA3 mount;
Diskgroup altered.
SQL> show parameter disk;
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
asm_diskgroups string
DATA, ARCH, DATA2, DATA3
asm_diskstring string
/dev/asm*
SQL> col state format a10
SQL> col name format a15
SQL> col failgroup format a20
SQL> set linesize 200
SQL> select GROUP_NUMBER,NAME,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup;
GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB
------------ --------------- ---------- ------------ ---------- ----------
1 ARCH MOUNTED EXTERN 81920 81493
2 DATA2 MOUNTED EXTERN 53184 51030
3 DATA MOUNTED EXTERN 76800 3053
4 OCR MOUNTED NORMAL 30720 29794
5 DATA3 MOUNTED EXTERN 3200 3105
SQL>
SQL> select STATE,REDUNDANCY,TOTAL_MB,FREE_MB,NAME,FAILGROUP from v$asm_disk;
STATE REDUNDANCY TOTAL_MB FREE_MB NAME FAILGROUP
---------- -------------- ---------- ---------- --------------- --------------------
NORMAL UNKNOWN 0 0
NORMAL UNKNOWN 3200 3105 DATA3_DISKH DATA3_DISKH
NORMAL UNKNOWN 10240 9930 OCR_0002 OCR_0002
NORMAL UNKNOWN 53184 51030 DATA2_0000 DATA2_0000
NORMAL UNKNOWN 81920 81493 ARCH_0000 ARCH_0000
NORMAL UNKNOWN 76800 3053 DATA_0000 DATA_0000
NORMAL UNKNOWN 10240 9932 OCR_0001 OCR_0001
NORMAL UNKNOWN 10240 9932 OCR_0000 OCR_0000
8 rows selected.
6.验证
ASMCMD> ls
ARCH/
DATA/
DATA2/
DATA3/
OCR/
ASMCMD> ls -l arch
Type Redund Striped Time Sys Name
Y GNNT/
ASMCMD> cd data3
ASMCMD> mkdir test20160420zd
ASMCMD> ls
test20160420zd/
ASMCMD>