必须先过预检查,否则直接安装会失败;Oracle 19c Grid Infrastructure 对系统状态极其敏感,90% 的 PRVF-5184、CRS-2674 等错误源于内核参数、用户权限、磁盘权限或响应文件配置未达标,而非安装步骤错误。

直接装会失败,必须先过预检查。Oracle 19c Grid Infrastructure 不是“解压运行”式软件,它对系统状态极其敏感,runInstaller 启动后卡在“正在检查可用性”或报 PRVF-5184、CRS-2674 这类错误,90% 是环境没达标,不是安装步骤错了。
检查内核参数和系统资源是否达标
Grid 安装前不手动验证,基本等于白忙。官方要求的值只是下限,实际部署中建议按生产环境标准设高一点:
-
kernel.shmall和kernel.shmmax必须匹配物理内存:比如 32GB 内存,kernel.shmmax至少设为34359738368(32GB 字节),kernel.shmall设为8388608 -
fs.file-max建议 ≥6815744;net.ipv4.ip_local_port_range必须是9000 65500,不能写成1024 65535 -
/tmp空间必须 ≥1GB,且不能挂载为noexec或nosuid—— 这个限制常被忽略,导致runInstaller直接退出无提示 - 用
ulimit -a检查 grid 用户的nofile(≥ 65536)和nproc(≥ 16384),这两个值在/etc/security/limits.conf里配完,必须重新登录 grid 用户才生效
用户、组和磁盘权限必须严格按角色分配
Oracle 19c 对用户隔离更严格,混用用户或组会导致 ASM 启动失败或 CRS 资源 offline:
- 必须创建独立的
grid用户,不能用root或oracle替代;grid用户主组必须是oinstall,附加组至少包含asmadmin、asmdba、asmoper - 共享磁盘(如
/dev/sdb2)权限必须是brw-rw---- 1 grid asmadmin,不能是root:disk或oracle:oinstall—— 即使能进安装界面,后续asmca创建磁盘组也会报ORA-15018 - ASM 磁盘不能有重复 UUID:
blkid查一遍所有候选盘,避免多路径映射出多个相同 UUID 的设备名,否则ocrconfig -showbackup可能找不到 OCR 位置
静默安装时响应文件的关键参数不能照搬模板
图形化安装容易掩盖配置问题,但生产环境必须用静默方式。以下三个参数不手调,gridSetup.sh -silent -responseFile 几乎必挂:
-
INVENTORY_LOCATION=/u01/app/oraInventory:必须和oraInst.loc文件里写的完全一致,大小写、路径末尾斜杠都不能错 -
oracle.install.asm.OSDBA_GROUP=asmdba和oracle.install.asm.OSOPER_GROUP=asmoper:必须和前面创建的组名完全一致,拼错一个字母就进不了 ASM 实例 -
oracle.install.asm.diskGroup.name=DATA和oracle.install.asm.diskGroup.redundancy=EXTERNAL:如果用的是单节点 Restart 模式,redundancy推荐EXTERNAL;RAC 环境下若用三块盘,可设NORMAL,但必须确保磁盘数 ≥ 2× 冗余等级(NORMAL 需 ≥ 4 块)
安装后立即验证的三个命令不能跳过
看到 “Successfully Setup Software.” 不代表 Grid 就跑起来了。很多故障在安装完成几分钟后才暴露,必须立刻执行:
-
crsctl check crs:返回 “CRS-4638: Oracle High Availability Services is online” 才算 Clusterware 起来了;如果报 “CRS-4639: Could not contact Oracle High Availability Services”,说明ohasd没自启,要查/var/log/oracle-grid/ohasd.log -
asmcmd lsdg:确认 ASM 磁盘组已 mount;若为空或报 “ASMCMD-08102: no connection to ASM instance”,说明+ASM实例没起来,检查grid用户的ORACLE_HOME和ORACLE_SID是否设对 -
srvctl status listener:监听器必须显示 “is enabled” 且 “is running”,否则后续数据库无法注册;常见原因是/etc/hosts里没配 SCAN 名称或解析指向了 localhost
最易被忽略的是时间同步和主机名解析:两个节点 RAC 环境下,ntpq -p 必须显示所有节点都同步到同一源,且 hostname -f 返回的 FQDN 必须能在所有节点上 ping 通并反向解析正确——这个细节出错,cluvfy stage -post hwos 会一直卡在 “Verifying User Equivalence”。


















