零當機時間遷移 ASM 磁碟組到另一個 SAN/磁碟陣列/DAS 的準確步驟

pxbibm發表於2015-01-22

本文詳述了在零當機時間的前提下將 ASM 磁碟組從一個儲存裝置(SAN/磁碟陣列/DAS等)遷移到另一個儲存裝置(SAN/磁碟陣列/DAS等)的準確步驟。此過程也適用於存放 OCR、表決磁碟和 ASM spfile 的磁碟組。

操作步驟
如果你您計劃將你您的磁碟組從當前的磁碟遷移到新的儲存上,此操作過程能沒有沒有任何停機時間地實現它。請按照如下步驟:

1) 備份所有資料庫並檢驗備份有效性(為保護資料所必須)。

2) 增加新的路徑(新儲存的新磁碟)到 asm_diskstring 以供 ASM 識別:

例如:

SQL> alter system set asm_diskstring = '/dev/emcpowerc*' , '/dev/emcpowerh*'; 

這裡: '/dev/emcpowerc*' 是當前的磁碟。 
這裡: '/dev/emcpowerh*' 是新的磁碟。


3) 確認新磁碟被 ASM 識別:

SQL> select path from v$asm_disk;

 

4) 使用下面文件中的方法驗證所有新磁碟:

請參考上一篇文章《 》  
5) 增加新磁碟到目標磁碟組:
SQL> alter diskgroup add disk 
’, 
’, 
’, 
’, 



’ rebalance power ; 



6) 接下來等待重平衡操作完成:

SQL> select * from v$asm_operation; 
SQL> select * from gv$asm_operation;


7) 最後,移除舊磁碟:

SQL> alter diskgroup drop disk 







  rebalance power ;


8) 接下來等待重平衡操作完成:

SQL> select * from v$asm_operation; 
SQL> select * from gv$asm_operation;



9) 至此,你您的 ASM 磁碟組和資料庫已經遷移到了新的儲存上面。

注: 或者,我們也可以按照如下命令,將加盤,刪盤放在一個操作裡執行,這種方式只會發生一次重平衡操作:

SQL> alter diskgroup  
add disk '', .., '
drop disk , , .., 
rebalance power ;


這樣會比使用分開的命令(加盤和刪盤語句)高效許多。

 

注1:因為在 10g 版本(如果驅逐磁碟時發生了某些錯誤,比如 hang)ASM 不會去自動重啟重平衡操作(這個已經在 11g 和 12c 版本得到增強),所以需要做一個手工的重平衡操作。手工啟動重平衡的命令如下:
SQL> alter diskgroup rebalance power 11;
  
注2:一旦 drop 磁碟發起的重平衡操作完成,來自舊的 SAN/磁碟陣列/DAS 中的磁碟最終要從磁碟組中驅逐出去,此時在 v$asm_disk 檢視中這些磁碟的記錄為 HEADER_STATUS = FORMER。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12798004/viewspace-1410771/,如需轉載,請註明出處,否則將追究法律責任。

相關文章