Oracle 19c RAC图形化安装全攻略:从环境准备到DBCA建库 最近好几个朋友问我自己跟着官方文档装Oracle 19c RAC为什么总是卡在中间某一步——不是图形化界面起不来就是ASM看不到共享盘要么root.sh执行失败、集群起不来一折腾就是一整天。其实问题大多不是能力问题而是准备阶段有几个必须注意的细节没做到位。Oracle 19c RAC图形化安装本身不算复杂只要你把集群架构想清楚、网络和共享存储规划对、系统参数配齐后面就是一步步点Next的事。这篇文章我打算从零开始把两个节点的RAC图形化安装全程拆开讲每个界面选什么、每段脚本怎么跑、每个坑长什么样都给你对一遍。文章以VMware虚拟化环境下的Oracle Linux 7.9为例适合第一次接触RAC、想在实验环境一次装通的新手。1. 开装之前先把三件事想明白集群架构、版本选择与安装路线1.1 RAC到底在解决什么问题RAC的全称是Real Application Clusters中文叫“真实应用集群”。你不需要把它想得多玄乎本质上就是多个服务器节点装上Oracle数据库软件各自运行一个实例但共享同一套数据文件对外像是一个数据库。当其中一个节点挂掉另一个节点能无缝接管应用基本无感。同时你还可以通过增加节点来扩展处理能力而不是换一台更大的服务器。19c这个版本是Oracle 12c系列之后的一个长期支持版本稳定性、性能、多租户、自动化运维方面都相当成熟也是目前很多企业生产环境的主流选择。RAC在19c里有一大变化不再区分“集群件”和“ASM软件”它们全部整合在Grid Infrastructure简称GI一套软件里。你装好GI就等于装好了Clusterware和ASM两个核心组件。这一点一定先记住后面装软件的时候就不会犯迷糊。1.2 这次要装的软件到底有哪些一套标准的Oracle 19c RAC需要装两个软件包顺序不能反第一个是Grid Infrastructure运行在grid用户下负责集群资源管理、节点心跳、VIP漂移、SCAN监听以及ASM存储管理。没有它数据库根本跑不起来。第二个是Oracle Database软件运行在oracle用户下数据库实例本身靠它启动。它可以只装软件不建库之后再通过DBCA图形化工具创建RAC数据库。这两个软件都必须在每个节点上安装也就是说你两个节点都要有grid用户和oracle用户软件目录各放一份。后面你会反复看到这个双用户结构这是理解RAC运维的基础。1.3 保姆级路线图五个阶段一次看清楚我把整个安装过程拆成五个阶段整个教程就是按这条线走的网络、主机名、共享存储规划——这是万事之基错一步后面全崩。系统层准备——内核参数、用户组、依赖包、udev共享盘规则。安装Grid Infrastructure——装完集群就起来了ASM也能用了。安装Oracle数据库软件——纯软件安装两个节点一起装。用DBCA创建RAC数据库——数据库实例在两边启动起来。这五步走完你的RAC才是真正能跑业务的RAC。很多教程只讲到GI装完就结束那只能算集群装好了数据库其实还没影呢。2. 网络、主机与共享存储规划这一步错了后面全是坑2.1 三套网段Public、Private、VIP/SCAN怎么分RAC对网络的要求是整个安装里最容易被忽视、出错后也最难排查的部分。一个标准两节点RAC至少需要三类IPPublic IP每个节点对外提供服务的物理IP客户端访问用的就是它。要求两个节点在同一网段。Private IP集群内部节点间通信和心跳用的物理IP要求两个节点间必须连通且绝对不能和Public在同一个网段。心跳数据走独立网段是为了避免对外网络拥堵时集群误判节点死亡。Virtual IPVIP每个节点有一个和Public同网段的虚拟IP由集群管理。节点挂了VIP漂移到另一个节点应用连接还能继续走。SCAN IP整个集群的“入口”。客户端不直接连某个节点的IP而是连SCAN域名由集群自动把连接分发到健康的节点上。我常用的一套简单规划如下内存里完全够用主机名Public网段192.168.1.0/24Private网段10.0.0.0/24VIP网段192.168.1.0/24rac1192.168.1.10110.0.0.1192.168.1.111rac2192.168.1.10210.0.0.2192.168.1.112rac-scan192.168.1.121——这里要重点说一个常见误区——很多人以为VIP必须和Public不同网段实际上VIP必须和Public在同一个网段因为VIP需要能被路由到客户端网段而且要能快速漂移。真正的隔离要求是Private不能和Public同一个网段。Private网段你可以随意用只要两个节点内部互通即可我习惯用10.0.0.0/24。2.2 主机名与hosts解析细节别偷懒Oracle要求所有节点的hostname保持一致不能一会儿短名一会儿FQDN。hosts文件建议在每台机器都把所有地址都写全我一般在每台节点的/etc/hosts里统一写192.168.1.101 rac1 192.168.1.102 rac2 192.168.1.111 rac1-vip 192.168.1.112 rac2-vip 192.168.1.121 rac-scan 10.0.0.1 rac1-priv 10.0.0.2 rac2-priv注意几个细节hostname里不要带下划线不能有空格rac-scan尽量不要写在后面几行可以放在最前SCAN IP在生产环境最好走DNS做三个地址轮询但实验环境hosts文件解析一个IP完全够用。还有一点两个节点的/etc/hosts内容完全一样避免因为解析不同导致节点间互相找不到。2.3 共享磁盘规划OCR、Voting、DATA、FRA到底怎么分共享存储是所有节点都能看到、都只能通过ASM访问的磁盘。ASM磁盘组按用途可以分成三类OCR和Voting Disk集群的“命根子”。OCR存集群和数据库的配置信息Voting Disk用于集群分裂时的仲裁。Oracle 19c安装GI时会要求你至少创建一个ASM磁盘组来存放OCR和Voting Disk命名一般叫OCRVOTE。这个组建议至少两块盘做Normal冗余需要三块盘才能满足Normal如果只有两块盘也可以External只放一块这里注意如果外部已有存储冗余可以选External只用一块盘如果本机虚拟磁盘没有冗余建议至少三块小盘做Normal。实验环境用一块20G~30G的External冗余盘也行但要知道这是单点。DATA磁盘组存数据库的数据文件、控制文件、redo日志建议容量给足比如50G以上。FRA磁盘组快速恢复区存归档日志、RMAN备份和数据隔离建议30G~50G。如果你用的是一套虚拟化环境总共给三块共享盘就够了一块20G给OCRVOTE一块50G给DATA一块30G给FRA。磁盘大小不齐没关系ASM是按磁盘组管理的。关键是每块盘在每台节点上看到的设备名要一致例如rac1的sdb是什么rac2的sdb也必须是什么。2.4 虚拟化环境怎么模拟共享盘这个坑我踩过很多次所以单独拿出来说。在VMware Workstation里共享盘不是“挂上同一个ISO”那种概念你需要做以下操作在两台虚拟机都关机状态下编辑虚拟机设置。分别给两台VM添加一块新磁盘磁盘类型选SCSI。创建磁盘时选择“使用现有虚拟磁盘”指向同一个vmdk文件。关键一步在NVRAM也就是vmx配置文件或者界面的高级选项里找到“独立”模式勾选“多写入器”。如果界面没找到多写入器选项需要手动编辑vmx文件找到对应磁盘的描述行加一行disk.Enabled TRUE和disk.Sharing true。这一步没做对最常见的问题是ASM在Discovery阶段看不到盘或者偶尔能发现但一写数据就报错、voting disk仲裁失败。Oracle在虚拟化环境跑RAC本来就对共享盘要求苛刻多写入器这个开关必须打开要牢记。3. 系统层准备清单内核参数、用户、依赖包、udev一项项过3.1 操作系统版本与依赖包检查Oracle官方19c支持的Linux发行版不少但我给新手的建议是直接用Oracle Linux 7.9理由很简单官方支持列表里它排在前面依赖包基本都能在默认源里找到装起来省心。Red Hat Enterprise Linux 7.9也可以区别不大。系统装好后先把以下依赖包装上。我在实验环境里直接用yum一次性装齐下面是常用清单yum install -y bc binutils compat-libcap1 compat-libstdc-33 \ gcc gcc-c glibc glibc-devel ksh libaio libaio-devel \ libX11 libXau libXi libXtst libXrender libXrender-devel \ libgcc libstdc libstdc-devel libxcb make net-tools \ nfs-utils openmotif openssh-clients openssh-server \ python3 quota readline readline-devel smartmontools \ sysstat unixODBC unixODBC-devel xorg-x11-utils xorg-x11-xauth注意python3这个包19c的Grid检查时会依赖Python 3环境少了它会在前置检查阶段报错。如果你用的源装不了openmotif不影响核心安装但保险起见还是尽量装上。3.2 内核参数与用户资源限制把下面这些参数写到/etc/sysctl.conf里然后执行sysctl -p生效。这组参数是Oracle官方给出的标准值适用于绝大多数环境不需要自己改fs.file-max 6815744 fs.aio-max-nr 1048576 kernel.sem 250 32000 100 128 kernel.shmall 1073741824 kernel.shmmax 4398046511104 kernel.shmmni 4096 kernel.panic_on_oops 1 kernel.pid_max 4194304 net.ipv4.conf.all.rp_filter 1 net.ipv4.conf.default.rp_filter 1 net.ipv4.conf.all.accept_source_route 0 net.ipv4.conf.default.accept_source_route 0 net.core.rmem_max 4194304 net.core.rmem_default 262144 net.core.wmem_max 1048576 net.core.wmem_default 262144 net.ipv4.ip_local_port_range 9000 65500这些参数总结起来就是放宽文件句柄限制、扩大共享内存上限、调整端口范围。RAC节点间通信很频繁如果端口范围太窄容易在高并发时出现“端口耗尽”导致节点被误判为故障这也解释了为什么ip_local_port_range要设置成9000到65500。接着修改/etc/security/limits.conf给grid和oracle加同一组限制grid soft nproc 2047 grid hard nproc 16384 grid soft nofile 1024 grid hard nofile 65536 grid soft stack 10240 grid hard stack 32768 grid hard memlock 3145728 grid soft memlock 3145728 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768 oracle hard memlock 3145728 oracle soft memlock 3145728其中memlock对应的就是内存锁安装时如果这里设置不够Oracle会提示“unable to lock memory”或者内存分配相关的错误。3145728KB换算过来是3GB如果你的节点内存超过8GB建议直接把它调大。3.3 创建用户、目录与权限RAC的安装离不开两套用户注意主组必须是oinstall。我习惯把命令写成脚本放在两个节点分别执行确保两边完全一致groupadd oinstall groupadd dba groupadd oper groupadd backupdba groupadd dgdba groupadd kmdba groupadd asmdba groupadd asmoper groupadd asmadmin groupadd racdba useradd -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba,asmdba oracle useradd -g oinstall -G oinstall,asmadmin,asmdba,asmoper grid mkdir -p /u01/app/19.0.0/grid mkdir -p /u01/app/grid mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1 mkdir -p /u01/app/oracle chown -R grid:oinstall /u01/app/grid chown -R grid:oinstall /u01/app/19.0.0 chown -R oracle:oinstall /u01/app/oracle这里有一个细节容易被忽略grid用户的附加组里不要加dba。虽然加了有时也能装但不符合官方最佳实践而且后续做ASM权限分离实验时容易出现权限混乱。oracle用户则必须加入asmdba因为它要读写ASM磁盘组里的数据库文件。3.4 关闭防火墙与SELinux配置时间同步这一步很多人会忘。RAC节点间的通信端口非常多集群件要监听、要互相探测防火墙开着大概率会拦截心跳导致节点反复被踢出集群。实验环境我建议直接关闭防火墙并禁用systemctl stop firewalld systemctl disable firewalldSELinux我建议设成permissive或者disabled。Oracle官方文档允许你开着SELinux运行但必须配置正确的布尔值对新手来说那又是另一个坑。与其冒着风险配置不如直接把它设为permissive安装完成后也可以再评估是否需要恢复enforcing。时间同步方面Oracle集群对节点间时间差很敏感默认要求节点间时钟偏差不能超过几秒。如果你的环境没有现成的NTP服务器最好就是让GI内置的CTSS集群时间同步服务来管理前提是系统里没有运行chronyd和ntpd。检查一下如果这两个服务在运行先停掉并禁用systemctl stop chronyd systemctl disable chronyd systemctl stop ntpd systemctl disable ntpd3.5 共享盘udev规则与ASM设备权限在Linux下ASM不会直接去找/dev/sdb它按照你指定的Discovery Path去扫描。为了让ASM稳定识别共享盘我习惯用udev规则把共享盘固定为/dev/asm*设备并赋予grid:asmadmin正确权限。先在两个节点都看一下磁盘编号是否一致ls -l /dev/sdb /dev/sdc /dev/sdd如果确实对应如下sdb是OCR/Voting盘sdc是DATA盘sdd是FRA盘那么创建/etc/udev/rules.d/99-oracle-asm.rules内容如下KERNELsdb, OWNERgrid, GROUPasmadmin, MODE0660 KERNELsdc, OWNERgrid, GROUPasmadmin, MODE0660 KERNELsdd, OWNERgrid, GROUPasmadmin, MODE0660然后重新加载规则udevadm control --reload-rules udevadm trigger最后确认一下设备权限已经变成grid:asmadminls -l /dev/sdb /dev/sdc /dev/sdd提示用设备名直接匹配udev规则在实验环境没问题但生产环境强烈建议使用/dev/disk/by-path或者/dev/disk/by-id等方式避免系统重启后设备名飘移导致ASM起不来。到这里你两个节点的基础环境已经搭好可以进入正式的安装阶段了。4. Grid Infrastructure图形化安装每个界面选什么我给你对一遍4.1 启动gridSetup.sh之前还有两件小事第一grid用户的.bash_profile建议提前配好环境变量这样后续执行asmca、asmcmd都很方便export ORACLE_BASE/u01/app/grid export ORACLE_HOME/u01/app/19.0.0/grid export PATH$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH$ORACLE_HOME/lib第二把Grid安装介质解压到/u01/app/19.0.0/grid。注意介质zip解压后的目录结构应该就是你想要的grid_home里面直接有gridSetup.sh。如果解压出现多一层目录把内容移动一下确保路径是/u01/app/19.0.0/grid/gridSetup.sh。然后你需要一个图形化窗口。我用的方案是Windows上用Xmanager或者MobaXterm打开X server后通过SSH登录Linux登录后执行export DISPLAY你的Windows机器IP:0.0如果是直接用虚拟机本地图形界面则不需要DISPLAY。先在第一个节点以grid用户执行cd /u01/app/19.0.0/grid ./gridSetup.sh4.2 逐个界面过一遍从节点配置到创建ASM磁盘组Configuration Option界面选择“Set up a new cluster”为新集群配置Grid Infrastructure不要选Upgrade也不要选Standalone Server。Cluster Configuration界面集群名称填rac-clusterSCAN Name填rac-scanSCAN Port保持1521。如果你没有使用DNS这里可能会提示无法解析SCAN不要勾选GNS确认hosts文件里SCAN解析存在即可。页面下方可能会有一个“Configure Grid Infrastructure Management Repository”选项实验环境建议取消勾选否则它会要求你多分一块磁盘给GIMR用。Cluster Node Information界面点击Add把rac1和rac2加进去操作系统类型保持Linux。这个界面会让你配置SSH互信如果你前面手动配好了root和grid的双向互信这里填入密码或测试时就很顺畅。我记得OUI会在这里做一次SSH Connectivity测试如果提示失败多半是root密码不对或SSH端口自定义了。Network Interface界面这一步非常重要。OUI会自动检测节点的网卡并显示IP段。你需要确认192.168.1.0/24的网卡比如eth0用途选Public也就是对外提供服务。10.0.0.0/24的网卡比如eth1用途选Private也就是ASM和私有互连ASM Private。 如果哪块网卡被标成了“Do Not Use”或者两个网卡的Public/Private分配反了在这里立刻改过来否则装到后面集群资源会全部异常。Storage Option界面选择“Grid Infrastructure Management Repository”不讨论后主要选存储类型。如果你不想用ASMFD选择“Configure ASM using block devices”然后在Disk Discovery Path里填/dev/sd*或/dev/asm*。我一般填/dev/sd*再点击“Populate Disk List”看能否扫描到三块盘。如果什么都看不到多半是udev规则没加载或者共享盘没有在VM层面做多写入器。ASM Disk Group Creation界面这里一次性把磁盘组建好。点Create创建OCRVOTE磁盘组我习惯选External冗余只勾选第一块20G的盘再Create一个DATA磁盘组External冗余勾选第二块50G的盘接着Create一个FRA磁盘组External冗余勾选第三块30G的盘。磁盘组的ASM兼容性和数据库兼容性保持默认即可不用改。ASM Password界面设置ASM的SYS和ASMSNMP密码。注意Oracle的ASM密码策略很严格必须至少8位建议包含大小写字母和数字。密码忘记会很痛苦两个字记好。Operating System Groups界面你前面把组都建好了这里直接对照着选OSASM选asmadminOSAPI选asmdbaOSOPER选asmoperOSDBA选dbaOSBACKUPDBA选backupdbaOSKMDBA选kmdbaOSRACDBA选racdba。如果界面里找不到某些组说明你创建组的步骤漏了。Installation Location界面Oracle Base自动填/u01/app/gridSoftware Location自动填/u01/app/19.0.0/grid保持默认。Prerequisite Checks界面OUI会等一会儿做检查。最常见的问题是缺rpm包、内核参数不匹配、内存或swap不足。如果检查项里有红色叉子先点“Fix Check Again”尝试自动修复修不了就切到root用户手动补齐。只要不是硬性错误有时候可以直接“Ignore All”继续但我不建议新手这么干还是把红色项清完再走。Summary界面确认集群名、节点列表、磁盘组信息没错保存一份响应文件点Install开始正式安装。4.3 root.sh执行最容易卡住的一步安装过程会拷贝文件到两个节点然后弹出一个“Execute Configuration Scripts”界面要求你用root用户在每台节点依次执行脚本。你需要在rac1和rac2上分别执行/u01/app/19.0.0/grid/root.shroot.sh跑的时间比较长中间会问两个问题一般直接回车接受默认值。第一个问题是Do you wish to continue? (y/n)实际很多时候不会问第二个可能会问是否安装cvuqdisk如果rpm包在/u01/app/19.0.0/grid/cv/rpm里就先手动装一下会更稳cd /u01/app/19.0.0/grid/cv/rpm rpm -ivh cvuqdisk-*.rpm两个节点的root.sh都必须执行成功然后回到OUI界面点“OK”。之后它会自动启动集群资源整个过程大概需要几分钟。看到集群资源全部online再点Close关闭安装界面。这里我要说一句经验很多人执行root.sh时第二个节点经常因为第一个节点还没执行完就抢着执行导致集群资源冲突。稳妥做法是先在第一个节点跑完确认crsctl stat res -t能看到资源再跑到第二个节点。4.4 用ASMCA确认磁盘组是否正确装完GI后用grid用户执行asmca打开图形化工具看看三个磁盘组的状态。正常你会看到OCRVOTE、DATA、FRA三个组状态都是MOUNTED使用率也都是0%。如果某个组是DISMOUNTED右键执行mount即可。ASMCA里还能看到ASM实例、监听器、磁盘路径等信息这个工具后续管理磁盘组也经常用建议你多用用。5. RAC数据库软件安装与DBCA建库从runInstaller到orcl库创建完成5.1 安装数据库软件一次搞定两个节点数据库软件安装比GI简单得多。先把数据库介质zip解压到/u01/app/oracle/product/19.0.0/dbhome_1然后切到oracle用户确保DISPLAY正确执行cd /u01/app/oracle/product/19.0.0/dbhome_1 ./runInstaller第一个界面选择安装选项时有三种情况单实例建库、RAC建库、仅软件。我建议选“Set Up Software Only”仅安装数据库软件后续再用DBCA单独建库一是流程更短二是不容易出错。接下来的界面选择“Oracle Real Application Clusters database installation”然后选择集群节点。弹出节点选择列表时把rac1和rac2都勾上。Oracle Home也就是软件安装位置保持默认/u01/app/oracle/product/19.0.0/dbhome_1。在操作系统组配置界面按官方默认选OSDBA选dbaOSOPER选operOSBACKUPDBA选backupdbaOSDGDBA选dgdbaOSKMDBA选kmdbaOSRACDBA选racdba。一路Next最后在“Execute Configuration Scripts”界面需要你分别在两个节点以root执行/u01/app/oracle/product/19.0.0/dbhome_1/root.sh这个root.sh很短跑完基本没输出点OK关闭。数据库软件安装就算完成了。是不是感觉比GI顺畅很多对GI是重头戏DB软件安装主要是等待。5.2 DBCA创建集群数据库选对模式少走弯路软件装好后以oracle用户执行dbcadbca界面选“Create Database”然后选择“Advanced Mode”高级模式。注意不要选“Create with default configuration”——那是单实例默认配置我们要的是RAC。在“Database Configuration Type”界面选择“Real Application Clusters”节点列表默认全选。接着选模板我用“General Purpose or Transaction Processing”就够。数据库标识填写全局数据库名orclSID前缀自动带出来也是orcl。存储部分选择ASM磁盘组选DATA这样数据文件、控制文件、redo日志都会放到DATA组。接着勾选“Fast Recovery”恢复区位置选FRA磁盘组大小可以用默认。这一步顺便把归档模式也开了RAC生产环境一般都要求归档实验环境开了也没坏处。字符集建议选AL32UTF8避免后续客户端乱码。数据库密码设置SYS和SYSTEM的密码至少8位建议大小写加数字混合。内存管理方面如果你虚拟机内存只有8G建议把SGA内存调成2G~4G不然创建过程可能因为内存不足卡住。其他参数全部保持默认。在Summary界面可以先保存一个响应脚本再点Create。DBCA会在两个节点上同时执行建库脚本整个创建过程大约十几分钟。你会看到它创建控制文件、数据字典、启动实例等日志等走完RAC数据库就活了。5.3 建库时的几个参数选择DBCA整个过程里有几个参数我想单独拎出来提醒processes参数如果模板给了默认值500在实验环境够用。db_recovery_file_dest_size如果磁盘组FRA太小建库可能会报空间不足建议FRA给到30G以上。remote_login_passwordfile在RAC中会自动设置为EXCLUSIVE不用动。如果DBCA在ASM密码验证那一步报错回到ASMCA确认ASMSNMP密码是否正确很多时候不是存储问题就是密码记错了。6. 安装完成之后的事集群验证与新手最常见翻车点复盘6.1 几条命令确认集群和数据库真的活着安装完成后别急着高兴先用命令验证一遍。切到grid用户执行crsctl check cluster -all crsctl status resource -t正常你会看到所有资源都是ONLINE包括ora.oc4j、ora.scan1、ora.rac1.vip、ora.rac2.vip、ora.asm、ora.orcl.db等。如果哪个资源显示OFFLINE先看状态再启动crsctl start resource 资源名。特别要关注ora.orcl.db它代表数据库本身在两个节点都启动了。再用oracle用户执行srvctl status database -d orcl sqlplus / as sysdba然后确认集群数据库模式select inst_id, instance_name, status from gv$instance;正常会返回两个实例一个rac1上的orcl1一个rac2上的orcl2。再查一下参数show parameter cluster_database;返回值必须是TRUE。如果返回FALSE说明建库时没有选RAC模式那这个问题要回到DBCA重新处理。6.2 新手最容易翻车的10个场景我在帮朋友排查RAC安装问题时遇到过的经典翻车场景基本就这些图形化界面起不来DISPLAY没设对或者Android不在同一网络段。用MobaXterm最省心自带X server。ASM发现不了盘udev没生效或VMware共享盘没开多写入器。检查顺序从ls -l /dev/sd*到udevadm info --queryall /dev/sdb。root.sh卡住多半是时间不同步或节点间SSH有问题。先执行date对比两台机器时间。SCAN连不上hosts文件里SCAN解析不对或者SCAN监听没有起来。检查crsctl stat res -t | grep scan。cvuqdisk缺失安装前先装/u01/app/19.0.0/grid/cv/rpm/cvuqdisk-*.rpm注意两个节点都要装。检查不通过卡在物理内存虚拟机内存至少8Gswap至少8G。执行root.sh后集群资源起不来查看/u01/app/19.0.0/grid/log/rac1/alertrac1.log或者$ORACLE_BASE/diag/crs/下的日志。安装过程中明明配置了OCR盘却在root.sh后报voting file not found共享盘没被第二个节点识别回到共享盘配置。DBCA创建时提示ASM实例连接失败grid用户下的ASM没起来执行crsctl stat res -t | grep asm确认。网络接口用途选错Private和Public同一网段集群心跳异常。只能回到安装前重新梳理IP规划。6.3 无论如何都要做的虚拟机快照最后分享一个我每次搭RAC实验环境都会做的操作在系统基本准备完成、即将执行gridSetup.sh之前给两台虚拟机各拍一张快照。RAC安装有个特点越往后出问题回滚成本越高。如果你装在GI那一步把集群搞坏了想清理干净极其麻烦涉及crs卸载、磁盘清理、inventory清理一堆事。快照一拍装坏了直接revert十分钟回到起点重新来一遍也就一个多小时的事。我的经验是快照永远不嫌多特别是在你还不熟悉RAC的时候一步一快照都是值得的。等这套流程走顺了再考虑不靠快照直接一遍装通那时候你心里才对“零失败”这三个字真正有底。