ASM磁盤組更換存儲操作步驟

原文鏈接:http://blog.itpub.net/30126024/viewspace-2155829/


1、增加新磁盤,對新磁盤創建新asm disk
2、把新asm disk加入asm group
3、等待asm group數據重平衡完畢
4、再從asm group刪除舊磁盤對應的舊asm disk
5、等待asm group數據重平衡完畢
6、拆下舊磁盤



磁盤組asm group要改變大小:
如果原來磁盤組1T,現在想換成100G
如asm group是外部冗餘,裏面只有一個asm disk,這個asm disk 1T,則新增一個asm disk 100G,再刪除1T的asm disk
如asm group是normal冗餘,裏面有兩個asm disk,這兩個asm disk 總計1T,則新增兩個asm disk 總結100G,再刪除1T的兩個asm dis


v$asm_operation
顯示asm重平衡的信息
V$ASM_OPERATION displays one row for every active Oracle ASM long running operation executing in the Oracle ASM instance.
select * from v$asm_operation;       --此語句在ASM實例上執行才能看到準確信息

ASM_POWER_LIMIT
ASM_POWER_LIMIT指定用於磁盤再平衡的自動存儲管理實例的最大功耗。上限越高,再平衡的速度就越快。較低的值需要更長的時間,但是消耗更少的處理和I/O資源。
ASM_POWER_LIMIT specifies the maximum power on an Automatic Storage Management instance for disk rebalancing. The higher the limit, the faster rebalancing will complete. Lower values will take longer, but consume fewer processing and I/O resources

ASM_POWER_LIMIT設置爲0時,不會自動重平衡,但是可以使用下面的語句來手動重平衡(比如白天加盤了,晚上再讓它手動執行)
alter diskgroup DATA rebalance power 10;      --此語句只能在ASM實例上運行,且連接方式爲as sysasm



舊磁盤可以直接物理拆除,拆除後對應的asm disks自動消失了,這個asm disk可以給後面的磁盤重用,比如sdd1對應的asm disk是/dev/oracleasm/disks/OCPFRA1,把物理磁盤sdd拆掉後,/dev/oracleasm/disks/OCPFRA1自動消失了,如果以後來了個新磁盤sdk,可以oracleasm createdisk OCPFRA1 /dev/sdk1



ASM磁盤組更換磁盤的實踐案例,對空間不足的asm group更換空間更大的asm disk(本案例4-9步驟對應本文最上說明更換存儲操作步驟的1-6個步驟)

1、確定空間不足的ASM磁盤組,結果是FRA,可用空間36%
SQL> select name,total_mb,free_mb,round((free_mb/total_mb)*100) from gv$asm_diskgroup;
NAME                   TOTAL_MB    FREE_MB ROUND((FREE_MB/TOTAL_MB)*100)
-------------------- ---------- ---------- -----------------------------
DATA                       6141       4195                            68
FRA                        2047        739                            36


2、確定FRA的冗餘方式和對應的asm disk,結果是EXTERN和/dev/oracleasm/disks/OCPFRA1
SQL> select a.path,a.name,a.mode_status,b.name diskgroupname,b.type from v$asm_disk a,v$asm_diskgroup b where a.group_number=b.group_number and b.name='FRA';
PATH                                               NAME                 MODE_ST DISKGROUPN TYPE
-------------------------------------------------- -------------------- ------- ---------- ------
/dev/oracleasm/disks/OCPFRA1                       FRA_0000             ONLINE  FRA        EXTERN


3、確定/dev/oracleasm/disks/OCPFRA1對應的物理磁盤信息、對應的數據庫對象,結果是sdd1容量2G、對應表TABLE_TEW
[root@ASMDB ~]# ll /dev/oracleasm/disks/OCPFRA1
brw-rw---- 1 grid dba 8, 49 Jun  7 19:11 /dev/oracleasm/disks/OCPFRA1

[root@ASMDB ~]# ll /dev |grep disk |grep 8 |grep 49
brw-r----- 1 root disk    8,  49 Jun  7 16:11 sdd1

[root@ASMDB ~]# fdisk -l |grep sdd
Disk /dev/sdd: 2147 MB, 2147483648 bytes
/dev/sdd1               1         261     2096451   83  Linux

[oracle@ASMDB ~]$ sqlplus / as sysdba
SQL> select tablespace_name,file_name from dba_data_files where file_name like '%FRA%';
TABLESPACE_NAME      FILE_NAME
-------------------- ------------------------------------------------------------
TEW                  +FRA/tew01.dbf

SQL> select table_name,tablespace_name from dba_tables  where tablespace_name='TEW' and rownum<2;
TABLE_NAME                     TABLESPACE_NAME
------------------------------ --------------------
TABLE_TEW                      TEW

SQL> select count(*) from TABLE_TEW;
  COUNT(*)
----------
    601480


4、新增的物理磁盤是sdg1,創建asm disk爲/dev/oracleasm/disks/OCPFRA2
[root@ASMDB ~]# oracleasm createdisk OCPFRA2 /dev/sdg1

[root@ASMDB ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...

[root@ASMDB ~]# oracleasm listdisks
OCPDATA1
OCPDATA2
OCPDATA3
OCPFRA1
OCPFRA2

[grid@ASMDB ~]$ asmcmd lsdsk --candidate
Path
/dev/oracleasm/disks/OCPFRA2


5、把新asm disk加入asm group,必須使用as sysasm
[grid@ASMDB ~]$ sqlplus / as sysasm
SQL> alter diskgroup FRA add disk '/dev/oracleasm/disks/OCPFRA2' rebalance power 10;
Diskgroup altered.


6、等待asm group數據重平衡完畢,即v$asm_operation查詢結果爲空,重平衡後立即發現asm group的空間和asm disk有變化,空間變成了新舊兩塊asm disk的總空間,可用空間74%,新asm disk /dev/oracleasm/disks/OCPFRA2加上來了
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE
------------ ----- ---- ---------- ---------- ---------- ---------- ----------
EST_MINUTES ERROR_CODE
----------- --------------------------------------------
           2 REBAL RUN          10         10        495        785        672
          0
.
.
.
SQL> select * from v$asm_operation;
no rows selected

SQL> select name,total_mb,free_mb,round((free_mb/total_mb)*100) from gv$asm_diskgroup;
NAME                   TOTAL_MB    FREE_MB ROUND((FREE_MB/TOTAL_MB)*100)
-------------------- ---------- ---------- -----------------------------
DATA                       6141       4195                            68
FRA                        5114       3779                            74

SQL> select a.path,a.name,a.mode_status,b.name diskgroupname,b.type from v$asm_disk a,v$asm_diskgroup b where a.group_number=b.group_number and b.name='FRA';
PATH                                               NAME                 MODE_ST DISKGROUPN TYPE
-------------------------------------------------- -------------------- ------- ---------- ------
/dev/oracleasm/disks/OCPFRA1                       FRA_0000             ONLINE  FRA        EXTERN
/dev/oracleasm/disks/OCPFRA2                       FRA_0001             ONLINE  FRA        EXTERN


7、再從asm group刪除舊磁盤對應的舊asm disk,參考第三步信息,舊磁盤sdd1對應asm disk是/dev/oracleasm/disks/OCPFRA1,但是這裏不能寫asm disk路徑名稱,只能寫asm disk名稱,即v$asm_disk.name
SQL> alter diskgroup FRA drop disk 'FRA_0000' rebalance power 10;
Diskgroup altered.


8、等待asm group數據重平衡完畢,即v$asm_operation查詢結果爲空,重平衡後立即發現asm group的空間和asm disk有變化,空間變成了新asm disk的總空間,可用空間57%,舊asm disk被刪除了,且驗證該asm group上的表正常
SQL> select * from v$asm_operation;
no rows selected

SQL> select name,total_mb,free_mb,round((free_mb/total_mb)*100) from gv$asm_diskgroup;
NAME                   TOTAL_MB    FREE_MB ROUND((FREE_MB/TOTAL_MB)*100)
-------------------- ---------- ---------- -----------------------------
DATA                       6141       4195                            68
FRA                        3067       1734                            57

SQL> select a.path,a.name,a.mode_status,b.name diskgroupname,b.type from v$asm_disk a,v$asm_diskgroup b where a.group_number=b.group_number and b.name='FRA';
PATH                                               NAME                 MODE_ST DISKGROUPN TYPE
-------------------------------------------------- -------------------- ------- ---------- ------
/dev/oracleasm/disks/OCPFRA2                       FRA_0001             ONLINE  FRA        EXTERN

[oracle@ASMDB ~]$ sqlplus / as sysdba
SQL> select count(*) from TABLE_TEW;
  COUNT(*)
----------
    601480


9、拆下舊磁盤,重啓電腦後啓動DB,發現一切正常,驗證結果和上面第8步的結果一致

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章