天天看點

添加删除ASM磁盤

建立磁盤:

[[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
           
asm

繼續閱讀