建立磁盤:
[[email protected] ~]# oracleasm createdisk KEL3 /dev/sdf1
Writing disk header: done
Instantiating disk: done
建立完成之後,檢視下磁盤:
[[email protected] ~]# 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