简介这份PDF文档面向需要在Linux平台搭建Oracle高可用集群的DBA与运维工程师系统讲解Oracle Linux 7.9环境下Oracle 19C RAC集群的完整安装部署流程。内容涵盖系统规划、主机与网络规划、VMware Workstation Pro 16.1虚拟环境搭建、防火墙与内核参数配置、用户与目录权限设置、YUM源与NTP时间同步、iSCSI共享存储配置以及Grid Infrastructure、ASM磁盘组和数据库实例的安装创建并附有集群健康检查与日常维护思路。资源包共1个PDF文件大小约10.13MB目录结构完整、章节划分清晰便于按模块查阅与对照实操。目前已有600余人学习下载适合具备一定Linux与Oracle基础、希望掌握RAC集群部署与排错方法的技术人员参考。1. 从一份 PDF 说起Oracle 19C RAC 在 Linux 7.9 上到底难在哪很多人拿到「在 Linux 7.9 环境下 Oracle 19C RAC 集群详细安装部署文档.pdf」这类资料第一反应是照着敲命令结果卡在 Grid 基础设施安装前的检查环节或者节点间互信没配好root 脚本跑一半报错。Oracle 19C RAC 不是单实例加个集群外壳那么简单它要求两个及以上节点共享存储、时间同步、网络心跳、内核参数、用户资源限制全部对齐任何一处偏差都会让集群件启动失败。Linux 7.9 作为 RHEL 7 系最后一个稳定小版本内核 3.10 与 systemd 的搭配对 Oracle 19C 是官方认证组合但默认配置离 RAC 要求差得很远。这篇内容面向需要从零搭建测试或生产 RAC 的 DBA 和运维把安装前准备、Grid 安装、数据库软件部署、建库和验证串成一条可复现的路径同时把那些文档里一笔带过、实际会翻车的点讲透。如果你正在搜 oracle19c rac 安装包或者 oracle rac 集群原理先别急着下载把下面这些前置条件理清后面能省掉大量重装时间。2. 安装前的硬性条件从虚拟机到共享磁盘的落地配置2.1 节点规划与 Linux 7.9 最小化安装要点RAC 最少两个节点测试环境我一般用两台虚拟机每台 4 核 8G 起步生产按实际负载加。Linux 7.9 安装时选「Server with GUI」或最小化都行但必须确保openssh-server、chrony、firewalld管理工具在。安装完先做三件事改主机名、配静态 IP、写 hosts。主机名不要用默认 localhost两个节点分别设为rac1和rac2后面 Grid 安装会直接读 hostname 做节点注册。# 两个节点分别执行rac1 示例 hostnamectl set-hostname rac1 # 编辑网卡配置RHEL7 用 nmcli 或改 ifcfg nmcli con mod ens33 ipv4.addresses 192.168.56.11/24 nmcli con mod ens33 ipv4.gateway 192.168.56.1 nmcli con mod ens33 ipv4.dns 114.114.114.114 nmcli con mod ens33 ipv4.method manual nmcli con up ens33逻辑说明静态 IP 是 RAC 的底线DHCP 会导致 VIP 和 SCAN 注册混乱。参数上ipv4.addresses写公网地址两个节点要在同一网段。改完用ip addr确认别只看配置文件。hosts 文件两个节点必须完全一致包含公网、私网、VIP、SCAN 四类地址。私网建议单独加一块网卡不要和公网共用否则心跳流量和业务流量抢带宽集群会误判节点故障。# /etc/hosts 两个节点内容一致 192.168.56.11 rac1 192.168.56.12 rac2 192.168.56.11 rac1-priv 192.168.56.12 rac2-priv 192.168.56.21 rac1-vip 192.168.56.22 rac2-vip 192.168.56.30 rac-scanVIP 必须和公网同网段且未被占用SCAN 建议配 1 个地址用于测试生产按 3 个配。配完用ping两节点互测rac-scan此时 ping 不通是正常的等 Grid 起来才会响应。2.2 共享存储ASM 磁盘组怎么划、权限怎么给RAC 必须用共享存储测试环境常用 VMware 共享磁盘或 iSCSI。每块共享盘在两个节点上看到的设备名要一致常见做法是用/dev/sdb、/dev/sdc这种裸设备或者用udev规则绑定固定名称。Oracle 19C 的 ASM 支持直接使用块设备但权限必须归grid用户和asmadmin组。# 两个节点都执行创建 asmadmin 组和 grid 用户 groupadd -g 54321 oinstall groupadd -g 54322 dba groupadd -g 54323 oper groupadd -g 54324 asmadmin groupadd -g 54325 asmdba groupadd -g 54326 asmoper useradd -u 54321 -g oinstall -G dba,asmdba,asmadmin,asmoper grid useradd -u 54322 -g oinstall -G dba,oper,asmdba oracle参数说明oinstall是 Oracle 清单组dba管数据库asmadmin管 ASM 实例asmdba让 oracle 用户能访问 ASM 磁盘。UID/GID 两个节点必须一致否则 Grid 安装会报用户不匹配。共享盘权限用 udev 规则固定避免重启后设备名漂移。下面以/dev/sdb和/dev/sdc为例实际用scsi_id查 WWID 替换。# /etc/udev/rules.d/99-oracle-asmdevices.rules KERNELsd?1, SUBSYSTEMblock, PROGRAM/usr/lib/udev/scsi_id -g -u -d /dev/$parent, RESULT36000c29xxxxxxxx, SYMLINKasm-disk1, OWNERgrid, GROUPasmadmin, MODE0660逻辑说明RESULT是磁盘 WWID用scsi_id -g -u -d /dev/sdb获取。SYMLINK生成/dev/asm-disk1固定路径Grid 安装时直接选这个路径。改完执行udevadm control --reload-rules udevadm trigger然后ls -l /dev/asm-*确认属主是 grid:asmadmin。2.3 内核参数与用户资源限制别等安装时被 check 拦下Oracle 19C 对内核参数有明确要求Linux 7.9 默认值偏小。两个节点都要改/etc/sysctl.conf改完sysctl -p生效。# /etc/sysctl.conf 追加 fs.aio-max-nr 1048576 fs.file-max 6815744 kernel.shmall 2097152 kernel.shmmax 4294967295 kernel.shmmni 4096 kernel.sem 250 32000 100 128 net.ipv4.ip_local_port_range 9000 65500 net.core.rmem_default 262144 net.core.rmem_max 4194304 net.core.wmem_default 262144 net.core.wmem_max 1048576参数说明kernel.shmmax建议设为物理内存一半或更大测试机 8G 内存设 4294967295 够用。kernel.sem四个值分别是 SEMMSL、SEMMNS、SEMOPM、SEMMNIRAC 下信号量需求比单实例高别照搬单实例模板。用户资源限制改/etc/security/limits.confgrid 和 oracle 都要加。grid soft nofile 1024 grid hard nofile 65536 grid soft nproc 16384 grid hard nproc 16384 grid soft stack 10240 grid hard stack 32768 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft nproc 16384 oracle hard nproc 16384 oracle soft stack 10240 oracle hard stack 32768改完用su - grid后ulimit -a确认。注意 limits.conf 对 systemd 服务不生效如果后面用 systemd 管理资源还要改/etc/systemd/system.conf的DefaultLimitNOFILE。2.4 时间同步与互信chrony 和 SSH 免密RAC 节点时间偏差超过阈值会导致集群件重启用 chrony 同步。两个节点都装chrony一个指向外部源另一个指向第一个节点。# rac1 作为时间源/etc/chrony.conf 加 allow 192.168.56.0/24 local stratum 10 # rac2 指向 rac1 server rac1 iburst启动systemctl enable --now chronyd用chronyc sources看同步状态。互信方面grid 和 oracle 用户都要能互相免密登录包括自己到自己。# grid 用户下执行 ssh-keygen -t rsa ssh-copy-id rac1 ssh-copy-id rac2 # oracle 用户同样操作验证ssh rac2 date不输密码直接返回。这一步不做Grid 安装到「SSH connectivity」必挂。3. Grid 基础设施安装从解压到 root 脚本的完整链路3.1 安装包解压与响应文件准备Oracle 19C Grid 安装包在 Linux 7.9 上要用对应版本解压到 grid 用户家目录或/u01下。目录规划建议/u01/app/grid放 Grid 软件/u01/app/19.0.0/grid放 Grid HOME/u01/app/oracle放数据库软件。mkdir -p /u01/app/grid /u01/app/19.0.0/grid /u01/app/oracle chown -R grid:oinstall /u01/app/grid /u01/app/19.0.0 chown -R oracle:oinstall /u01/app/oracle chmod -R 775 /u01解压 Grid 安装包后进入目录执行./gridSetup.sh图形界面起不来就用静默模式加响应文件。响应文件关键项ORACLE_BASE、ORACLE_HOME、INVENTORY_LOCATION、clusterName、SCAN_NAME、GIMR是否启用。GIMR 是管理仓库测试环境可以关掉省资源生产建议开。# 静默安装示例grid 用户执行 /u01/app/19.0.0/grid/gridSetup.sh -silent -responseFile /home/grid/grid_install.rsp参数说明-silent不弹图形-responseFile指定预填好的响应文件。响应文件里oracle.install.asm.diskGroup.name写 DATAoracle.install.asm.diskGroup.disks写/dev/asm-disk1。如果磁盘组要建多个用逗号分隔。3.2 安装过程中的检查项与常见报错Grid 安装前会跑一堆 check最容易挂的是内核参数不满足、用户资源限制不对、/etc/hosts不一致、共享盘权限不对、时间不同步。报错信息一般会写具体哪项按提示改完点「Fix Check Again」重跑。安装到「Execute Configuration Scripts」时会提示用 root 执行两个脚本orainstRoot.sh和root.sh。两个节点都要执行顺序是先 rac1 再 rac2。root.sh在 rac1 上会启动集群件rac2 上加入集群。# rac1 上 root 执行 /u01/app/oraInventory/orainstRoot.sh /u01/app/19.0.0/grid/root.sh # rac2 上同样执行但 root.sh 会问是否加入集群选 yes逻辑说明orainstRoot.sh创建 oraInventory 并设权限root.sh配置集群件、启动 OHASD、注册 ASM。rac2 执行时如果卡住看/u01/app/19.0.0/grid/log/rac2/root.sh.log常见是互信没配好或时间偏差。3.3 验证集群件状态crsctl 和 olsnodes 怎么读root 脚本跑完用 grid 用户执行crsctl stat res -t看资源状态。正常情况 ASM、ora.LISTENER、ora.ASMNET1LSNR_ASM 等资源都是 ONLINE。olsnodes -n列出节点编号crsctl check cluster -all检查所有节点集群状态。# grid 用户执行 crsctl stat res -t olsnodes -n crsctl check cluster -all如果 ASM 资源起不来先看asmcmd lsdg能不能连上连不上查/u01/app/19.0.0/grid/log/rac1/alert/alert_rac1.log。常见原因是磁盘组没建成功或权限不对。crsctl stat res -t里 ora.DATA.dg 应该是 ONLINE如果 OFFLINE 就手动srvctl start diskgroup -g DATA。4. 数据库软件安装与建库从 DBCA 到实例验证4.1 数据库软件静默安装与补丁数据库软件用 oracle 用户装解压后跑runInstaller。静默模式响应文件里oracle.install.option选INSTALL_DB_SWONLYoracle.install.db.InstallEdition选企业版。Grid 已经装好数据库软件安装时会自动识别集群。# oracle 用户执行 /u01/app/oracle/product/19.0.0/dbhome_1/runInstaller -silent -responseFile /home/oracle/db_install.rsp参数说明ORACLE_HOME写/u01/app/oracle/product/19.0.0/dbhome_1ORACLE_BASE写/u01/app/oracle。安装完同样用 root 执行root.sh两个节点都要跑。跑完用$ORACLE_HOME/OPatch/opatch lspatches看补丁生产建议打最新 RU。4.2 DBCA 建库字符集、内存、ASM 磁盘组选择建库用dbca -silent关键参数-createDatabase、-templateName、-gdbName、-sid、-characterSet、-memoryPercentage、-storageType ASM、-diskGroupName DATA。dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbName racdb -sid racdb \ -responseFile NO_VALUE \ -characterSet AL32UTF8 \ -memoryPercentage 40 \ -storageType ASM \ -diskGroupName DATA \ -recoveryGroupName FRA \ -sysPassword Oracle123 \ -systemPassword Oracle123逻辑说明-memoryPercentage 40表示用物理内存 40% 给 SGAPGA测试机 8G 内存给 3G 左右。-characterSet AL32UTF8是通用字符集别选 ZHS16GBK 除非有历史兼容需求。-recoveryGroupName FRA指定快速恢复区磁盘组没建 FRA 磁盘组就先建或去掉这项。建库过程会跑一段时间看$ORACLE_BASE/cfgtoollogs/dbca/racdb下的日志。完成后用srvctl status database -d racdb看实例状态两个节点都应该是 Open。4.3 实例连通性验证监听、SCAN、TAF 怎么测建完库先看监听srvctl status listener再用lsnrctl status看 SCAN 监听是否注册了服务。连接测试用sqlplus sys/Oracle123rac-scan:1521/racdb as sysdba能连上说明 SCAN 正常。# 查看服务注册 srvctl status service -d racdb # 连接测试 sqlplus sys/Oracle123rac-scan:1521/racdb as sysdbaTAF 测试在 rac1 上连入后查select instance_name from v$instance;然后在 rac2 上srvctl stop instance -d racdb -i racdb2看会话是否自动切到 rac1。如果没切检查服务是否配了 TAF 策略srvctl config service -d racdb看TAFPolicy是不是 BASIC。5. 避坑与排查那些文档不会写的翻车现场5.1 坑一root.sh 在第二个节点卡住不动现象rac1 的 root.sh 跑完正常rac2 执行时停在「Adding daemon to inittab」或「CRS-2672」很久。原因通常是 rac2 到 rac1 的互信没配好或者 rac2 的 chrony 没同步导致时间偏差超过 5 分钟。解决先在 rac2 上ssh rac1 date确认免密再用chronyc sources看时间源偏差大就重启 chronyd。如果还卡看 rac2 的$GRID_HOME/log/rac2/root.sh.log里面会写具体哪步超时。5.2 坑二ASM 磁盘组建好但数据库建库时找不到现象Grid 安装时建了 DATA 磁盘组asmcmd lsdg能看到但 DBCA 建库时-diskGroupName DATA报「磁盘组不存在」。原因是 DBCA 用 oracle 用户连 ASM而 oracle 用户可能没在 asmdba 组里或者 ASM 实例的密码文件没配。解决确认id oracle输出包含 asmdba用asmcmd以 sysasm 登录sqlplus sys/Oracle123ASM as sysasm看能否连上。如果连不上检查$ORACLE_HOME/network/admin下的listener.ora和tnsnames.ora是否配了 ASM 实例。5.3 坑三SCAN 能 ping 通但 sqlplus 连不上现象ping rac-scan通但sqlplus sys/xxxrac-scan:1521/racdb报 ORA-12545 或 ORA-12170。原因是 SCAN 监听没注册服务或者防火墙挡了 1521。解决先lsnrctl status看 SCAN 监听是否 RUNNING再看srvctl status scan_listener。如果监听正常检查firewalld是否关了systemctl stop firewalld systemctl disable firewalld。生产环境要开端口而不是关防火墙测试环境图省事关掉。5.4 坑四节点重启后集群件不自动起现象虚拟机重启后crsctl stat res -t显示资源 OFFLINE手动crsctl start crs才能起来。原因是 OHASD 没设开机自启或者 systemd 的oracle-ohasd服务被禁用。解决systemctl enable oracle-ohasd再用crsctl enable crs确认集群件自启。如果还不行看/etc/oracle/olr.loc是否存在OLR 丢了要重建。5.5 坑五建库时内存参数给太大导致实例起不来现象DBCA 建库到 80% 报 ORA-27102 out of memory实例起不来。原因是-memoryPercentage给太高或者kernel.shmmax太小。解决先free -g看可用内存-memoryPercentage降到 30 以下同时确认kernel.shmmax大于 SGA 目标值。如果已经建了一半删库重来比改参数快dbca -silent -deleteDatabase -sourceDB racdb。6. 进阶技巧用 srvctl 和 crsctl 做日常巡检与故障演练装完只是开始RAC 的价值在故障转移和负载均衡日常巡检要盯几个关键点。我一般每周跑一次crsctl stat res -t和srvctl status database -d racdb看有没有资源意外 OFFLINE。ASM 磁盘组用asmcmd lsdg看%FREE低于 20% 就要加盘或清归档。归档空间用sqlplus查v$recovery_file_destFRA 满了会导致数据库挂起。故障演练建议每季度做一次srvctl stop instance -d racdb -i racdb2模拟节点宕机看业务连接是否切到 rac1。再crsctl stop crs模拟集群件崩溃看 OHASD 是否自动重启。演练前备份 OCR 和 Voting Diskocrconfig -export /tmp/ocr_backup.exp和crsctl query css votedisk记下路径。如果演练后集群起不来用crsctl start crs -excl -nocrs进独占模式排查。下面这张表是我常用的巡检命令清单按频率分检查项命令频率集群资源状态crsctl stat res -t每周数据库实例状态srvctl status database -d racdb每周ASM 磁盘组空间asmcmd lsdg每周归档空间sqlplus 查 v$recovery_file_dest每周OCR 备份ocrconfig -export每月故障转移演练srvctl stop instance每季度最后说个血泪经验RAC 环境最怕的是「以为配好了没验证」。互信、时间同步、共享盘权限这三样装之前用脚本批量跑一遍比装到一半报错再回头查省事得多。我习惯在 Grid 安装前写个 check 脚本把ssh免密、chronyc sources、ls -l /dev/asm-*、ulimit -a全跑一遍输出到文件对比两个节点。这个习惯帮我省了至少三次重装。希望帮到你。本文还有配套的精品资源点击获取
企业数字化 ERP 产品动态
相关推荐
SQL Server餐厅点餐系统数据库设计:从表结构到事务并发实战 简介:这份数据库课程设计资源面向高校计算机相关专业学生,以SQL Server为数据库平台,完整实现了一套餐厅点餐系统,可用于课程设计参考、数据库综合实践或毕业设计选题借鉴。压缩包共298个文件,约24.29MB,以… · 2026/9/25 16:01:10
Gradio本地启动失败?四层诊断法排查HTTP通信链路 1. 这不是“打不开”,而是本地开发环境里最典型的 HTTP 通信链路断裂问题你敲下gradio launch,终端显示Running on http://127.0.0.1:7860,浏览器地址栏输入http://127.0.0.1:7860—— 页面空白、报错“连接被拒绝”、或者直接跳转到搜索引擎… · 2026/9/25 16:01:10
Atlas 300V 24G 推理加速卡详解:从架构原理到 YOLO 部署实战 最近总有人在社区和群里问“Atlas 300V 24G 是运算加速卡吗”,同时“Atlas 部署 YOLO”也成了搜索热词。作为一个在昇腾这套硬件上真刀真枪跑过 YOLOv5、YOLOv8,并且把模型推到过客户现场的老用户,我太知道这类问题背后藏着多少疑惑了&#x… · 2026/9/25 16:01:10
GEOFlow知识库搭建完整指南:pgvector向量检索让AI内容生产有据可依 GEOFlow知识库搭建完整指南:pgvector向量检索让AI内容生产有据可依 【免费下载链接】GEOFlow Open-source GEO content engineering and multi-site distribution platform with AI quality inspection, illustrated admin help, hosted sites, browser-assisted pu… · 2026/9/25 16:23:31
Agent Skills 实用指南:构建可复用智能体技能体系 "agent-skills"这个词,最近在AI圈子里被反复提起。我做智能体开发也有两三年了,从最早的提示词堆砌,到后来的函数调用,再到现在围绕技能(skills)来构建智能体,最大的感受是࿱… · 2026/9/25 16:23:31
Atlas 300V 24G推理加速卡上部署YOLO:从模型转换到性能调优全攻略 1. Atlas 300V 24G到底是个什么卡1.1 它就是热搜里问的那张“运算加速卡”先说结论:是的,Atlas 300V 24G就是一张标准的运算加速卡,但你要注意它并不是显卡,更不是用来打游戏的。它是昇腾生态里面向数据中心和边缘侧推理场景的PCI… · 2026/9/25 16:23:13
AI Agent工程化:分层交付架构设计与落地实践 1. 为什么“分层交付”是 AI Agent 工程化的第一道生死线做 AI Agent 项目最怕什么?不是模型不够聪明,而是你把所有逻辑——意图识别、工具调用、状态管理、结果渲染——全塞进一个巨大的提示词或者一个巨型函数里。我见过太多团队,Demo 阶段… · 2026/9/25 16:23:07
昇腾Atlas 300V 24G部署YOLOv8推理实战与排障 1. 先搞明白Atlas 300V 24G到底是什么1.1 一张“推理加速卡”而不是“图形卡”我最初拿到Atlas 300V 24G这张卡的时候,也跟不少刚接触昇腾生态的朋友一样,第一反应是“它是不是跟游戏显卡一样,插上去就能跑图形渲染”。这个理解其实是错的&am… · 2026/9/25 16:23:00
一人+AI工作流重构:IPO基元与模型路由实战指南 1. 工作流重构的底层逻辑:为什么一人AI能跑通复杂流程1.1 从“人肉流水线”到“工序化拆解”的认知转变大多数人对工作流的理解还停留在“把任务串起来”的阶段——用个看板工具,画几条泳道,把任务从“待办”拖到“完成”,就觉得自… · 2026/9/25 16:22:54
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37