Oracle RAC集群部署实战:双节点配置与共享存储方案
在企业级数据中台架构中,高可用性与弹性扩展能力是核心诉求。Oracle Real Application Clusters(RAC)作为Oracle数据库的集群解决方案,通过多节点共享同一数据库实例,实现负载均衡、故障自动切换与零停机维护,是构建稳定、高性能数据服务的首选架构。本文将深入解析Oracle RAC在双节点环境下的完整部署流程,涵盖硬件选型、共享存储配置、网络规划、集群软件安装与验证,为企业构建可靠的数据基础设施提供可落地的实践指南。
Oracle RAC允许多个节点(服务器)同时访问同一个数据库,所有节点共享同一组数据文件、控制文件和重做日志。这种“共享一切”的架构依赖于三个关键技术组件:
相较于单实例数据库,RAC的优势在于:
📌 适用于:金融交易系统、电信计费平台、政务数据中台等对连续性要求极高的场景。
| 组件 | 推荐配置 |
|---|---|
| CPU | 至少8核,建议16核以上(每节点) |
| 内存 | 32GB起步,建议64GB+(根据负载调整) |
| 操作系统 | Oracle Linux 8.x / Red Hat Enterprise Linux 8.x(官方支持) |
| 磁盘空间 | 系统盘 ≥100GB;共享存储 ≥500GB(视数据量扩展) |
⚠️ 注意:所有节点必须使用相同的操作系统版本、内核参数与补丁级别,避免兼容性问题。
Oracle RAC要求三张独立网络,物理隔离以保障性能与稳定性:
| 网络类型 | 用途 | 推荐带宽 | IP示例 |
|---|---|---|---|
| 公共网络(Public) | 客户端连接、应用访问 | 1Gbps/10Gbps | 192.168.1.10, 192.168.1.11 |
| 私有网络(Private/Interconnect) | 节点间缓存同步、心跳检测 | 10Gbps(必须) | 10.10.10.10, 10.10.10.11 |
| 虚拟IP(VIP) | 故障转移时的客户端重定向 | 同公共网络 | 192.168.1.100, 192.168.1.101 |
🔧 建议:私有网络使用专用网卡,禁用交换机端口的流量控制与节能模式,避免心跳丢包。
共享存储是RAC的基石。推荐以下两种方案:
| 方案 | 说明 | 适用场景 |
|---|---|---|
| SAN + ASM | 使用光纤通道或iSCSI连接存储阵列,通过Oracle ASM管理磁盘组 | 企业级生产环境,高IOPS需求 |
| NFS over 10Gbps | 通过高速网络挂载NAS存储,需配置NFSv4与lockd服务 | 中小型部署,成本敏感型项目 |
✅ 推荐方案:SAN + ASM。ASM(Automatic Storage Management)是Oracle原生的存储管理工具,支持条带化、镜像、动态扩容,是RAC的标配。
存储分区建议:
在两个节点上执行统一配置:
# 关闭防火墙与SELinuxsystemctl stop firewalld && systemctl disable firewalldsetenforce 0sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config# 创建用户组与用户groupadd oinstallgroupadd dbauseradd -g oinstall -G dba oracleecho "oracle:password" | chpasswd# 配置内核参数(/etc/sysctl.conf)fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 536870912000kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576# 应用配置sysctl -p# 限制配置(/etc/security/limits.conf)oracle soft nofile 1024oracle hard nofile 65536oracle soft nproc 16384oracle hard nproc 16384oracle soft stack 10240oracle hard stack 32768所有节点必须保持时间同步,误差不得超过5秒:
yum install ntp -ysystemctl enable ntpd && systemctl start ntpdntpdate -u pool.ntp.org✅ 推荐使用专用NTP服务器,避免公网延迟影响。
在两个节点间建立oracle用户无密码SSH登录:
su - oraclessh-keygen -t rsassh-copy-id oracle@node1ssh-copy-id oracle@node2验证:ssh node1 date 和 ssh node2 date 应无需密码返回时间。
下载介质从Oracle官网下载 Oracle Grid Infrastructure 19c 或 21c(推荐19c长期支持版)。
解压并运行安装程序
unzip linuxx64_193000_grid_home.zipcd grid./runInstaller安装向导关键选项
执行root脚本安装过程中,系统会提示在两个节点上分别执行两个脚本:
# 在node1执行/u01/app/oraInventory/orainstRoot.sh/u01/app/19.0.0/grid/root.sh# 在node2执行/u01/app/19.0.0/grid/root.sh验证集群状态安装完成后,执行:
crsctl check clustercrsctl stat res -t输出应显示所有资源(ora.cssd, ora.crsd, ora.diskmon)为 ONLINE。
解压数据库安装包下载Oracle Database 19c/21c软件包,解压至相同路径(如 /u01/app/oracle/product/19.0.0/dbhome_1)
运行安装程序
cd database./runInstaller关键配置项
执行root脚本在两个节点上分别执行:
/u01/app/oracle/product/19.0.0/dbhome_1/root.sh使用DBCA(Database Configuration Assistant)图形化工具创建数据库:
启动DBCA:
dbca选择 “Create a Database” → “RAC Database”
设置:
ORCLorcl.example.com完成创建后,验证数据库状态:
srvctl status database -d ORCL输出应显示两个实例均处于 OPEN 状态。
手动关闭一个节点的数据库服务:
srvctl stop instance -d ORCL -i ORCL1观察客户端连接是否自动切换至另一节点,应用是否无感知。
crsctl stat res -t 监控集群资源asmcmd 查看ASM磁盘组使用率| 问题 | 原因 | 解决方案 |
|---|---|---|
| OCR/Voting Disk无法识别 | 磁盘未初始化或权限错误 | 使用 oracleasm createdisk 初始化,确保属主为oracle:oinstall |
| 节点间心跳超时 | 私有网络延迟高或交换机配置不当 | 使用10Gbps网卡,关闭Jumbo Frame冲突,启用流量优先级 |
| DBCA创建失败 | DNS解析异常或主机名不一致 | 确保 /etc/hosts 中所有节点IP与主机名正确映射 |
| ASM磁盘组无法挂载 | 多路径软件未配置 | 安装multipath-tools并配置多路径策略 |
虽然Oracle RAC在传统数据中心仍具不可替代性,但随着云原生架构兴起,建议企业评估以下路径:
🚀 对于希望快速验证RAC架构可行性的团队,可申请试用专业云平台提供的RAC模拟环境,降低硬件投入风险。申请试用&https://www.dtstack.com/?src=bbs
💡 企业数据中台建设不应仅关注技术选型,更需匹配运维能力。RAC虽强大,但对DBA技能要求极高。建议配套培训与自动化运维工具。申请试用&https://www.dtstack.com/?src=bbs
🔧 若您的团队正在规划数字孪生系统中的实时数据引擎,Oracle RAC可作为高可靠数据源底座。结合ETL与流处理框架,构建端到端的实时分析流水线。申请试用&https://www.dtstack.com/?src=bbs
Oracle RAC部署是一项系统工程,涉及硬件、网络、操作系统、集群软件与数据库的深度协同。双节点配置虽非最大规模,但足以支撑中大型企业核心业务的高可用需求。遵循本文所述步骤,结合官方文档与最佳实践,可显著降低部署风险,提升系统稳定性。
在数据驱动的时代,架构的健壮性决定业务的连续性。RAC不是终点,而是迈向智能数据中台的重要基石。
申请试用&下载资料