添加删除ASM磁盘

创建磁盘:

[root@kel ~]# oracleasm createdisk KEL3 /dev/sdf1
Writing disk header: done
Instantiating disk: done

创建完成之后,查看下磁盘:

[root@kel ~]# oracleasm listdisks
DATA
KEL1
KEL2
KEL3
OCR_VOTE

查看磁盘空间大小:(在ORACLE_SID=+ASM之后利用sqlplus进入)

SQL> select name,total_mb,free_mb from v$asm_disk;

NAME	     TOTAL_MB	 FREE_MB
---------- ---------- ----------
2047 0
KEL1 2047 1995
KEL2 2047 1995
ASM_0000 2047 387
ASM_0001 2047 387

将新创建的磁盘加入磁盘组ASM之中:

SQL> alter diskgroup ASM add disk 'ORCL:KEL3' rebalance power 1;

Diskgroup altered.

ASM磁盘组支持动态扩展,我们可以向现有的磁盘组动态加入新的磁盘,新磁盘加入后,Oracle通过后台RBAL进行Rebalance,将当前的数据均衡到新增加的磁盘上。Drop磁盘亦会Rebalance。

asm_power_limit 参数用于控制Rebalance的速度,取值1~11,数字越大,平衡速度越快,默认值是1。如果该数字很大,则可能因为Rebalance而影响性能。

查看磁盘的rebalance变化:

第一次查看:

SQL> select name,total_mb,free_mb from v$asm_disk;

NAME	     TOTAL_MB	 FREE_MB
---------- ---------- ----------
KEL1 2047 1995
KEL2 2047 1995
KEL3 2047 1995
ASM_0000 2047 387
ASM_0001 2047 387

第二次查看:

SQL> /

NAME	     TOTAL_MB	 FREE_MB
---------- ---------- ----------
KEL1 2047 1995
KEL2 2047 1995
KEL3 2047 993
ASM_0000 2047 885
ASM_0001 2047 885

查看asm_power_limit参数值:

SQL> show parameter asm_power_limit

NAME				     TYPE	VALUE
------------------------------------ ---------- ------------------------------
asm_power_limit integer 1

查看磁盘组里的磁盘组成:

SQL> select group_number,name from v$asm_disk;

GROUP_NUMBER NAME
------------ ----------
2 KEL1
2 KEL2
1 KEL3
1 ASM_0000
1 ASM_0001

删除磁盘组中的一块磁盘:

SQL> alter diskgroup ASM drop disk "KEL3" rebalance power 11;

Diskgroup altered.

查看磁盘组的信息,可以磁盘组的信息是慢慢变化的,开始磁盘KEL3还是存在于磁盘组中,到最后数据迁移完毕之后,磁盘KEL3就不属于任何磁盘组了,从下面可以看出:

SQL> select group_number,name from v$asm_disk;

GROUP_NUMBER NAME
------------ ----------
2 KEL1
2 KEL2
1 KEL3
1 ASM_0000
1 ASM_0001 SQL> select group_number,name from v$asm_disk; GROUP_NUMBER NAME
------------ ----------
0
2 KEL1
2 KEL2
1 ASM_0000
1 ASM_0001
上一篇:LintCode: 3 Sum


下一篇:Unity multi_compile