Oracle RAC部署是构建高可用、高并发企业级数据库架构的核心技术之一,尤其适用于对数据连续性要求严苛的金融、电信、制造和能源等行业。在数据中台、数字孪生与数字可视化系统中,Oracle RAC通过多节点并行处理能力,显著提升数据读写吞吐量,保障业务系统7×24小时稳定运行。本文将深入解析Oracle RAC双节点集群的部署实战流程,涵盖操作系统配置、共享存储搭建、网络规划、集群软件安装及数据库创建等关键环节,帮助技术团队系统性掌握企业级数据库集群的构建方法。
Oracle Real Application Clusters(RAC)允许多个数据库实例同时访问同一套数据库文件,实现负载均衡与故障自动切换。在双节点部署中,两个物理服务器共享同一存储系统,通过私有网络同步内存缓存(Cache Fusion),确保数据一致性。
核心组件包括:
⚠️ 注意:Oracle RAC部署对硬件和网络环境要求严格,任何单点故障(如网络延迟、存储延迟、时钟不同步)都可能导致集群分裂(Split-Brain)。
每个节点需安装相同版本的操作系统,并完成以下基础配置:
主机名与hosts文件为每个节点设置唯一主机名(如rac1.example.com、rac2.example.com),并在/etc/hosts中添加所有节点的公网与私网IP映射:
192.168.1.10 rac1.example.com rac1192.168.1.11 rac2.example.com rac2192.168.2.10 rac1-priv.example.com rac1-priv192.168.2.11 rac2-priv.example.com rac2-priv192.168.1.100 rac-scan.example.com rac-scan用户与组创建创建oracle用户与oinstall、dba、oper组:
groupadd oinstallgroupadd dbauseradd -g oinstall -G dba oraclepasswd oracle内核参数优化编辑/etc/sysctl.conf,添加如下参数以支持大内存与高并发:
fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 10737418240kernel.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集群节点间时间偏差不得超过1秒,否则Clusterware将拒绝启动。推荐使用Chrony:
yum install chrony -ysystemctl enable --now chronydchronyc sources确保两节点时间同步,使用date命令验证。
Oracle RAC必须使用共享存储,推荐使用ASM(Automatic Storage Management)进行磁盘管理。
使用iSCSI或光纤通道(FC)连接共享存储,为每个节点提供至少以下磁盘:
| 磁盘用途 | 大小 | 数量 |
|---|---|---|
| OCR/Voting Disk | 10GB | 3(冗余) |
| ASM Data Disk | 100GB+ | 2~4 |
| ASM Flash Recovery Area | 50GB | 1 |
在Linux中启用多路径,避免单链路故障:
yum install device-mapper-multipath -ysystemctl enable --now multipathdmultipath -ll编辑/etc/multipath.conf,定义别名:
defaults { user_friendly_names yes}devices { device { vendor "NETAPP" product "LUN" path_grouping_policy multibus path_selector "round-robin 0" hardware_handler "0" failback immediate }}重启服务并验证:
systemctl restart multipathdmultipath -ll使用oracleasm工具标记磁盘:
oracleasm createdisk DATA1 /dev/mapper/data1oracleasm createdisk FRA1 /dev/mapper/fra1oracleasm listdisks✅ 推荐使用ASM而非裸设备,ASM具备自动负载均衡、在线重平衡、条带化等高级功能,显著降低运维复杂度。
从Oracle官网下载对应版本的Grid Infrastructure(如19c),解压至/u01/app/grid:
unzip linuxx64_193000_grid_home.zip -d /u01/app/gridchown -R oracle:oinstall /u01/app/grid推荐使用静默安装,便于自动化:
cd /u01/app/grid/grid./runInstaller -silent -responseFile /tmp/grid.rsp -ignorePrereqFailure响应文件需提前配置:
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0INVENTORY_LOCATION=/u01/app/oraInventoryORACLE_HOME=/u01/app/19.0.0/gridORACLE_BASE=/u01/app/gridoracle.install.asm.SYSASMPassword=YourSysAsmPass123!oracle.install.asm.diskGroup.name=DATAoracle.install.asm.diskGroup.redundancy=EXTERNALoracle.install.asm.diskGroup.disks=/dev/oracleasm/disks/DATA1oracle.install.asm.diskGroup.diskDiscoveryString=/dev/oracleasm/disks/*安装过程中,按提示在两个节点上分别执行root.sh脚本。
crsctl check clustercrsctl stat res -tolsnodes -n输出应显示所有节点为“ONLINE”,资源状态为“ONLINE”。
在两个节点上分别安装Oracle Database 19c软件(不创建数据库):
unzip linuxx64_193000_db_home.zip -d /u01/app/oracle/product/19.0.0/dbhome_1chown -R oracle:oinstall /u01/app/oracle使用静默安装:
./runInstaller -silent -responseFile /tmp/db.rsp -ignorePrereqFailure执行root.sh脚本。
dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbname RACDB \ -sid RACDB \ -responseFile NO_VALUE \ -characterSet AL32UTF8 \ -nationalCharacterSet AL16UTF16 \ -registerWithDirService FALSE \ -listeners LISTENER \ -nodeinfo rac1,rac2 \ -storageType ASM \ -diskGroupName DATA \ -recoveryGroupName FRA \ -databaseType MULTIPURPOSE \ -memoryPercentage 40 \ -emConfiguration NONE✅ 创建过程中,DBCA会自动在ASM中创建控制文件、数据文件、重做日志,并注册监听器。
srvctl status database -d RACDBsqlplus / as sysdbaSQL> select instance_name, host_name from v$instance;应返回两个实例,分别运行在rac1与rac2上。
SELECT * FROM v$ges_stat WHERE name LIKE '%conversion%';高转换次数(Conversion)可能表示跨节点访问频繁,需优化应用SQL或增加私网带宽。
手动关闭一个节点:
shutdown -h now观察另一个节点是否自动接管服务,客户端连接是否无中断。
使用SQL*Plus从多个客户端并发连接rac-scan.example.com,验证连接是否在两个节点间均衡分配。
ocrconfig -export导出配置。Oracle RAC部署不仅是技术实现,更是企业数据中台高可用能力的基石。在数字孪生系统中,实时数据采集与分析依赖稳定的数据库集群;在可视化决策平台中,高并发查询能力直接影响用户体验。通过本文的完整部署流程,您已掌握构建企业级RAC集群的核心技能。
如需快速验证RAC架构在您业务场景中的表现,或希望获得自动化部署脚本、监控模板与运维手册,可申请试用&https://www.dtstack.com/?src=bbs,获取专业级数据库集群解决方案支持。
再次推荐:申请试用&https://www.dtstack.com/?src=bbs,加速您的数据平台建设进程。
如需长期稳定运行,建议结合容器化部署与云原生架构,申请试用&https://www.dtstack.com/?src=bbs,探索下一代弹性数据库架构。
申请试用&下载资料