適用於:
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 配置環境中。