oracle 19c rac双节点集群本质是依赖共享存储、三网隔离和严格权限协同的分布式系统;跳过asm规划、私网延迟验证或grid互信配置,安装必在runcluvfy.sh阶段失败,报prvg-13632或crs-4535错误。

直接说结论:Oracle 19c RAC双节点集群不是“装完软件就能跑”的单机数据库,它本质是一套依赖共享存储、精确网络隔离和严格权限协同的分布式系统。跳过ASM磁盘组规划、私网延迟验证或grid用户互信配置,安装必然在runcluvfy.sh阶段失败,报PRVG-13632或CRS-4535这类错误。
为什么/etc/hosts里不能有127.0.0.1 localhost这一行
Oracle集群验证工具runcluvfy.sh会检查本地解析是否“污染”了集群节点名。如果/etc/hosts里保留默认的127.0.0.1 localhost rac1,工具会误判rac1指向本地回环,而非真实公网IP,直接卡在先决条件检查。
- 必须注释掉所有含
localhost绑定节点主机名的行,例如:#127.0.0.1 localhost rac1 - 只保留四类明确条目:公网IP、私网IP(带
-priv后缀)、VIP(带-vip后缀)、SCAN IP(统一域名如rac-scan) - 两节点
/etc/hosts内容必须完全一致,且DNS不能参与解析——RAC不信任DNS缓存一致性
private network延迟超1ms会导致什么
私网是RAC节点间传输心跳、传递全局缓存块(cache fusion)的通道。Oracle官方要求端到端延迟≤1ms,超过即触发ORA-15064或CRS-2674错误,集群无法启动ohasd服务。
- 用
ping -c 3 10.10.10.102测私网延迟,结果中time=值必须全部<1.0 ms;若出现time=1.234 ms,说明网卡驱动、交换机QoS或网线质量不达标 - 严禁复用公网网卡做私网(如bond0同时配public+private),必须物理隔离或VLAN硬隔离
- 虚拟机环境下,需将私网网卡设为
vmxnet3模式并关闭TSO/LRO,否则hypervisor转发引入不可控延迟
ASM磁盘权限为什么必须用udev规则固化,而不是chmod临时改
ASM磁盘(如/dev/sdb)在系统重启、多路径重载或multipathd服务重启后,设备节点名可能变化(sdb→sdc),chmod改的权限会丢失,导致ocrconfig -showbackup报ORA-15032(无法访问OCR磁盘)。
- 必须写
/etc/udev/rules.d/99-oracle-asm.rules,按WWID绑定设备名,例如:KERNEL=="sd?", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="3600a09803830444f4f3b4e6c457a3965", SYMLINK+="asm-disk1", OWNER="grid", GROUP="asmadmin", MODE="0660" -
ocr和voting disk必须单独放在独立LUN上,不能和+DATA共盘——I/O争抢会导致仲裁失败,集群分裂(split-brain) - 执行
udevadm control --reload-rules && udevadm trigger后,用ls -l /dev/asm*确认属主已是grid:asmadmin
grid用户和oracle用户互信到底要配几对
不是“两节点之间配一次”,而是每个用户在每台节点上,都要能免密登录**所有节点的同名用户**,共需配置4个方向的SSH互信:
-
grid@rac1 → grid@rac1(本机loopback,常被忽略) grid@rac1 → grid@rac2oracle@rac1 → oracle@rac2-
oracle@rac2 → oracle@rac1(注意方向,ssh-copy-id默认只推单向) - 验证命令必须用
su - grid -c "ssh rac2 date",不能只用ssh rac2——因为grid环境变量影响ORACLE_HOME路径,进而影响ssh调用的密钥路径
最易被跳过的点:SCAN IP必须由DNS解析(不能写死/etc/hosts),且DNS返回必须是3个A记录轮询(即使双节点也配3个SCAN VIP)。少了这一步,DBCA建库时会卡在“选择节点”界面,提示PRCT-1011无法连接SCAN监听器——因为RAC默认用SCAN做负载分发入口,不是直连节点VIP。











