如何一步步完成RAC Oracle集群环境安装部署?

来源:AI教程网作者:霓渡头衔:草根站长
导读:本期聚焦于小伙伴创作的《如何一步步完成RAC Oracle集群环境安装部署?》,敬请观看详情。把两套独立数据库做成可故障切换的集群,核心在于共享存储与节点间心跳的规划。RAC Oracle安装前需确认操作系统版本、内核参数与多路径软件一致,否则会在CRS启动阶段报错。实际部署中,先配置主机名解析与NTP时间同步,再借助ASM管理数据盘,可避免人为分区错误。对比单机版,RAC多出私有网络网卡绑定与voting disk投票盘初始化步骤,这部分若遗漏会导致节点被踢出集群。本文梳理从环境准备、Grid基础架构到数据库实例创建的完整路径,并给出常见超时与权限问题的处理思路,帮助运维人员少走弯路。

RAC Oracle指的是Oracle Real Application Clusters,它允许两个以上实例同时访问同一套数据库文件,从而实现高可用与负载均衡。安装RAC并不是简单重复单机Oracle的步骤,而是要先搭好集群基础软件Grid Infrastructure,再在其之上建立数据库。整个过程对网络、存储和权限的要求都更为严格。

一、安装前的环境准备

在动手执行任何安装程序之前,必须保证所有节点满足统一的硬件与系统条件。首先是操作系统,通常选择Oracle Linux或RHEL的特定版本,并且每个节点的小版本要保持一致,不能一个节点是7.6另一个节点是7.9却打了不同的补丁集。内核参数如 semaphores、file-max、ip_local_port_range 需要按官方文档调整,否则CSS进程在启动时可能报资源不足。

其次是用户和组规划。RAC需要 grid 和 oracle 两个用户,分别对应集群软件与数据库软件,并且两者的属组(oinstall、dba、asmadmin等)必须存在且gid相同。很多初次部署的人在这里栽跟头,因为用useradd时不同节点自动分配的gid不一致,后续SSH等价性配置就会失败。建议手动指定gid创建组和用户。

# 在所有节点以相同gid创建组
groupadd -g 1000 oinstall
groupadd -g 1001 dba
groupadd -g 1002 asmadmin
groupadd -g 1003 asmdba
# 创建grid与oracle用户并指定附属组
useradd -u 1001 -g oinstall -G dba,asmadmin,asmdba grid
useradd -u 1002 -g oinstall -G dba,asmdba oracle

1.1 网络与时钟要求

RAC至少使用两块网卡:公共网络(public)用于客户端连接,私有网络(private)用于节点间缓存融合和心跳。私有网络务必使用独立交换机或VLAN,并且关闭网卡卸载功能以防包乱序。主机名解析不能只靠DNS,还要在 /etc/hosts 中写明每个节点的公网、私网以及对应的虚拟IP(VIP)。

时间同步是另一个隐形杀手。如果节点间时间差超过特定阈值,Clusterware会认为节点异常并将其驱逐。生产环境应部署NTP或Chrony,且私有网络接口不参与NTP服务,仅公网同步外部时钟源即可。下面展示简化的hosts文件结构:

# 公网与私网规划示例
127.0.0.1   localhost
192.168.0.11  rac1
192.168.0.12  rac2
10.10.10.11   rac1-priv
10.10.10.12   rac2-priv
192.168.0.21  rac1-vip
192.168.0.22  rac2-vip

二、共享存储与ASM配置

RAC的数据库文件必须位于所有节点都能并发访问的共享存储上。常见方案包括SAN上的LUN通过多路径软件映射,或使用iSCSI目标。Oracle推荐使用ASM(Automatic Storage Management)来管理这些磁盘,而不是直接用文件系统。ASM将磁盘组抽象成类似于逻辑卷的容器,并自带冗余与条带化。

在Linux下,需要把共享盘标记为ASM磁盘。早期用asmlib,现在更多使用udev规则绑定设备持久名。要注意的是,磁盘权限必须属于 grid:asmadmin,否则Grid安装时扫描不到。以下udev规则可将SCSI磁盘绑定为asm_disk1:

# /etc/udev/rules.d/99-oracle-asm.rules 示例
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --device=/dev/$name", RESULT=="36000c29abcd1234", SYMLINK+="asm_disk1", OWNER="grid", GROUP="asmadmin", MODE="0660"

2.1 多路径与设备名稳定

如果后端存储通过多条链路接入,必须配置multipath使多条路径合并为一个稳定设备名,不然重启后/dev/sdX可能错乱。配置完成后用 multipath -ll 确认状态为active ready,然后再写udev规则匹配wwid。这样无论系统识别顺序如何,ASM都能找到正确的盘。

对于投票盘(voting disk)和OCR(Oracle Cluster Registry),Grid安装程序会在创建ASM磁盘组时自动放置。建议单独建一个小型磁盘组(如GRIDDG)专门存放集群元数据,与数据磁盘组分离,降低管理风险。

三、Grid Infrastructure安装

Grid Infrastructure是RAC的根基,包含OHAS、CSS、CRS等守护进程。安装时以 grid 用户登录,执行 runInstaller,选择“Install and Configure Grid Infrastructure for a Cluster”。安装向导会要求填写集群名称、扫描IP(SCAN)、节点列表以及SSH等价性测试。

SSH等价性是为了让安装程序能在各节点间无密码执行命令。如果前面用户gid不一致或/home/grid权限过宽,这里就会卡住。通过界面自动配置失败时可手动用 ssh-keygen 与 ssh-copy-id 打通。安装末尾会提示以root执行两个脚本:orainstRoot.sh 和 root.sh,其中 root.sh 会启动集群并初始化OCR,耗时较长且不能中断。

# 以root在各节点按顺序执行
/u01/app/oraInventory/orainstRoot.sh
/u01/app/11.2.0/grid/root.sh
# 检查集群状态
su - grid -c "crsctl check cluster"

3.1 常见安装故障

一类典型问题是 root.sh 执行到启动CSS时超时,日志显示投票盘无法访问。这通常是多路径或udev权限错误,需要返回存储章节核对。另一类是时间不同步导致节点被剔除,此时要暂停安装,先修正NTP再清理配置重跑。

安装完成后可用 crsctl stat res -t 查看资源状态,正常应看到ora.crsd、ora.cssd 以及网络资源均为ONLINE。只有Grid完全正常,才能进行下一步数据库软件安装。

四、Oracle数据库软件与实例创建

Grid就绪后,切换为 oracle 用户运行数据库安装程序,选择“Oracle Real Application Clusters database installation”。此处只需装软件,不建库。完成后用 dbca 启动数据库配置助手,选择“Create a Database with RAC”,并勾选参与实例的所有节点。

dbca过程中要指定前面建好的ASM数据磁盘组,并设置字符集、内存目标等。每个节点会自动生成一个实例(如orcl1、orcl2),它们共享同一个数据库。创建结束可通过 srvctl status database -d orcl 确认所有实例都已运行。

# 查看RAC数据库整体状态
srvctl status database -d orcl
# 输出示例:
# Instance orcl1 is running on node rac1
# Instance orcl2 is running on node rac2

4.1 连接与高可用验证

客户端可通过SCAN IP或VIP连接,Oracle会把连接按负载分配到不同实例。为验证故障切换,可在一个节点执行 crsctl stop instance -d orcl -i orcl1,观察其他节点实例是否继续提供服务且会话能否自动重连。这一步是检验RAC价值的关键。

最后提醒,RAC不是备份替代方案。共享存储损坏仍会导致全部实例不可用,因此RMAN备份与异地容灾依旧不可或缺。安装只是起点,后续的打补丁、添加节点和性能调优才是长期工作。

RAC_Oracle集群安装Oracle_ASM修改时间:2026-08-03 14:09:44

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。