Oracle 19c安装检测不到共享存储的根本原因是ASM实例未识别设备,主因包括asm_diskstring配置错误、/dev/sdX权限未设为grid:asmadmin、或节点间设备名不一致。
oracle 19c 安装时检测不到共享存储,根本不是磁盘没连上,而是 asm 实例压根没“看见”设备——asm_diskstring 没配对、/dev/sdx 权限没落到 grid:asmadmin、或者设备名在节点间不一致,三者占其一就必然失败。
asm_diskstring 配置为空或通配符失效
19c 默认值为 NULL,但实际扫描行为高度依赖底层设备可见性。空值 + udev 规则不生效 = 扫不到任何盘。
- 执行
SHOW PARAMETER asm_diskstring,若返回空或ORCL:*(ASMLIB 语法),必须立刻修正 - 不要用
/dev/oracleasm/disks/*:19c 已弃用 ASMLIB,该路径下无设备即报空 - 安全写法是显式列出所有目标路径,逗号分隔、无空格:
'/dev/asm-ocr1','/dev/asm-data1','/dev/asm-frav1' - RAC 环境必须加
SID='*':否则只改当前节点,其他节点仍为 NULL
udev 规则未固化或双节点不一致
直接 chown grid:asmadmin /dev/sdb 是临时操作,重启后失效;更糟的是 RAC 双节点上 /dev/sdb 可能指向不同物理盘。
- 必须用
scsi_id -g -u -d /dev/sdb获取唯一 WWID(如3604fe8d100d5d230b888210a00000038),再写规则绑定别名 - 规则文件固定为
/etc/udev/rules.d/99-oracle-asmdevices.rules,内容中PROGRAM和RESULT必须与实际输出一字不差(含空格) - 双节点执行
ls -l /dev/asm-*,输出必须完全一致;若有差异,udevadm trigger后仍不一致,说明 scsi_id 输出本身就不一致,需查多路径或 HBA 配置 - 裸盘要求严格:
fdisk -l /dev/sdb必须显示Disk /dev/sdb doesn't contain a valid partition table,有分区表的设备 ASM 直接跳过
grid 用户权限链断裂
ASM 能看到盘 ≠ oracle 用户能访问盘组。中间卡在 $ORACLE_HOME/bin/oracle 的 setgid 权限上。
-
ls -l $ORACLE_HOME/bin/oracle必须是-rwsr-s--x(即 6751),group 必须为asmadmin - 补丁升级后常被重置为 751 或 group=oinstall,此时 oracle 用户连接会报
ORA-15001: diskgroup does not exist,但 grid 用户下一切正常 - 修复命令:
chmod 6751 $ORACLE_HOME/bin/oracle,或用setasmgidwrap工具重置 - 检查
mount输出,确保$GRID_HOME所在文件系统**没挂载成nosuid**,否则 setgid 位无效
OCR/Voting Disk 设备未被 AFD 或 udev 接管
静默安装(runInstaller -silent)时 OCR 磁盘组不可见,大概率是设备没进 AFD 或 udev 别名未被 asm_diskstring 覆盖。
- 运行
asmcmd afd_lsdsk,若输出为空,说明 AFD 未识别到设备;先确认crsctl stat res ora.asmfd -p | grep ENABLED是否为ENABLED=1 - AFD 启用前必须确保所有节点上设备路径一致、权限为
0660、属主为grid:asmadmin;否则asmfd -i会静默失败 - 若坚持用 udev,OCR 设备别名(如
/dev/asm-ocr1)必须出现在响应文件response.rsp的oracle.install.asm.diskgroup.name和oracle.install.asm.diskgroup.discoveryString中 - 忽略 ADR 初始化失败:日志里出现
Kfod result Error 49802 initializing ADR,说明$GRID_HOME/diag权限或空间异常,不是磁盘问题
最易被忽略的一点:RAC 节点间设备路径一致性不是“看起来一样”,而是 ls -l /dev/asm-* 的 inode、major/minor 号、WWID 全部匹配。udev 规则写错一个字符,或某个节点漏 reload,OCR 就起不来。


















