Oracle RAC集群部署实战:双节点高可用配置
在现代企业数据架构中,数据库的高可用性与连续性是保障业务稳定运行的核心要素。尤其在数据中台、数字孪生和数字可视化等对实时性与数据一致性要求极高的场景下,单点故障可能导致决策延迟、可视化中断甚至业务停摆。Oracle Real Application Clusters(RAC)作为Oracle官方提供的企业级高可用解决方案,通过多节点共享存储架构,实现数据库实例的并行运行与故障自动切换,是构建7×24小时不间断服务系统的首选方案。
本文将基于真实生产环境,系统讲解Oracle RAC双节点部署的完整流程,涵盖硬件规划、操作系统配置、共享存储搭建、集群软件安装、数据库创建及关键验证步骤,确保部署过程可复现、可审计、可运维。
Oracle RAC要求至少两个节点共享同一套存储系统,每个节点运行独立的Oracle实例,但访问相同的数据库文件。双节点架构可实现负载均衡与故障转移,适用于中大型企业核心业务系统。
⚠️ 注意:Oracle RAC不支持本地磁盘作为共享存储。必须使用集群文件系统(如OCFS2)或ASM(Automatic Storage Management)。
| 网络类型 | 用途 | 推荐IP段 | 带宽 |
|---|---|---|---|
| 公共网络 | 客户端连接 | 192.168.10.0/24 | 1Gbps |
| 私有网络 | 节点间心跳与缓存融合 | 10.10.10.0/24 | 10Gbps(必须) |
私有网络必须独立于公共网络,且不得经过交换机或防火墙,避免心跳丢包导致脑裂(Split-Brain)。
以Oracle Linux 8.9或Red Hat Enterprise Linux 8.9为例,需完成以下基础配置:
# 编辑 /etc/hosts,确保所有节点互解析192.168.10.10 racnode1.example.com racnode1192.168.10.11 racnode2.example.com racnode210.10.10.10 racnode1-priv.example.com racnode1-priv10.10.10.11 racnode2-priv.example.com racnode2-priv192.168.10.12 racnode1-vip.example.com racnode1-vip192.168.10.13 racnode2-vip.example.com racnode2-vip192.168.10.14 scan.example.com scanSCAN(Single Client Access Name)是Oracle RAC的客户端访问入口,由DNS或GNS解析为3个IP,实现负载均衡。
groupadd -g 54321 oinstallgroupadd -g 54322 dbagroupadd -g 54323 opergroupadd -g 54324 asmadmingroupadd -g 54325 asmdbagroupadd -g 54326 asmoperuseradd -u 54321 -g oinstall -G dba,asmdba,oper oracleuseradd -u 54322 -g oinstall -G asmadmin,asmdba,asmoper grid编辑 /etc/sysctl.conf:
fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 17179869184kernel.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 32768grid soft nofile 1024grid hard nofile 65536grid soft nproc 16384grid hard nproc 16384grid soft stack 10240grid hard stack 32768Oracle RAC依赖ASM管理共享存储。推荐使用3个磁盘:
使用/dev/sdb, /dev/sdc, /dev/sdd作为共享磁盘,需在所有节点上可见。
# 编辑 /etc/udev/rules.d/99-oracle-asm.rulesKERNEL=="sdb", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29a1b2c3d4e5f6a7b8c9d0e1f2", SYMLINK+="asm-ocr", OWNER="grid", GROUP="asmadmin", MODE="0660"KERNEL=="sdc", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29a1b2c3d4e5f6a7b8c9d0e1f3", SYMLINK+="asm-vote", OWNER="grid", GROUP="asmadmin", MODE="0660"KERNEL=="sdd", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29a1b2c3d4e5f6a7b8c9d0e1f4", SYMLINK+="asm-data", OWNER="grid", GROUP="asmadmin", MODE="0660"重载规则:
udevadm control --reload-rulesudevadm trigger验证:
ls -l /dev/asm-*/u01/app/gridcd /u01/app/grid/install./runInstallerDATA,添加/dev/asm-data/dev/asm-ocr和/dev/asm-vote安装完成后,以root身份执行两个脚本:
/u01/app/oraInventory/orainstRoot.sh/u01/app/19.0.0/grid/root.sh验证集群状态:
crsctl check clustercrsctl stat res -t/u01/app/oracle/product/19c/dbhome_1cd /u01/app/oracle/product/19c/dbhome_1/install./runInstaller安装完成后,以root执行:
/u01/app/oracle/product/19c/dbhome_1/root.sh使用DBCA(Database Configuration Assistant)图形化工具创建数据库:
dbcaorcl.example.comorcl1, orcl2+DATA✅ 创建完成后,使用
srvctl status database -d orcl验证两个实例均处于OPEN状态。
在节点1上强制关闭数据库实例:
srvctl stop instance -d orcl -i orcl1观察节点2是否自动接管服务,客户端连接是否无中断。
# 查看集群资源crsctl stat res -t# 查看数据库实例状态srvctl status database -d orcl# 查看ASM磁盘组asmcmd lsdg# 查看监听器lsnrctl status/u01/app/19.0.0/grid/log/racnode1//u01/app/oracle/diag/rdbms/orcl/orcl1/trace//u01/app/19.0.0/grid/log/racnode1/asm/asmcmd iostat分析磁盘延迟💡 建议部署Zabbix或Oracle Enterprise Manager监控集群健康度,设置心跳丢失、磁盘组满、实例宕机等告警阈值。
| 问题 | 原因 | 解决方案 |
|---|---|---|
| OCR/Voting Disk不可用 | 磁盘权限错误 | 检查udev规则与属主(grid:asmadmin) |
| 节点间心跳中断 | 私有网络被防火墙拦截 | 确保私网直连,关闭iptables |
| DBCA创建失败 | 时间不同步 | 使用NTP同步所有节点时间(chronyd) |
| ASM磁盘无法识别 | 多路径未配置 | 安装multipath-tools并配置multipath.conf |
Oracle RAC部署虽复杂,但其带来的高可用性、负载均衡与零停机维护能力,是支撑数据中台、数字孪生系统持续运行的底层保障。一次成功的RAC部署,意味着您的核心业务将具备抵御硬件故障、网络波动与维护窗口的能力。
为加速部署效率,降低运维风险,建议企业优先采用自动化部署工具(如Ansible)或云原生容器化方案。若您尚未拥有完整测试环境,可申请试用专业数据库管理平台,快速验证RAC架构可行性:申请试用
在生产环境上线前,务必进行压力测试与灾难恢复演练。建议每季度执行一次故障切换演练,确保团队熟悉应急流程。
再次强调:申请试用 可帮助您在非生产环境中快速搭建RAC原型,验证架构可行性,降低试错成本。
对于希望实现数据可视化与实时分析的企业,RAC不仅是数据库的高可用方案,更是数据流稳定输出的基石。没有稳定的底层,再华丽的可视化图表也将失去意义。
申请试用 —— 让您的数据架构,从可靠开始。
申请试用&下载资料