如何在 RAC 集羣或單機 ASM 環境中對已經存在的 Diskgroup 添加新磁盤(最佳實踐) (Doc ID 1946668.1)

適用於:

Oracle Database - Enterprise Edition - 版本 10.1.0.2 到 12.1.0.1 [發行版 10.1 到 12.1]
本文檔所含信息適用於所有平臺

目標

在您將磁盤加入到已有的生產磁盤組之前,您可以使用下面步驟去校驗候選磁盤狀態,並保障可以被每個節點訪問(這樣可以防止對現有生產磁盤組造成損害),具體步驟如下:

解決方案

1) 使用 Oracle 或 Grid 系統用戶,在每個節點運行下面命令(如果使用 ASMLIB API):
 


# /etc/init.d/oracleasm  scandisks  #(only this command needs to be executed as root user)
$> id 
$> /etc/init.d/oracleasm  listdisks 
$> /etc/init.d/oracleasm  querydisk <each disk from previous output>

注意:所有磁盤在每個節點必須可見。

2) 確認每個節點(使用 oracle 或 Grid 系統用戶)在系統級所有磁盤可見(I/O):

$> id 
$> ls -l  <disk name> 
$> dd if=<raw/character or block partition device in  question> of=/dev/null count=100 bs=8192

Example: 

$> dd if=/dev/raw/raw1 of=/dev/null count=100 bs=8192  # raw device 
$> dd if=/dev/oracleasm/disks/PRODA07 of=/dev/null count=100 bs=8192  # ASMLIB device 
$> dd if=/dev/rdsk/c1t3d0s6 of=/dev/null count=100 bs=8192 # raw device

 

3) 在每個節點系統級別使用 kfed 命令確認候選磁盤可讀(使用 oracle 或 Grid 系統用戶):
 

$> kfed read  <raw/character or block partition device in question>



Example:
 

$> kfed read /dev/raw/raw1

$> kfed read /dev/oracleasm/disks/PRODA07

$> kfed read /dev/rdsk/c1t3d0s6

 

注意:如果磁盤以前沒有使用過,則kfed命令檢查這個新磁盤將返回:kfbh.type: 0 ; 0x002: KFBTYP_INVALID 這是期望的。

 

 4) 建一個新的臨時磁盤組:

SQL> CREATE DISKGROUP TEST EXTERNAL REDUNDANCY DISK '<YOUR CANDIDATE DISK>';

5) 檢查磁盤組是否已經被建立並且加載(mounted):

SQL> SELECT STATE, NAME FROM V$ASM_DISKGROUP;

6) 如果是,請手工將其加載至其他節點 ASM 實例:

SQL> ALTER DISKGROUP TEST MOUNT; 
SQL> SELECT STATE, NAME FROM V$ASM_DISKGROUP;

7) 如果前面步驟已經成功並且 TEST 磁盤組在每個 ASM 實例成功加載,則按下面步驟刪除 TEST 磁盤組:

SQL> alter diskgroup test dismount; --(from all the ASM instances, except from one). 

SQL> DROP DISKGROUP TEST; --(from the ASM instance, which the diskgroup is still mounted).

8) 可以將候選磁盤組加入到期望的磁盤組中:
 

SQL> ALTER DISKGROUP <my production diskgroup> ADD DISK '<your candidate disk>';




 

注意:相同的磁盤校驗步驟同樣需要在 ASM Standalone 配置環境中。

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