必须配对网络、对齐内核参数、关闭防火墙、同步时间源;两节点网卡型号相同,私网与公网物理口分离,私网IP属独立子网且无网关;net.ipv4.ip_forward=0,fs.aio-max-nr=1048576;firewalld须停用禁启;所有节点NTP时间差≤1s。
Oracle RAC 安装前必须确认的 4 个硬件与系统前提
没配对的网络、没对齐的内核参数、没关闭的防火墙、没同步的时间源——这四个点只要漏一个,runinstaller 启动后卡在“checking network configuration requirements”或直接报 prvf-7532 错误,根本进不了图形界面。
- 两节点必须用相同型号网卡,且私网(如
eth1)不能和公网(如eth0)共用物理口;ifconfig看到的私网 IP 必须是独立子网、无网关、不走路由 -
/etc/sysctl.conf中net.ipv4.ip_forward必须为0,fs.aio-max-nr建议设为1048576,改完要sysctl -p生效 -
systemctl stop firewalld和systemctl disable firewalld必须执行,RAC 不允许任何中间设备拦截 UDP 123(NTP)、TCP 6200+(CSSD、CRSD)端口 - 所有节点时间差必须
,用 <code>ntpq -p检查偏移,不要只靠date对时;建议用本地 NTP server 或chronyd+makestep强制同步
Grid Infrastructure 安装时最常卡死的三个环节
不是安装包损坏,而是 OCR/Voting Disk 存储路径权限、ASM 磁盘发现顺序、以及 root.sh 执行时机这三个地方一错,runInstaller 就会在“Configuring Oracle Grid Infrastructure”阶段静默退出或挂起。
- OCR 和 Voting Disk 必须放在 ASM 磁盘组里,但安装前 ASM 实例还没启——所以得先用
asmca -silent -createDiskGroup预创建磁盘组,且确保oracle用户对/dev/oracleasm/disks/下所有盘有读写权限 - 磁盘名必须统一用 udev 绑定(如
/dev/asm-diskb),不能依赖/dev/sdb这类内核名;否则节点重启后盘符漂移,crsctl check crs直接报CRS-4639 -
root.sh必须在第一个节点执行成功后,再登录第二个节点手动运行;不能等安装程序自动拉起第二个节点的脚本——它大概率因 SSH 超时失败,且不会报错提示
数据库软件安装后无法建库:dbca 报 ORA-15018 的真实原因
这不是 ASM 磁盘组不存在,而是 dbca 默认尝试用 +DATA 建库,但安装 GI 时你可能只建了 +OCR,或者 +DATA 组没加第二个节点的 voting disk 成员,导致 ASM 实例在节点 2 上压根看不到该磁盘组。
- 先在两个节点都跑
sqlplus / as sysasm,执行SELECT name, state FROM v$asm_diskgroup;,确认+DATA在两边state都是MOUNTED - 如果只有节点 1 显示
MOUNTED,说明磁盘组创建时没指定COMPATIBLE.ASM='12.1.0'或没加第二个节点的 failgroup;得用ALTER DISKGROUP DATA ADD QUORUM FAILGROUP fg2 DISK 'ORCL:ASMDISK2';补上 - 建库时别用默认模板,改用
dbca -silent -createDatabase手动指定-storageType ASM -asmsnmpPassword xxx -diskGroupName +DATA,避免 GUI 自动跳过校验
RAC 数据库启动失败:检查 crsctl stat res -t 之前先看这个日志
看到 ora.database.db 是 OFFLINE,第一反应不是重跑 srvctl start database,而是立刻查 $GRID_HOME/log/<hostname>/agent/crsd/oraagent_oracle.trc——里面会明确写出是 OCR 读取超时、还是监听没注册、或是 init.ora 里 cluster_database=FALSE 这种低级错误。
- 日志里出现
ORA-01078: failure in processing system parameters,基本是$ORACLE_HOME/dbs/init<db_name>.ora缺少cluster_database=TRUE或remote_listener指向错误 - 如果
crsctl stat res -t显示ora.asm是INTERMEDIATE,别急着重启,先ps -ef | grep pmon看 ASM 实例是否真在跑;有时进程还在但 CRS 认为它挂了,得crsctl stop res ora.asm -f && crsctl start res ora.asm - 所有节点的
$ORACLE_HOME/network/admin/listener.ora必须一致,尤其GLOBAL_DBNAME要设成<db_name>XDB格式,否则srvctl start database会因监听未响应而超时
OCR 备份路径、ASM 磁盘 header 状态、以及每个节点的 oraenv 环境变量是否指向正确的 ORACLE_HOME——这些地方不出错时没人注意,一出错就全卡住,而且错误信息藏得深。










