Oracle RAC集群部署实战:双节点配置与共享存储设置
在现代企业数据架构中,高可用性与弹性扩展已成为核心需求。对于关键业务系统,如金融交易、供应链管理、实时分析平台等,单点故障意味着业务中断和巨额损失。Oracle Real Application Clusters(RAC)作为Oracle官方提供的集群解决方案,允许多个节点共享同一数据库实例,实现负载均衡与故障自动切换,是构建企业级高可用数据中台的首选架构。本文将深入解析Oracle RAC双节点部署的完整流程,重点聚焦共享存储配置、网络规划、集群软件安装与验证,帮助技术团队高效完成生产级部署。
在启动部署前,必须确认以下基础设施满足最低要求:
📌 重要提示:Oracle RAC不支持本地磁盘作为共享存储。任何节点独占的存储设备将导致集群无法启动。
共享存储是RAC架构的“心脏”。在双节点环境中,所有节点必须能同时读写同一组数据文件、控制文件与重做日志。
ASM是Oracle官方推荐的存储管理方案,具备自动负载均衡、条带化与镜像能力。
步骤如下:
划分LUN:在SAN存储上为RAC创建至少5个LUN:
识别磁盘路径:
lsblk -f# 或使用/usr/sbin/scsi_id -g -u -s /block/sdX记录每个LUN的WWID(World Wide Identifier),用于后续udev规则绑定。
配置udev规则(以Oracle Linux为例):编辑 /etc/udev/rules.d/99-oracle-asm.rules:
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/sbin/scsi_id -g -u -s %p", RESULT=="36000c29a1b2c3d4e5f6a7b8c9d0e1f2", SYMLINK+="asm-disk1", OWNER="grid", GROUP="dba", MODE="0660"重复为每个LUN添加规则,确保命名一致(如asm-disk1至asm-disk5)。
重启udev服务并验证:
udevadm control --reload-rulesudevadm triggerls -l /dev/asm-*若无SAN设备,可使用NFSv4挂载共享目录,但需满足:
rw,bg,hard,intr,rsize=1048576,wsize=1048576,tcp,vers=4,actimeo=0⚠️ 注意:NFS方案在高并发写入场景下性能低于ASM,仅适用于测试或低负载环境。
所有节点必须配置唯一主机名,并在 /etc/hosts 中添加所有节点的公网与私网IP:
192.168.1.10 rac1.example.com rac1192.168.1.11 rac2.example.com rac210.10.10.10 rac1-priv.example.com rac1-priv10.10.10.11 rac2-priv.example.com rac2-priv192.168.1.20 rac1-vip.example.com rac1-vip192.168.1.21 rac2-vip.example.com rac2-vip✅ VIP(Virtual IP) 是RAC的高可用核心,当某节点宕机时,其VIP会自动漂移至存活节点,客户端无需重连。
使用chrony或ntpd同步时间,误差必须小于1秒:
systemctl enable chronydsystemctl start chronydchronyc sources -v在集群安装过程中,Oracle Clusterware会检测时间差,超限将导致安装失败。
创建统一的用户组与用户:
groupadd -g 1000 oinstallgroupadd -g 1001 dbagroupadd -g 1002 opergroupadd -g 1003 asmadmingroupadd -g 1004 asmdbagroupadd -g 1005 asmoperuseradd -u 1100 -g oinstall -G dba,asmdba,oper griduseradd -u 1101 -g oinstall -G dba,asmdba,oper oracle设置密码并确保用户家目录权限正确。
Grid Infrastructure是RAC的集群管理层,包含OCR、Voting Disk、Clusterware与ASM。
从Oracle官网下载:
linuxx64_21c_grid_home.zip(对应Oracle 21c)linuxx64_21c_database_home.zip解压至 /opt/oracle:
unzip linuxx64_21c_grid_home.zip -d /opt/oracle/cd /opt/oracle/grid创建响应文件 grid.rsp,关键参数如下:
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v21.0.0INVENTORY_LOCATION=/u01/app/oraInventorySELECTED_LANGUAGES=enORACLE_HOSTNAME=rac1.example.comUNIX_GROUP_NAME=oinstallINSTALL_TYPE=CRSCLUSTER_NODES={rac1,rac2}CLUSTER_NAME=rac-clusterSCAN_NAME=rac-scan.example.comSCAN_PORT=1521ASM_DISKGROUP_NAME=DATAASM_DISKSTRING='/dev/asm-*'ASM_PASSWORD=YourPass123!执行安装:
./gridSetup.sh -silent -responseFile /opt/oracle/grid/grid.rsp -ignorePrereqFailure安装过程约30–60分钟,期间系统将自动配置网络、启动集群服务、初始化OCR与Voting Disk。
安装完成后,按提示在两个节点分别执行:
/u01/app/oraInventory/orainstRoot.sh/u01/app/19c/grid/root.sh🔍 执行后可通过
crsctl check cluster验证集群状态,输出应为CRS-4537: Cluster Ready Services is online。
在Grid Infrastructure部署成功后,安装数据库软件:
cd /opt/oracle/database./runInstaller -silent -responseFile /opt/oracle/database/db.rsp -ignorePrereqFailure响应文件示例:
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v21.0.0oracle.install.option=INSTALL_DB_SWONLYORACLE_HOSTNAME=rac1.example.comUNIX_GROUP_NAME=oinstallINVENTORY_LOCATION=/u01/app/oraInventorySELECTED_LANGUAGES=enORACLE_HOME=/u01/app/oracle/product/21c/dbhome_1ORACLE_BASE=/u01/app/oracleoracle.install.db.InstallEdition=EEoracle.install.db.isCustomInstall=falseoracle.install.db.DBA_GROUP=dbaoracle.install.db.OPER_GROUP=operoracle.install.db.config.starterdb.type=GENERAL_PURPOSESECURITY_UPDATES_VIA_MYORACLESUPPORT=falseDECLINE_SECURITY_UPDATES=true执行 root.sh 脚本后,数据库软件安装完成。
使用DBCA(Database Configuration Assistant)图形化或静默方式创建数据库:
dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbname RACDB \ -sid RACDB \ -responseFile NO_VALUE \ -characterSet AL32UTF8 \ -nationalCharacterSet AL16UTF16 \ -totalMemory 8192 \ -databaseType MULTIPURPOSE \ -nodeinfo rac1,rac2 \ -storageType ASM \ -diskGroupName DATA \ -recoveryGroupName FRA \ -sysPassword YourSysPass123 \ -systemPassword YourSysPass123 \ -emConfiguration NONE创建成功后,可通过 srvctl status database -d RACDB 查看实例状态,应显示两个节点均处于OPEN状态。
部署完成后,执行以下验证命令:
| 检查项 | 命令 |
|---|---|
| 集群状态 | crsctl check cluster |
| 节点状态 | olsnodes -n |
| ASM磁盘组 | asmcmd lsdg |
| 数据库服务 | srvctl status database -d RACDB |
| 监听器状态 | lsnrctl status |
✅ 正常情况下,所有服务应为
ONLINE,且无FAILED或UNKNOWN状态。
ocrconfig -export 和 dd 命令备份至安全位置。ping、netstat 或 sar 监控私网延迟,超过5ms需排查交换机或网卡问题。/etc/default/grub 中添加 transparent_hugepage=never,重启生效。Oracle RAC部署不仅提升数据库可用性,更支撑了数字孪生、实时决策系统与可视化分析平台的底层数据服务。当企业需要将ERP、CRM、IoT数据流统一接入并实现毫秒级响应时,RAC的多节点并发处理能力成为关键支撑。
🚀 若您正在规划企业级数据中台架构,建议在RAC之上部署数据缓存层(如Redis Cluster)与ETL调度引擎,实现数据的实时汇聚与分发。申请试用&https://www.dtstack.com/?src=bbs申请试用&https://www.dtstack.com/?src=bbs申请试用&https://www.dtstack.com/?src=bbs
Oracle RAC双节点部署虽涉及多个技术环节,但只要严格遵循网络、存储、权限与安装顺序,即可稳定交付生产环境。其核心价值在于:零停机维护、动态负载均衡、跨节点容灾。对于追求业务连续性的企业,RAC不是可选项,而是必选项。
建议在测试环境完成三次完整部署后,再进入生产环境实施。同时,建立标准化的部署手册与故障恢复预案,是保障系统长期稳定运行的关键。
申请试用&下载资料💡 技术没有捷径,但流程可以优化。从共享存储配置到集群服务验证,每一步都决定着系统的健壮性。现在就开始您的Oracle RAC部署之旅吧。