能挂载,但必须按顺序排查四个硬性条件:asm实例真运行、磁盘被afd接管、路径权限一致、磁盘头magic完好。跳过任一环节都可能白忙半天,尤其容易卡在“asmcmd lsdsk 有盘但 asmcmd mount 报 ora-15017”这种表象上。
能挂载,但必须按顺序排查四个硬性条件:asm实例真运行、磁盘被afd接管、路径权限一致、磁盘头magic完好。跳过任一环节都可能白忙半天,尤其容易卡在“asmcmd lsdsk 有盘但 asmcmd mount 报 ora-15017”这种表象上。
确认+ASM实例是否真在运行,别信crsctl stat res -t的假状态
CRS 显示 ora.asm online,不代表本地 ASM 进程活着。RAC 每个节点独立维护自己的 +ASM 实例,一个节点挂了,其他节点不会自动拉起它。
- 执行
ps -ef | grep asm_pmon,必须看到类似asm_pmon_+ASM1的进程 —— 没有就说明实例根本没起来 - 查
$ORACLE_HOME/log/<hostname>/asmalert.log</hostname>,重点搜ORA-15077(找不到 ASM 实例)或ORA-15110(没挂载任何磁盘组) - 启动必须用
srvctl start asm -n <nodename></nodename>,别用sqlplus / as sysasm后startup,否则 CRS 状态会脱节
验证磁盘是否已被asmfd接管,oracleasm在19c里是毒药
Oracle 19c RAC 已彻底移除 oracleasm 支持。任何用 oracleasm initialize 或 scandisks 的操作,都会破坏磁盘头,后续报 KFED-00322 或 ORA-15242 就是它干的。
- 执行
asmcmd afd_lsdsk,输出中每行末尾必须是a(表示 AFD active),不是a就说明磁盘没被接管 - 检查
crsctl stat res ora.asmfd -p | grep ENABLED,必须返回ENABLED=1 - 若
afd_lsdsk为空,先别动磁盘,去核对:ls -l /dev/mapper/mpatha权限是否为0660、属主是否为grid:asmadmin;scsi_id -g -u -d /dev/sda输出的 WWID 是否与/etc/multipath.conf中wwid字段完全一致(大小写、空格都不能错)
检查所有节点磁盘路径与权限是否严格一致
RAC 要求每个节点看到的 ASM 磁盘路径**字符级相同**。节点1是 /dev/mapper/mpatha,节点2是 /dev/oracleasm/disks/DISK1,哪怕内容一样,挂载也只在发起节点生效,其他节点始终 DISMOUNTED。
- 所有节点执行
ls -l /dev/mapper/和blkid | grep oracleasm,逐行比对设备名、权限、属主 - 确保
/etc/udev/rules.d/99-oracle-asmdevices.rules中包含三要素:OWNER="grid"、GROUP="asmadmin"、MODE="0660" - OCR/Voting Disk 对权限更敏感:必须是
grid:asmadmin,不能是root:root或oracle:oinstall;改完规则要udevadm control --reload-rules && udevadm trigger
修复KFED-00322磁盘头 magic 损坏,kfed repair必须带ausz
KFED-00322: Invalid ASM disk header block magic number 表示 LBA 0 的 magic 字段(0x6b666564)坏了,但只要没被 dd 清零、没被 multipath 覆盖,备份头(AU=4M 时在 blkn=2046)大概率还在 —— kfed repair 就靠它恢复。
- 必须用
root执行:kfed repair /dev/mapper/mpatha ausz=4194304(AU=4M);填错ausz会导致磁盘组死活挂不上 - 修复后立刻验证:
kfed read /dev/mapper/mpatha | egrep 'kfbh.type|dsknum|grpname',确认kfbh.type是KFBTYP_DISKHEAD,且dsknum、grpname与原盘一致 - 修复完别急着
mount,先再跑一次asmcmd afd_lsdsk,确保状态变成a—— AFD 没接管,ASM 实例根本看不到这块盘
最易被忽略的是:kfed repair 成功后,如果 afd_lsdsk 仍不显示该盘,问题不在磁盘头,而在 AFD 接管链断了。这时候修磁盘头没用,得回头查 udev 规则、WWID、权限三者是否全对齐。路径和权限不对,再好的 magic 也进不了 ASM 的眼。











