ASM 非獨立存儲產品,而是Oracle 數據庫內核組件:
# 確認內核版本
uname -r
# 輸出示例:3.10.0-1160.el7.x86_64
# 下載對應 RPM(以 Oracle Linux 7 / RHEL 7 為例)
oracleasm-support-2.1.11-1.el7.x86_64.rpm
oracleasmlib-2.0.12-1.el7.x86_64.rpm
kmod-oracleasm-3.10.0-1160.el7.x86_64-2.0.8-1.el7.x86_64.rpm -- 內核模塊,版本必須精確匹配
# 安裝順序:support -> lib -> kmod
yum localinstall -y oracleasm-support-*.rpm oracleasmlib-*.rpm kmod-oracleasm-*.rpm
# 互動式配置(或使用 -i 非互動參數)
/etc/init.d/oracleasm configure
# 輸入示例:
# Default user to own the driver interface []: grid
# Default group to own the driver interface []: asmadmin
# Start Oracle ASM library driver on boot (y/n) [n]: y
# Fix permissions of Oracle ASM disks on boot (y/n) [y]: y
# 驗證模塊加載
lsmod | grep oracleasm
# 輸出:oracleasm 53248 1
# 假設共享 LUN:/dev/sdb, /dev/sdc, /dev/sdd 已分區為 sdb1, sdc1, sdd1
/etc/init.d/oracleasm createdisk DATA01 /dev/sdb1
/etc/init.d/oracleasm createdisk DATA02 /dev/sdc1
/etc/init.d/oracleasm createdisk FRA01 /dev/sdd1
# 掃描並驗證所有節點可見
/etc/init.d/oracleasm scandisks
/etc/init.d/oracleasm listdisks
# 輸出:
# DATA01
# DATA02
# FRA01
| 檢查項 | 命令/查詢 | 預期結果 |
|---|---|---|
| 磁盤組掛載狀態 | `SELECT name, state, type FROM v$asm_diskgroup;` | 所有相關節點顯示 `MOUNTED` |
| 磁盤成員資格 | `SELECT name, path, header_status, mode_status FROM v$asm_disk;` | `HEADER_STATUS=MEMBER`, `MODE_STATUS=ONLINE` |
| 實例註冊 | `SELECT instance_name, status FROM gv$asm_diskgroup_stat;` | 所有實例顯示 `CONNECTED` |
| ASMB 連接健康 | `SELECT group_number, inst_id, connected FROM gv$asm_client;` | 所有 RDBMS 實例 `CONNECTED=YES` |