Oracle 11gR2 Grid Infrastructure Windows安装指南:从解压到RAC集群验证 简介本资源为Oracle 11g R2 Grid Infrastructure在Windows 64位环境下的安装包面向需要搭建Oracle集群的DBA、运维工程师及数据库学习者帮助解决集群部署与ASM存储配置中的环境准备、组件依赖与参数设置问题。压缩包共1495个文件约682.04MB以jar包、htm帮助文档、gif图示、dll动态库、xml配置、exe安装程序及properties、bat脚本等为主涵盖安装向导、集群验证工具与文档支持。已有374人学习下载。资源完整保留Grid Infrastructure安装介质可配合OCR与Voting Disk配置、ASM磁盘组创建、监听器与命名服务设置等环节使用便于读者在真实环境中完成集群搭建、状态检查与故障排查适合具备一定Oracle基础、希望深入掌握集群高可用架构的技术人员参考。1. Oracle 11gR2 集群安装包win64_11gR2_grid.zip 到底解决什么问题如果你在 Windows Server 上折腾过 Oracle RAC大概率见过这个文件名win64_11gR2_grid.zip。它不是数据库安装包而是Oracle Grid Infrastructure 11.2.0.x 的 Windows 64 位安装介质负责装 Clusterware 和 ASM——也就是整个 RAC 的地基。没有它win64_11gR2_database.zip装出来的只是单实例跟集群没有半点关系。这个包解决的核心问题就一个让多台 Windows 机器在 Oracle 层面“看起来像一台”。它包含 Cluster Ready ServicesCRS、表决磁盘管理、ASM 实例、OCR 和 Voting Disk 的初始化工具。适合谁适合需要在 Windows 环境下搭 RAC 做测试、做兼容性验证、或者维护遗留系统的 DBA。不适合生产环境——11gR2 在 Windows 上的 RAC 支持早就进入尾声但测试和迁移场景依然绕不开。我见过太多人把 grid 和 database 两个包搞混装完 database 发现没有crsctl回头找原因找了半天。这一篇就把这个包从解压到集群跑通的路径拆开讲顺带把 Windows 平台特有的坑点标出来。2. 装之前先把环境钉死win64_11gR2_grid 的前置条件与选型逻辑2.1 为什么 Windows 上装 Grid 比 Linux 更容易翻车Linux 下装 Grid Infrastructure你有一堆成熟的检查脚本和社区文档兜底。Windows 下情况完全不同Oracle 在 Windows 上的集群实现依赖 Windows 自身的集群服务做底层支撑Grid Infrastructure 的 Clusterware 和 Windows Cluster 之间存在一层耦合。这意味着你的 Windows 版本、补丁级别、域环境、网络配置任何一个不对安装程序可能连前置检查都过不去。常见做法是两台或多台机器加入同一个域或者至少在同一工作组内能互相解析主机名。我一般会先把hostname、ping、nslookup三件事确认一遍再动安装包。别小看这一步主机名解析失败是 Grid 安装失败里排名前三的原因。另一个选型逻辑11gR2 的 Grid Infrastructure 在 Windows 上要求你提前配好Windows Failover Cluster。对不是 Oracle 自己从零搭集群而是它要复用 Windows 的集群框架。所以你的安装顺序应该是装 Windows 集群功能 → 验证集群 → 再跑 Oracle Grid 安装程序。跳过 Windows 集群直接跑setup.exe大概率卡在“Cluster Verification Utility”那一步。2.2 硬件、系统与网络的最低配置清单下面这张表是我在测试环境里反复用过的配置基线低于这个配置不是装不上是装上了也跑不稳项目最低要求建议值说明操作系统Windows Server 2008 R2 SP1 64位Windows Server 2012 R211gR2 对 2012 之后版本支持有限内存每节点 4GB每节点 8GB 以上ASM 实例 数据库实例叠加消耗磁盘系统盘 50GB 共享盘 20GB共享盘 100GB 以上共享盘用于 OCR/Voting Disk 和 ASM 数据盘网卡2 块公网 私网2 块独立物理网卡私网必须直连或独立交换机IP 规划公网 IP、私网 IP、VIP、SCAN IP每节点至少 4 个 IPSCAN 在 11gR2 里是必须的域环境同域或同工作组同域工作组模式下需要额外配置网络这块多说一句私网必须是独立的网段不能和公网混在一起。我见过有人用同一块网卡配两个 IP 当公私网用安装时 CVU 直接报网络接口不满足要求。VIP 和 SCAN IP 必须是未使用的、和公网同网段的地址提前用ping确认没有冲突。2.3 解压与安装前的目录规划win64_11gR2_grid.zip解压后你会看到grid目录里面是安装程序本体。不要直接在压缩包里运行也不要把解压目录放在中文路径或带空格的路径下。我一般会解到C:\stage\grid这种干净路径。安装前需要手动创建几个目录# 以管理员身份打开 cmd创建 Oracle 基目录和 Grid 主目录 mkdir C:\app\oracle\product\11.2.0\grid mkdir C:\app\oracle\product\11.2.0\dbhome_1 mkdir C:\app\oracle\oraInventory逻辑说明grid目录是 Grid Infrastructure 的 ORACLE_HOMEdbhome_1留给后面装数据库软件用oraInventory是中央清单目录。这三个目录的权限要放开安装程序会往里写文件。参数上注意路径不要用Program Files空格会让某些脚本解析出错。提示解压前先校验 zip 的完整性。11gR2 的 grid 包大概 1GB 出头如果解压报错重新下载比反复重试更省时间。3. 从零跑通 Grid Infrastructure安装步骤与参数怎么填3.1 先配 Windows 集群还是先跑 Oracle 安装程序这个问题我被问过很多次。答案是先配 Windows Failover Cluster。Oracle 的 Grid 安装程序在 Windows 上会检测 Windows 集群服务是否已配置并运行。如果没配安装程序会提示你先完成这一步或者直接失败。配置 Windows 集群的步骤大致是在“服务器管理器”里添加“故障转移集群”功能然后打开“故障转移集群管理器”创建集群把两个节点加进去配置心跳网络。这个过程本身不复杂但有几个点要注意集群名称和 IP 要提前规划好心跳网络要指定为私网网段仲裁配置选“节点多数”即可。配完 Windows 集群后用cluster.exe或者图形界面确认集群状态是“正常”。然后才去跑C:\stage\grid\setup.exe。3.2 安装程序里的关键选项SCAN、ASM 和账户配置运行setup.exe后选择“为集群安装和配置 Grid Infrastructure”。接下来几个关键页面第一集群配置。安装程序会自动识别 Windows 集群的节点确认节点列表无误。SCAN 名称填你规划好的名字SCAN IP 填三个地址11gR2 要求至少三个 SCAN IP虽然一个也能跑但 CVU 会警告。第二ASM 配置。这里要选“创建 ASM 磁盘组”。OCR 和 Voting Disk 放在同一个磁盘组里通常叫CRS或者OCR_VOTE。磁盘组冗余选“外部冗余”还是“正常冗余”取决于你的共享盘配置。测试环境用外部冗余就行前提是共享盘本身有 RAID 保护。第三账户配置。Grid 安装程序会要求你为 ASM 实例设置 SYSASM 密码同时会创建grid用户Windows 上是本地用户或域用户。我一般用域用户避免跨节点权限问题。密码策略如果嫌麻烦可以在安装前把 Oracle 的密码复杂度校验关掉但测试环境之外不建议这么做。安装过程大概 30 到 60 分钟取决于机器性能。中间会跑 root 脚本——Windows 上叫roothas.pl或者对应的 bat 脚本按提示执行即可。3.3 验证集群是否真的起来了crsctl 和 olsnodes 实操安装完成后别急着装数据库。先用crsctl确认集群状态# 切换到 grid 用户环境执行以下命令 crsctl check cluster -all crsctl stat res -t olsnodes -n逻辑说明crsctl check cluster -all会检查所有节点的集群服务状态正常输出里每个节点都应该显示online。crsctl stat res -t列出所有集群资源及其状态重点看ora.asm、ora.CRS.dg、ora.OCR.dg这些资源是不是ONLINE。olsnodes -n列出集群节点编号确认两个节点都在。参数上注意crsctl必须在 Grid 的 ORACLE_HOME 环境下执行或者用完整路径C:\app\oracle\product\11.2.0\grid\bin\crsctl。如果报“CRS-4535: Cannot communicate with Cluster Ready Services”说明集群服务没起来去 Windows 服务里看OracleOHService和OracleCRService是否在运行。注意Windows 上crsctl的输出格式和 Linux 略有差异资源名大小写也可能不同别拿 Linux 的输出去比对。4. 避坑与排查win64_11gR2_grid 安装中最容易翻车的 5 个点4.1 现象CVU 卡在“检查网络接口”不动原因私网和公网用了同一块网卡或者私网网段和公网网段重叠。Oracle 的集群验证工具要求公私网物理隔离至少是不同网段。解决给机器加一块独立网卡专门做私网配一个不冲突的网段比如192.168.100.0/24。然后在 Windows 防火墙里放行私网网段的所有流量或者直接关掉防火墙测试。4.2 现象安装到 70% 报“ORA-15031: 磁盘组挂载失败”原因ASM 磁盘没有正确标记为共享盘或者 Windows 磁盘管理里没有把磁盘设为“联机”且“共享”。Windows 下 ASM 用的磁盘必须是基本磁盘、NTFS 或 RAW 格式并且要在两个节点上都可见。解决在磁盘管理里确认共享盘在两个节点都显示为“联机”并且没有盘符冲突。如果是 iSCSI 或 FC 共享存储确认多路径软件配置正确。测试环境用 VMware 共享磁盘的话确保磁盘的“独立-持久”模式勾选正确。4.3 现象root 脚本执行报“系统找不到指定的路径”原因win64_11gR2_grid.zip解压路径里有中文或空格或者环境变量ORACLE_HOME指向了错误位置。解决把解压目录移到纯英文无空格路径重新设置ORACLE_HOME和PATH。执行 root 脚本时用管理员身份的 cmd并且先cd到脚本所在目录。4.4 现象集群起来了但 VIP 漂移失败原因VIP 对应的网卡没有在 Windows 集群里正确配置或者 VIP 地址被其他设备占用。解决在 Windows 集群管理器里检查网络配置确认公网网卡绑定了正确的 IP。用ping确认 VIP 地址没有被占用。如果 VIP 漂移还是失败检查ora.net1.network资源的状态必要时用srvctl重新配置。4.5 现象安装完成后olsnodes只显示一个节点原因第二个节点的 Grid 软件没有正确注册到集群或者节点间的互信没建立。解决检查第二个节点的OracleCRService是否启动确认两个节点的hosts文件互相解析正确。如果还是不行在第二个节点上重新跑一遍setup.exe的“添加节点”流程或者手动执行roothas.pl注册。5. 装完 Grid 之后把 ASM 磁盘组和数据库实例接上去5.1 用 asmca 创建数据磁盘组并调优 AU 大小Grid 装好后ASM 实例已经在跑了。接下来用asmca创建数据磁盘组。命令行方式更可控# 以 grid 用户执行创建名为 DATA 的磁盘组使用外部冗余 asmca -silent -createDiskGroup \ -diskGroupName DATA \ -diskList \\.\ORCLDISK1,\\.\ORCLDISK2 \ -redundancy EXTERNAL \ -au_size 4逻辑说明-diskGroupName指定磁盘组名-diskList是 Windows 下的物理磁盘路径-redundancy EXTERNAL表示依赖存储层做冗余-au_size 4把分配单元设为 4MB。参数上AU 大小对性能有影响OLTP 场景 4MB 够用OLAP 或大数据量场景可以调到 8MB 或 16MB。改 AU 大小只能在创建磁盘组时指定建完就改不了了这是典型的“后悔药没得吃”。5.2 用 dbca 建库时怎么指向 ASM 磁盘组装数据库软件之后用dbca建库。关键是在“数据库存储”页面选“自动存储管理ASM”然后选你刚创建的DATA磁盘组。如果dbca里看不到 ASM 磁盘组说明 ASM 实例和数据库软件不在同一个用户环境下或者ORACLE_HOME和ORACLE_BASE设置有问题。建库时还有一个参数值得注意db_create_file_dest指向DATA这样数据文件自动落在 ASM 里。控制文件和日志文件也可以放 ASM但归档日志建议放本地或共享文件系统方便备份工具抓取。5.3 验证 RAC 是否真的生效一条 SQL 看实例分布库建好后用 SQL*Plus 连上去-- 查看当前实例和所有实例状态 SELECT instance_name, host_name, status FROM gv$instance; -- 查看集群节点间的负载分布 SELECT inst_id, COUNT(*) FROM gv$session GROUP BY inst_id;逻辑说明gv$instance是 RAC 特有的全局视图能看到所有节点的实例。正常输出里两个实例都应该是OPEN状态。gv$session按inst_id分组统计会话数用来确认连接是否真的分散到了不同节点。如果所有会话都集中在一个实例上检查 SCAN 监听和负载均衡配置。参数上gv$开头的视图只在 RAC 环境下有意义单实例下查会报错。另外inst_id是实例编号和olsnodes -n的输出对应。6. 一个老 DBA 的收尾习惯装完 Grid 先做这三件事装完 Grid Infrastructure 只是开始不是结束。我自己的习惯是集群跑起来之后先做三件事后面能省掉大量排查时间。第一备份 OCR 和 Voting Disk。11gR2 里 OCR 自动备份但手动导出一份更放心# 查看 OCR 自动备份位置 ocrconfig -showbackup # 手动导出 OCR 到指定文件 ocrconfig -export C:\backup\ocr_export.dmp逻辑说明ocrconfig -showbackup列出自动备份的时间点和路径默认在GRID_HOME\cdata\cluster_name下。ocrconfig -export手动导出一份放到共享存储或另一台机器上。Voting Disk 的备份用crsctl query css votedisk查看位置然后直接复制文件。第二记录所有 IP 和资源对应关系。把公网 IP、私网 IP、VIP、SCAN IP、ASM 磁盘组名、OCR 位置、Voting Disk 位置写到一个文本文件里放在手边。下次出问题的时候不用再去翻安装日志。第三测试一次节点重启。手动重启一个节点观察集群资源是否正常漂移VIP 是否跟着走ASM 磁盘组是否自动挂载。这个测试能暴露 80% 的配置问题。我见过太多环境装完看着正常一重启就起不来了。最后说一个我踩过的坑Windows 上的 Grid Infrastructure 对系统补丁很敏感。有一次打完 Windows 更新集群服务直接起不来查了半天发现是某个 .NET 组件版本冲突。从那以后我在测试环境里装完 Grid 第一件事就是关掉自动更新或者至少把更新策略设为“下载但不自动安装”。这个习惯帮我省了至少两次重装集群的时间。希望帮到你。本文还有配套的精品资源点击获取