根本原因是rac1格式化后未执行partprobe触发内核重读分区表,导致rac2无法识别分区;需在rac1运行partprobe,再在rac2执行oracleasm scandisks,并确保udev绑定设备属主为grid:asmadmin且持久生效。
oracleasm scandisks 在节点二不扫描出磁盘
这是最典型的“gi不识别共享存储”现象:rac1能列出 vol01~vol04,rac2执行 oracleasm scandisks 后只显示 cleaning any stale asm disks 就结束,oracleasm listdisks 为空。
根本原因不是磁盘没挂载,而是 rac1 上格式化后未触发内核重读分区表,导致 rac2 看不到有效分区信息。
- 在 rac1 执行
partprobe(强制内核重新读取所有块设备的分区表) - 再在 rac2 执行
/usr/sbin/oracleasm scandisks,此时才会真正识别到磁盘 - 若仍失败,检查
/etc/sysconfig/oracleasm中ORACLEASM_SCANORDER和ORACLEASM_SCANEXCLUDE是否误排除了 multipath 设备名(如mpath*)
udev 绑定后 asm disk 权限丢失或属主错误
即使 oracleasm listdisks 能看到盘,GI 安装时仍报“no disks available”,大概率是权限问题。RAC 要求 ASM 磁盘设备文件(如 /dev/mapper/mpatha)属主必须为 grid:asmadmin,且该权限不能依赖 udev 规则“一次性生效”——重启后常被覆盖。
- 手动修复:运行
chown grid:asmadmin /dev/mapper/mpath* - 持久化:把这行命令加进
/etc/rc.local(CentOS 6)或写成 systemd service(CentOS 7+) - 验证:重启后检查
ls -l /dev/mapper/mpath*,确认属主未变回root:disk - 注意:不要仅依赖
oracleasm createdisk,它只作用于 ASM 内部标签,不改底层设备权限
SCAN IP 解析失败导致 GI 安装卡在最后一步
安装界面走到 90% 多突然报错,日志里出现 PRVG-1101 : SCAN name "scan-cluster" failed to resolve 或 PRVF-4657,说明 GI 安装程序无法解析 SCAN 名称——这不是存储问题,但会表现为“找不到可用磁盘”,因为集群服务根本起不来。
- 确认
/etc/hosts中 SCAN IP 映射正确,例如:192.168.3.155 scan-cluster - 禁止在 hosts 中给 SCAN 域名配多个 IP,RAC 只认第一个
- 关闭 NetworkManager(尤其 CentOS 7),它会劫持 DNS 解析并干扰 SCAN 检查
- 临时验证:在两个节点分别执行
nslookup scan-cluster和ping scan-cluster,必须双向通且解析到唯一 IP
克隆虚拟机后网卡名不一致引发 GI 启动失败
从 rac1 克隆出 rac2,但 rac2 的网卡名变成 eth3/eth4,而 GI 安装时默认绑定 eth0/eth1。结果 root.sh 执行到 CRS 启动阶段直接失败,报 CRS-4124 或 ohasd failed to start,底层其实是网络心跳不通。
- 检查
/etc/udev/rules.d/70-persistent-net.rules,按 MAC 地址手工映射为 eth0/eth1/eth2 - 删除旧网卡配置:
rm -f /etc/sysconfig/network-scripts/ifcfg-eth[3-9] - 修改对应 ifcfg 文件中的
DEVICE=和NAME=字段保持一致 - 重启 network 服务前,先
ifdown eth0 && ifup eth0测试连通性
真正卡住 GI 的往往不是磁盘本身,而是网络、权限、解析这三个环节中任意一个没对齐——它们共同决定了 CRS 能否拉起,而 CRS 不起来,ASM 就永远看不到盘。











