Oracle Automatic Storage Management (ASM) 簡化資料庫儲存管理。擴充磁碟群組需在作業系統層級準備裝置、配置 ASM Library Driver、標記 ASM 磁碟,最後透過 DBCA 或 SQL 指令加入磁碟群組。本文記錄 VMware + RHEL 5.4 + Oracle 10.2.0.1 環境的完整操作流程。
+DATA 磁碟群組/dev/sdf、/dev/sdg)。fdisk 建立分區:
# fdisk /dev/sdf
# fdisk /dev/sdg
# 建立主分區 sdf1、sdg1,類型 8e (Linux LVM) 或保留預設 83
編輯 /etc/sysconfig/rawdevices:
/dev/raw/raw1 /dev/sdb1
/dev/raw/raw2 /dev/sdc1
/dev/raw/raw3 /dev/sdd1
/dev/raw/raw4 /dev/sdf1 # 新增
/dev/raw/raw5 /dev/sdg1 # 新增
重啟服務生效:
# service rawdevices restart
Assigning devices:
/dev/raw/raw4 --> /dev/sdf1
/dev/raw/raw5 --> /dev/sdg1
done
# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.
Default user to own the driver interface [oracle]: oracle
Default group to own the driver interface [dba]: dba
Start Oracle ASM library driver on boot (y/n) [y]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]
# /etc/init.d/oracleasm createdisk VOL4 /dev/sdf1
Marking disk "VOL4" as an ASM disk: [ OK ]
# /etc/init.d/oracleasm createdisk VOL5 /dev/sdg1
Marking disk "VOL5" as an ASM disk: [ OK ]
驗證:
# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
VOL4
VOL5
dbca+DATA → 「Add Disks」。

SQL> ALTER DISKGROUP DATA ADD DISK
2 'ORCL:VOL4' NAME VOL4,
3 'ORCL:VOL5' NAME VOL5
4 REBALANCE POWER 5;
REBALANCE POWER:1~11,數值越大重平衡越快但佔用更多 I/O 頻寬。V$ASM_OPERATION 監控重平衡進度。SQL> SELECT name, state, type, total_mb, free_mb, usable_file_mb
2 FROM v$asm_diskgroup WHERE name = 'DATA';
NAME STATE TYPE TOTAL_MB FREE_MB USABLE_FILE_MB
DATA MOUNTED NORMAL 204800 152000 76000
SQL> SELECT disk_number, name, path, total_mb, free_mb, state
2 FROM v$asm_disk WHERE group_number = (SELECT group_number FROM v$asm_diskgroup WHERE name='DATA');
DISK_NUMBER NAME PATH TOTAL_MB FREE_MB STATE
0 VOL1 ORCL:VOL1 51200 38000 NORMAL
1 VOL2 ORCL:VOL2 51200 38000 NORMAL
2 VOL3 ORCL:VOL3 51200 38000 NORMAL
3 VOL4 ORCL:VOL4 51200 51200 NORMAL
4 VOL5 ORCL:VOL5 51200 51200 NORMAL
| 現象 | 原因與解決 |
|---|---|
ORA-15032: not all alterations performed | 磁碟已屬於其他磁碟群組或標記失敗 → 確認 listdisks 顯示新磁碟,且 V$ASM_DISK 狀態為 CANDIDATE。 |
| 重平衡極慢 | POWER 設定過低或 I/O 瓶頸 → 調高 POWER、檢查儲存陣列效能、避開業務尖峰時段。 |
| 新磁碟不顯示於 DBCA | ASM Library Driver 未掃描到 → 執行 /etc/init.d/oracleasm scandisks 或重啟 oracleasm 服務。 |
| 權限錯誤 | 裝置擁有者非 oracle:dba → 檢查 /etc/udev/rules.d/99-oracle-asmdevices.rules 設定。 |
SELECT * FROM v$asm_operation; 觀察 EST_MINUTES、SOFAR/EST_WORK。md_backup /backup/asm_md.bak(ASMCMD 指令)。注意:Oracle 11g R2 起引入 ASM Filter Driver (AFD) 取代 ASMLib,RHEL 7+ 建議改用 udev 規則直接呈現裝置給 ASM,無需 rawdevices 與 ASMLib。