Oracle RAC集群部署实战:双节点配置与共享存储设置
数栈君
发表于 2026-03-29 08:51
61
0
Oracle RAC集群部署实战:双节点配置与共享存储设置在现代企业数据架构中,高可用性与负载均衡已成为核心需求。对于需要7×24小时持续运行的关键业务系统——如金融交易、电信计费、智能制造数据中台等——单点故障意味着巨大的业务损失。Oracle Real Application Clusters(RAC)作为Oracle官方提供的集群解决方案,允许多个节点共享同一数据库实例,实现无缝故障转移与横向扩展。本文将深入解析Oracle RAC在双节点环境下的完整部署流程,涵盖操作系统配置、共享存储搭建、网络规划、集群软件安装与数据库创建,为数据中台建设提供坚实底层支撑。---### 一、Oracle RAC架构核心原理Oracle RAC不是简单的“多台服务器装Oracle”,而是通过集群件(Clusterware)与共享存储技术,使多个节点共同访问同一套数据文件。其核心组件包括:- **Clusterware(集群件)**:由Oracle Cluster Ready Services(CRS)和Oracle Automatic Storage Management(ASM)组成,负责节点健康监控、资源调度与故障切换。- **共享存储**:所有节点必须能同时读写同一组磁盘,通常使用SAN、NFS或Oracle ASM磁盘组。- **私有网络(Interconnect)**:节点间通过高速私网同步内存缓存(Cache Fusion),避免数据不一致。- **公共网络(Public Network)**:客户端连接入口,支持负载均衡与故障转移。> ✅ **关键认知**:RAC的“单数据库、多实例”架构,使业务在节点宕机时仍可继续运行,延迟通常低于5秒,远优于传统主备切换方案。---### 二、部署前环境准备清单在开始部署前,请确保以下硬件与软件条件满足:| 类别 | 要求 ||------|------|| **节点数量** | 至少2台物理服务器或虚拟机(推荐相同配置) || **CPU** | 每节点≥8核,推荐16核以上 || **内存** | 每节点≥32GB,建议64GB或更高 || **磁盘空间** | 每节点系统盘≥100GB,共享存储≥500GB(用于数据、归档、OCR/Voting Disk) || **网络接口** | 至少2个网卡:1个用于公共网络,1个用于私有网络(建议10Gbps) || **操作系统** | Oracle Linux 8.x / Red Hat Enterprise Linux 8.x(官方支持版本) || **软件包** | 必须安装:gcc、make、binutils、libaio、glibc、compat-libcap1、elfutils-libelf等 |> ⚠️ 注意:Oracle RAC不支持Windows Server,也不推荐在容器化环境(如Docker/K8s)中部署生产级RAC,因其对底层I/O与网络延迟敏感。---### 三、共享存储配置详解共享存储是RAC的命脉。若存储不可靠,整个集群将崩溃。以下是三种主流方案:#### 1. **Oracle ASM + SAN磁盘阵列(推荐)**- 使用光纤通道或iSCSI将SAN存储映射至两个节点。- 每个节点看到相同的LUN(逻辑单元号),如:/dev/sdb、/dev/sdc、/dev/sdd。- 使用`oracleasm`工具格式化为ASM磁盘:```bash# 创建ASM磁盘标签oracleasm createdisk DATA1 /dev/sdboracleasm createdisk FRA1 /dev/sdcoracleasm createdisk OCR1 /dev/sdd# 验证磁盘可见性(两节点均需执行)oracleasm listdisks```> ✅ 推荐配置: > - OCR/Voting Disk:3个独立磁盘(奇数个,防脑裂) > - 数据磁盘组:DATA(用于表空间) > - 快速恢复区:FRA(用于归档日志与备份)#### 2. **NFS共享存储(适用于测试/轻载环境)**若无SAN设备,可使用NFS挂载:```bash# 在NFS服务器上导出目录echo "/u01/oradata *(rw,sync,no_root_squash)" >> /etc/exportsexportfs -r# 在RAC节点挂载mount -t nfs nfs-server:/u01/oradata /u01/oradata```> ❗ 注意:NFS性能远低于本地磁盘,仅用于POC或非核心系统。生产环境严禁使用。#### 3. **Oracle ACFS(ASM Cluster File System)**ACFS是基于ASM的集群文件系统,可用于存放Oracle软件、日志、脚本等。部署后可通过以下命令创建:```bashasmcmd mkfs -t acfs /dev/asm/data-123mkdir /u01/app/oracle/acfsmountmount -t acfs /dev/asm/data-123 /u01/app/oracle/acfsmount```---### 四、网络配置:私网与公网分离RAC对网络延迟极为敏感。必须严格分离:| 网络类型 | 用途 | 推荐带宽 | IP示例 ||----------|------|----------|--------|| **Public Network** | 客户端连接、监听器 | 1Gbps | 192.168.1.101 / 192.168.1.102 || **Private Network (Interconnect)** | Cache Fusion、心跳检测 | 10Gbps | 10.10.10.1 / 10.10.10.2 |> 🔧 配置建议:> - 私网使用专用交换机,禁止与公网混用> - 禁用防火墙或开放端口:12345(UDP)、5555(TCP)用于Clusterware通信> - 配置DNS或`/etc/hosts`解析,确保节点名与IP绑定稳定```bash# /etc/hosts 示例192.168.1.101 racnode1.example.com racnode1192.168.1.102 racnode2.example.com racnode210.10.10.1 racnode1-priv.example.com racnode1-priv10.10.10.2 racnode2-priv.example.com racnode2-priv192.168.1.110 racnode-vip.example.com racnode-vip192.168.1.111 racnode-scan.example.com racnode-scan```> ✅ SCAN(Single Client Access Name)是RAC的入口,通过DNS轮询实现负载均衡,客户端只需连接SCAN IP,无需感知节点变化。---### 五、安装Oracle Grid Infrastructure(集群件)在两个节点上执行相同步骤:1. **解压安装包** ```bash unzip linuxx64_193000_grid_home.zip -d /u01/app/19.0.0/grid ```2. **运行安装程序** ```bash cd /u01/app/19.0.0/grid ./gridSetup.sh ```3. **安装向导关键配置** - 选择“Configure Oracle Grid Infrastructure for a Cluster” - 添加两个节点(确保SSH互信已配置) - 指定ASM磁盘组:DATA、FRA、OCR - 设置ASM密码(建议与数据库密码不同) - 执行root脚本(在两个节点分别运行)> 📌 安装完成后,验证集群状态:> ```bash> crsctl check cluster> crsctl stat res -t> ```> 所有资源应显示为“ONLINE”。---### 六、安装Oracle Database软件并创建RAC数据库1. **解压数据库软件** ```bash unzip linuxx64_193000_db_home.zip -d /u01/app/oracle/product/19.0.0/dbhome_1 ```2. **运行dbca(Database Configuration Assistant)** ```bash /u01/app/oracle/product/19.0.0/dbhome_1/bin/dbca ```3. **创建RAC数据库配置要点** - 模板:选择“General Purpose or Transaction Processing” - 数据库名:如 `ORCL` - 实例名:`ORCL1`、`ORCL2`(自动分配) - 存储类型:选择ASM - 指定数据文件位置:`+DATA/ORCL/DATAFILE/` - 启用“Enable Archive Log Mode” - 配置监听器:自动使用SCAN监听器4. **创建后验证** ```sql SQL> SELECT instance_name, host_name FROM gv$instance; ``` 输出应显示两个实例,分别运行在不同节点上。---### 七、性能调优与监控建议- **启用ASM条带化**:创建磁盘组时使用`NORMAL REDUNDANCY`或`HIGH REDUNDANCY`- **调整内存参数**:`sga_target`、`pga_aggregate_target`需根据节点内存合理分配- **监控Cache Fusion**:查询`v$gc*`视图,观察跨节点数据传输量- **启用自动诊断**:配置ADDM、AWR快照,定期分析性能瓶颈> 📊 推荐监控工具:Oracle Enterprise Manager Cloud Control、Grid Control,或使用开源方案如Prometheus + Grafana采集ASM与数据库指标。---### 八、故障恢复与高可用测试- **模拟节点宕机**:在节点1上执行`shutdown -h now`- 观察节点2是否自动接管服务- 客户端连接是否无中断(使用SCAN地址测试)- 检查告警日志:`$ORACLE_BASE/diag/rdbms/orcl/ORCL1/trace/alert_ORCL1.log`> ✅ 成功标志:应用连接不中断,事务不丢失,响应时间波动<100ms。---### 九、企业级部署建议- **备份策略**:使用RMAN + ASM快照,备份至独立存储- **安全加固**:禁用root远程登录,启用SSL/TLS加密监听器- **自动化运维**:结合Ansible或Shell脚本批量部署RAC节点- **容灾设计**:在异地部署第二套RAC集群,通过Data Guard实现同步复制> 🔗 为提升数据中台的稳定性与扩展能力,建议在部署RAC的同时,同步规划统一元数据管理与数据血缘追踪体系。如需专业部署支持与性能调优服务,[申请试用&https://www.dtstack.com/?src=bbs](https://www.dtstack.com/?src=bbs) 获取企业级解决方案。---### 十、常见错误与解决方案| 错误现象 | 原因 | 解决方案 ||----------|------|----------|| CRS-4535: Cannot communicate with cluster daemon | 网络不通或防火墙阻断 | 检查私网连通性,关闭firewalld || ASM磁盘无法识别 | 权限错误或未初始化 | 使用`oracleasm scandisks` + `oracleasm listdisks` || DBCA卡在“Creating Database” | 存储空间不足或权限问题 | 检查+DATA磁盘组空间,确保oracle用户有读写权限 || 节点重启后无法加入集群 | OCR/Voting Disk损坏 | 使用`ocrconfig -restore`恢复备份 |---### 结语:RAC是数字孪生与实时分析的基石在构建企业级数字孪生系统时,数据的实时性、一致性与可用性缺一不可。Oracle RAC通过多节点共享存储与缓存融合机制,为复杂业务场景提供了近乎完美的高可用保障。无论是智能制造中的实时传感器数据聚合,还是金融风控中的高频交易记录,RAC都能确保系统在极端负载下稳定运行。部署RAC虽复杂,但其带来的业务连续性价值远超投入成本。建议企业在规划数据中台时,将RAC作为核心数据库架构的首选方案。> 🔗 为加速您的RAC部署进程,降低运维风险,[申请试用&https://www.dtstack.com/?src=bbs](https://www.dtstack.com/?src=bbs) 获取专业部署模板与自动化脚本。 > 🔗 若需定制化集群架构设计,[申请试用&https://www.dtstack.com/?src=bbs](https://www.dtstack.com/?src=bbs) 联系技术顾问获取一对一支持。申请试用&下载资料
点击袋鼠云官网申请免费试用:
https://www.dtstack.com/?src=bbs
点击袋鼠云资料中心免费下载干货资料:
https://www.dtstack.com/resources/?src=bbs
《数据资产管理白皮书》下载地址:
https://www.dtstack.com/resources/1073/?src=bbs
《行业指标体系白皮书》下载地址:
https://www.dtstack.com/resources/1057/?src=bbs
《数据治理行业实践白皮书》下载地址:
https://www.dtstack.com/resources/1001/?src=bbs
《数栈V6.0产品白皮书》下载地址:
https://www.dtstack.com/resources/1004/?src=bbs
免责声明
本文内容通过AI工具匹配关键字智能整合而成,仅供参考,袋鼠云不对内容的真实、准确或完整作任何形式的承诺。如有其他问题,您可以通过联系400-002-1024进行反馈,袋鼠云收到您的反馈后将及时答复和处理。