oracle 21c中gridsetup.sh失败主因是asm磁盘路径不稳定或预检退出,必须弃用asmlib,改用udev+wwid绑定稳定设备名,并确保所有节点路径、权限、属组完全一致。

gridSetup.sh 运行失败,八成是 ASM 磁盘路径没稳住或预检脚本直接退出了——Oracle 21c 已彻底弃用 oracleasm(ASMLIB),继续用它只会卡在“找不到磁盘”或报 ORA-15042。必须用 udev + WWID 或 multipath 绑定稳定设备名,且所有节点路径、权限、属组必须完全一致。
确认共享磁盘状态并清空残留签名
Grid 安装前不检查磁盘原始状态,后续所有 ASM 操作都会失败。
-
fdisk -l /dev/sdb必须显示“Disk /dev/sdb doesn't contain a valid partition table”,若有分区或文件系统,立刻清除:dd if=/dev/zero of=/dev/sdb bs=1M count=100 - 检查是否残留 ASM 签名:
oracleasm querydisk -p /dev/sdb—— 若返回“Device "/dev/sdb" is marked as an ASM disk”,说明旧 ASMLIB 未卸载干净,需先执行oracleasm deletedisk XXX并oracleasm scandisks,但更推荐直接禁用:systemctl stop oracleasm && systemctl disable oracleasm - 确认磁盘未被 LVM、mdadm 或 multipath 误占用:
lsblk和dmsetup ls查看是否有上层映射干扰
用 WWID 配 udev 规则绑定稳定设备名
依赖 /dev/sdb 这类内核命名是 Oracle 21c RAC 最大隐患:重启后可能变 /dev/sdc,集群直接裂脑。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 获取磁盘唯一 WWID:
scsi_id -g -u -d /dev/sdb(输出类似36000c29a7e8b4f3d1e8b4f3d1e8b4f3d) - 写入 udev 规则:
/etc/udev/rules.d/99-oracle-asm.rules中添加:KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36000c29a7e8b4f3d1e8b4f3d1e8b4f3d", SYMLINK+="asm-diskb", OWNER="grid", GROUP="asmadmin", MODE="0660" - 重载规则并触发:
udevadm control --reload-rules && udevadm trigger --subsystem-match=block - 验证:
ls -l /dev/asm-disk*应显示属主为grid:asmadmin;ls -l /dev/sd*不再依赖原始名
运行 gridSetup.sh 前必须绕过的三个坑
21c 的 runcluvfy.sh 预检比 12c 更严格,失败即静默退出,日志全在 /tmp/GridSetupActions*.log 里。
- 不要勾选 “Configure Grid Management Repository (GIMR)” 自动安装选项——21c GIMR 默认启用,但若 ASM 磁盘组空间不足(
MGMT至少需 40GB)、或 OCR 磁盘组冗余模式不匹配(OCRVOTE必须为 Normal,且至少 3 块盘),预检直接报PRVG-11333并终止 - SSH 互信测试必须用
grid用户执行:ssh grid@node2 date,不能只靠图形界面里的 Test 按钮;若提示Permission denied (publickey),检查~grid/.ssh/config是否含StrictHostKeyChecking no,且~grid/.ssh/authorized_keys权限为600 -
cvuqdiskRPM 必须在所有节点提前安装(21c 要求cvuqdisk-1.0.10-1.rpm或更高),否则预检报PRVF-9802:“cvuqdisk not installed”,且该包不随安装包自动分发
安装后立即验证的三件事
别急着点 Finish —— root.sh 执行完、服务看似 online,不代表 ASM 磁盘组真能读写。
- 切
grid用户连 ASM 实例:sqlplus / as sysasm,运行SELECT state, type, total_mb, free_mb FROM v$asm_diskgroup;,确保OCRVOTE和DATA(或你命名的磁盘组)状态为MOUNTED,且free_mb > 0 - 检查 OCR 和 Voting Disk 位置:
ocrcheck和crsctl query css votedisk,输出中的 DEVICE NAME 必须是/dev/asm-diskb这类符号链接,而非/dev/sdb - 强制跨节点访问测试:在 node2 上执行
asmcmd lsdg,应能列出所有磁盘组——若报ORA-15032或连接超时,说明 udev 规则在 node2 未生效,或防火墙阻断了 1521/6200 端口
ls -l /dev/asm-disk* 的属主和链接目标是否一致。WWID 是唯一锚点,任何跳过这步直接写 /dev/sdX 的配置,上线后必出 OCR 丢失或节点驱逐。










