
简介本资源为Oracle 11g R2 Grid Infrastructure在Windows 64位环境下的安装包面向需要搭建Oracle集群的数据库管理员与运维工程师帮助解决集群部署与ASM存储配置问题。压缩包共1495个文件约682.04MB以1047个jar、191个htm、88个gif、67个dll及12个exe为主涵盖安装程序、帮助文档、图形资源与运行库另含xml、properties、bat等配置脚本结构完整。已有374人学习下载。资源覆盖Oracle Clusterware与ASM两大组件涉及OCR与Voting Disks配置、ASM磁盘组创建、集群验证及监听器与命名服务设置等关键环节可帮助读者理解集群高可用架构掌握响应文件自动化安装与crs_stat状态检查等实用技能适合具备一定Oracle基础、希望深入集群部署的中高级技术人员参考实践。1. 从 win64_11gR2_grid.zip 说起这个安装包到底解决什么问题如果你在 Windows Server 上折腾过 Oracle 集群大概率见过win64_11gR2_grid.zip这个文件名。它不是一个普通安装包而是 Oracle 11g Release 2 的 Grid Infrastructure 安装介质专门用于 Windows 64 位平台。说白了它装的是集群件——Clusterware 加 ASM是整个 RAC 的地基。没有它后面数据库实例根本起不来。很多人第一次拿到这个包以为解压双击就能用结果卡在先决条件检查、卡在 ASM 磁盘组、卡在 VIP 配置。这篇笔记就是把我自己踩过的路重新铺一遍从介质结构、环境准备、安装参数到验证和排错让新手能跟着走完熟手能对照检查边界条件。适合正在做 Oracle 高可用架构、需要自己搭测试环境或准备上生产的 DBA 和系统工程师。2. 解压之前先搞清楚介质结构与环境预检2.1 安装包里到底有什么把win64_11gR2_grid.zip解压后你会看到顶层目录里有一个grid文件夹里面才是真正的安装程序setup.exe。但别急着双击先看清楚几个关键子目录grid\核心安装目录包含setup.exe、runInstaller.bat、oui等。grid\stage\安装阶段使用的组件仓库里面有Components和Products两个子目录分别存放组件定义和实际文件。grid\response\静默安装用的响应文件模板比如grid_install.rsp做批量部署时直接改这个比图形界面快得多。grid\inventory\安装清单相关文件记录已安装组件信息。常见做法是先把 zip 解压到一个短路径下比如D:\gridsetup不要放在中文路径或带空格的目录里。我一般会检查解压后的总大小完整解压大概 4GB 出头如果明显偏小说明压缩包下载不完整后面安装必然报错。2.2 操作系统与补丁要求Oracle 11gR2 Grid Infrastructure 对 Windows 版本有明确要求。它支持 Windows Server 2008 R2、Windows Server 2012 等但具体到不同补丁级别行为差异很大。我遇到过在 Windows Server 2012 R2 上安装时先决条件检查直接报操作系统版本不支持原因是缺少对应的 Oracle 认证补丁。你需要确认几件事系统是 64 位且已安装最新 Service Pack。如果是 Windows Server 2012 及以上需要提前安装 Oracle 官方要求的 Visual Studio 可再发行组件。关闭 Windows 防火墙或者提前放行 Oracle 相关端口否则后面集群节点之间通信会出玄学问题。确保系统盘和准备放 ASM 磁盘的分区有足够空间Grid Infrastructure 本身大约需要 6GB 到 8GB。注意不要试图在域控制器上安装 Grid Infrastructure角色冲突会导致安装后集群服务无法正常启动。2.3 网络与主机名预检RAC 对网络的要求比单实例严格得多。每个节点至少需要两块物理网卡一块用于公网一块用于私网心跳。安装前必须把主机名、IP 地址、DNS 解析全部固定下来不能依赖 DHCP。我一般会先跑一遍网络检查命令确认解析正确# 在 Windows 命令提示符下执行检查主机名解析 nslookup node1.example.com nslookup node1-priv.example.com # 查看网卡配置确认公网和私网分开 ipconfig /all逻辑说明nslookup用来验证正向解析是否指向正确的 IPipconfig /all用来确认每块网卡的 IP、子网掩码和网关。如果公网和私网用了同一块网卡或者两个节点之间私网 ping 不通后面集群心跳会超时节点会被踢出集群。参数上重点看公网 IP 必须能互相访问私网 IP 必须直连且延迟低于 1ms。主机名不要用下划线Oracle 对特殊字符支持不好容易在后期报莫名错误。2.4 创建操作系统用户与组Windows 平台上 Oracle 不强制要求像 Linux 那样创建grid和oracle用户但为了权限清晰我建议单独建一个本地用户用于安装比如oracle并把它加入 Administrators 组。同时确认该用户对安装目录和后续 ASM 磁盘有完全控制权限。# 以管理员身份打开命令提示符创建本地用户 net user oracle Oracle123 /add net localgroup Administrators oracle /add # 创建安装目录并授权 mkdir D:\app\oracle icacls D:\app\oracle /grant oracle:(OI)(CI)F逻辑说明net user创建本地账户net localgroup把它加入管理员组icacls授予该用户对安装目录的完全控制权限。参数(OI)(CI)F表示对象继承和容器继承权限为完全控制。这一步不做安装程序可能因为权限不足无法写入清单文件。3. 图形化安装 Grid Infrastructure 的完整步骤3.1 启动安装程序与先决条件检查用刚才创建的oracle用户登录进入解压目录下的grid文件夹右键setup.exe以管理员身份运行。第一个界面会让你选择安装类型这里选“安装和配置 Oracle Grid Infrastructure 用于独立服务器”还是“用于集群”取决于你的场景。做 RAC 就选集群安装。接下来是关键的先决条件检查。安装程序会自动检测操作系统版本、补丁、网络、内存等。如果报错不要跳过逐条解决。常见的报错包括物理内存不足至少 4GB建议 8GB 以上。交换空间不足Windows 上由系统管理一般不用手动调但内存太小会报。网络接口未通过检查是否两块网卡都启用了且没有禁用。主机名解析失败回到 2.3 节检查 DNS 或 hosts 文件。注意先决条件检查里有一项“检查网络接口”如果私网网卡被识别为公网后面集群通信会走错网卡直接导致安装失败。3.2 配置集群节点与网络接口在集群安装模式下安装程序会让你添加节点。输入第二个节点的主机名和虚拟 IP然后分配网络接口用途公网接口用于客户端连接和节点间公共通信。私网接口用于集群心跳和缓存融合通信。不要勾选“不用于”任何接口否则该网卡会被忽略。我一般会把私网接口的 MTU 调大一点比如 9000前提是交换机支持巨帧。如果交换机不支持保持默认 1500否则会出现大包丢失表现为节点间间歇性心跳超时。# 查看网卡 MTU确认是否一致 netsh interface ipv4 show subinterfaces逻辑说明netsh命令列出所有接口的 MTU 值。如果私网网卡 MTU 和交换机不匹配集群心跳包可能被分片或丢弃。参数上公网保持 1500私网如果确认交换机支持巨帧再改 9000否则不要动。3.3 配置 ASM 磁盘组Grid Infrastructure 需要至少一个 ASM 磁盘组来存放集群注册表、OCR 和投票文件。在 Windows 上ASM 磁盘可以使用裸设备或 ASM 过滤器识别的未格式化磁盘。常见做法是给每个节点挂载共享存储然后在安装程序里选择“配置 ASM 磁盘组”。关键参数磁盘组名称比如DATA或GRID建议单独用一个小的磁盘组放 OCR比如CRS。冗余级别测试环境可以用外部冗余生产环境至少用普通冗余。磁盘发现路径Windows 上通常用\\.\ORCLDISK*格式安装程序会自动列出可用磁盘。# 查看系统识别的磁盘确认共享磁盘未被格式化 diskpart list disk逻辑说明diskpart列出所有磁盘。共享磁盘必须处于未初始化或未分配盘符状态否则 ASM 无法接管。如果磁盘已经被格式化为 NTFS需要先删除卷但生产环境操作前务必确认数据已备份。3.4 设置密码与执行安装接下来设置 ASM 实例的 SYS 密码和集群注册表密码。建议用同一个密码方便管理但不要用弱密码否则安装程序会提示不符合复杂度要求。然后指定安装位置默认是D:\app\oracle\product\11.2.0\grid可以改到空间更大的分区。点击“安装”后安装程序会先执行root.sh类似的脚本。Windows 上对应的是%ORACLE_HOME%\bin\crsctl相关操作但安装程序会自动调用。你只需要在弹出窗口时以管理员身份运行指定脚本。# 安装过程中会提示运行脚本通常位于 D:\app\oracle\product\11.2.0\grid\bin\crsctl.bat # 安装完成后检查集群状态 crsctl check cluster -all逻辑说明crsctl check cluster -all会检查所有节点的集群服务状态。如果返回CRS-4537: Cluster Ready Services is online之类的信息说明集群件已经跑起来了。参数-all表示检查所有节点不加只检查本机。4. 静默安装与响应文件批量部署时怎么少踩坑4.1 响应文件的关键参数图形界面适合第一次安装但如果你要重复搭建多套环境静默安装效率高得多。win64_11gR2_grid.zip的response目录里自带模板复制一份出来改。核心参数参数含义建议值ORACLE_HOSTNAME本机主机名实际主机名INVENTORY_LOCATION清单目录D:\app\oracle\inventoryORACLE_HOMEGrid 安装目录D:\app\oracle\product\11.2.0\gridORACLE_BASEOracle 基础目录D:\app\oraclecluster_nodes集群节点列表node1,node2cluster_node_vipsVIP 地址对应节点 VIPasm_diskgroup_nameASM 磁盘组名CRSasm_disksASM 磁盘路径\\.\ORCLDISK0改完保存为grid_install.rsp然后用命令行启动安装setup.exe -silent -responseFile D:\gridsetup\grid\response\grid_install.rsp -waitforcompletion逻辑说明-silent表示静默模式-responseFile指定响应文件路径-waitforcompletion让安装程序等待所有节点完成后再返回。参数上-waitforcompletion在脚本里很有用否则命令会立即返回你无法判断安装是否真正结束。4.2 静默安装后的检查清单静默安装不会像图形界面那样给你明显的成功提示所以必须自己检查。我一般按这个顺序来检查清单文件是否生成D:\app\oracle\inventory\ContentsXML\inventory.xml。检查集群服务crsctl check cluster -all。检查 ASM 实例srvctl status asm。检查 OCR 和投票文件ocrcheck和crsctl query css votedisk。# 检查 OCR 状态 ocrcheck # 检查投票磁盘 crsctl query css votedisk # 查看 ASM 磁盘组 srvctl status asm -detail逻辑说明ocrcheck验证 OCR 完整性crsctl query css votedisk列出投票磁盘位置和状态srvctl status asm -detail显示 ASM 实例运行状态和磁盘组挂载情况。如果 OCR 报错集群可能无法启动需要从备份恢复。5. 避坑与排查安装 Grid Infrastructure 时最容易翻车的 5 个点5.1 先决条件检查通过安装到一半报“无法写入清单”现象安装进度到 30% 左右突然报错提示无法创建或写入 inventory 目录。原因安装用户对D:\app\oracle\inventory没有完全控制权限或者该目录被其他程序占用。解决提前用icacls授予安装用户完全控制权限并确保没有杀毒软件实时扫描该目录。如果已经卡住清理临时文件后重新运行安装程序。5.2 集群节点间心跳超时节点频繁重启现象安装完成后crsctl check cluster -all显示一个节点在线另一个节点反复重启日志里出现CSS-6006: Heartbeat timeout。原因私网网卡配置错误或者私网和公网走了同一块网卡导致心跳包丢失。解决检查ipconfig /all确认私网网卡独立且 IP 可达。用ping -t持续测试私网连通性如果丢包检查交换机端口和网线。必要时调整私网网卡的 MTU 和绑定顺序。5.3 ASM 磁盘组创建失败提示“磁盘已被使用”现象在安装程序里选择磁盘时列表为空或者选中后报错“磁盘已被使用”。原因共享磁盘已经被格式化为 NTFS 或分配了盘符ASM 无法接管。解决用diskpart删除该磁盘上的卷清除只读属性。操作前确认磁盘上没有数据。如果磁盘之前做过 ASM需要用dd或第三方工具清除头部信息。5.4 安装完成后crsctl命令找不到现象安装成功但以oracle用户执行crsctl提示“不是内部或外部命令”。原因环境变量ORACLE_HOME和PATH没有设置或者设置在了错误的用户下。解决手动设置系统环境变量把%ORACLE_HOME%\bin加入PATH。或者每次执行前用完整路径。建议在安装完成后立即配置避免后续操作混淆。5.5 静默安装无报错但集群服务未启动现象setup.exe -silent返回码为 0但crsctl check cluster显示服务离线。原因静默安装没有自动运行配置脚本或者脚本执行失败但被忽略。解决手动进入%ORACLE_HOME%\bin以管理员身份运行crsctl相关配置命令。检查%ORACLE_HOME%\cfgtoollogs下的日志定位具体失败步骤。常见的是 VIP 未分配或 ASM 实例未启动。6. 验证集群可用性与一个实用技巧安装完只是开始真正要确认的是集群能不能扛住节点故障。我一般会做两个验证一是手动重启一个节点看另一个节点是否正常接管 VIP 和 ASM二是用crsctl stat res -t查看所有资源状态确认没有OFFLINE的关键资源。# 查看集群资源详细状态 crsctl stat res -t # 模拟节点故障直接重启一个节点然后在另一节点观察 shutdown /r /t 0逻辑说明crsctl stat res -t以表格形式列出所有集群资源包括 VIP、ASM、数据库实例等。正常状态下关键资源应该显示ONLINE。重启节点后在另一节点执行同样命令观察 VIP 是否漂移过来ASM 是否仍然在线。一个实用技巧把crsctl stat res -t的输出重定向到文件定期对比。如果发现某个资源频繁在ONLINE和OFFLINE之间切换说明底层存储或网络有间歇性问题趁早排查别等到生产环境出事。# 将资源状态输出到文件便于对比 crsctl stat res -t D:\cluster_status_%date:~0,4%%date:~5,2%%date:~8,2%.txt逻辑说明%date%是 Windows 命令行的日期变量截取年月日拼成文件名。这样每天生成一个状态快照出问题时可以回溯。参数上注意日期格式因系统区域设置而异如果格式不对手动改成固定字符串也行。我自己养成的习惯是每次安装完 Grid Infrastructure先不急着装数据库花半小时把集群状态、ASM 磁盘组、OCR 备份全部检查一遍确认无误再往下走。这个习惯帮我省过好几次后悔药——有一次就是提前发现投票磁盘只挂了一个及时补上避免了后期节点分裂。希望帮到你。本文还有配套的精品资源点击获取