Oracle RAC集群部署实战:双节点配置与共享存储设置
数栈君
发表于 2026-03-28 21:00
41
0
Oracle RAC集群部署实战:双节点配置与共享存储设置在现代企业数据架构中,高可用性与弹性扩展已成为核心诉求。对于需要7×24小时持续运行的关键业务系统,如金融交易、电信计费、制造执行系统等,单点故障意味着巨大的经济损失与客户信任流失。Oracle Real Application Clusters(RAC)作为Oracle数据库的高可用解决方案,通过多节点共享同一数据库实例,实现负载均衡与故障自动切换,是构建企业级数据中台的基石技术之一。本文将深入解析Oracle RAC在双节点环境下的完整部署流程,涵盖操作系统配置、共享存储搭建、网络规划、集群软件安装与数据库创建,帮助技术团队系统性掌握Oracle RAC部署的核心要点。---### 一、Oracle RAC架构核心概念Oracle RAC允许多个节点(服务器)同时访问同一个数据库,共享存储中的数据文件、控制文件与重做日志。每个节点运行独立的Oracle实例,但通过集群件(Clusterware)协调资源访问,确保数据一致性。> ✅ **关键组件**:> - **Clusterware**:Oracle Grid Infrastructure,负责节点间通信、资源管理与故障检测> - **ASM(Automatic Storage Management)**:Oracle原生的存储管理工具,用于管理共享磁盘> - **VIP(Virtual IP)**:客户端连接的虚拟地址,故障时自动漂移> - **SCAN(Single Client Access Name)**:统一访问入口,支持DNS轮询,简化客户端配置在双节点部署中,两个节点互为冗余,任一节点宕机,另一节点可无缝接管服务,RTO(恢复时间目标)可控制在30秒内。---### 二、硬件与网络规划要求#### 1. 服务器配置- **CPU**:建议每节点≥8核,推荐16核以上,以支持并发事务处理- **内存**:至少64GB,生产环境建议128GB或更高,用于SGA与PGA缓存- **磁盘**:需三类存储: - **共享存储**:用于存放数据库文件(ASM磁盘组),推荐使用SAN或iSCSI,容量≥500GB - **本地系统盘**:每个节点独立,用于安装OS与Grid Infrastructure,建议≥100GB SSD - **OCR与Voting Disk**:用于集群元数据存储,建议独立LUN,容量≥10GB#### 2. 网络拓扑设计Oracle RAC要求至少两个网络接口:| 网络类型 | 用途 | 推荐配置 ||----------|------|----------|| **Public Network** | 客户端连接、应用通信 | 1Gbps/10Gbps,静态IP,与业务网段互通 || **Private Network** | 节点间心跳与缓存融合(Cache Fusion) | 10Gbps光纤或InfiniBand,独立网段,禁止路由 || **VIP** | 故障切换时的客户端访问地址 | 与Public同网段,动态绑定 || **SCAN IP** | 客户端统一入口,3个IP(推荐) | 通过DNS轮询,避免单点依赖 |> ⚠️ **重要提醒**:Private网络必须隔离,不得与Public网络共用交换机或VLAN,否则心跳中断将触发误故障切换。---### 三、共享存储配置(关键步骤)共享存储是RAC的命脉。在双节点部署中,必须确保两个节点都能同时读写同一块磁盘。#### 方案一:使用SAN存储(推荐)- 在存储阵列上创建3个LUN: - LUN1:用于ASM磁盘组(DATA) - LUN2:用于ASM磁盘组(FRA,快速恢复区) - LUN3:用于OCR与Voting Disk(建议使用3个LUN冗余,但双节点可共用1个,容量≥10GB)- 在Linux服务器上使用`multipath`配置多路径:```bashyum install device-mapper-multipath -ysystemctl enable multipathd --nowmultipath -ll```确认每个LUN显示为`dm-X`设备,且路径冗余正常。#### 方案二:使用iSCSI(中小企业适用)- 在存储服务器上配置iSCSI Target,导出3个Target- 在两个RAC节点上安装`iscsi-initiator-utils`:```bashyum install iscsi-initiator-utils -yvim /etc/iscsi/initiatorname.iscsi# 设置 InitiatorName=iqn.2024-05.com.yourcompany:rac-node1systemctl enable iscsid --nowiscsiadm -m discovery -t sendtargets -p
iscsiadm -m node -l```> ✅ **验证共享磁盘可见性**:> 在两个节点分别执行:> ```bash> lsblk | grep -E "(sdb|sdc|sdd)"> ```> 确保磁盘名称一致,且都能看到相同LUN。#### 3. 权限与属主设置为ASM使用,需设置磁盘属主为`grid:asmadmin`:```bashchown grid:asmadmin /dev/mapper/data_lun1chmod 660 /dev/mapper/data_lun1```并配置`/etc/udev/rules.d/99-oracle-asm.rules`,确保重启后权限保留。---### 四、操作系统与内核参数优化#### 1. 操作系统版本- 推荐:Oracle Linux 8.8 或 Red Hat Enterprise Linux 8.8- 必须关闭防火墙与SELinux:```bashsystemctl stop firewalld && systemctl disable firewalldsetenforce 0sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config```#### 2. 内核参数配置(/etc/sysctl.conf)```conffs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 549755813888kernel.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` 生效。#### 3. 用户资源限制(/etc/security/limits.conf)```confgrid soft nofile 1024grid hard nofile 65536grid soft nproc 16384grid hard nproc 16384grid soft stack 10240grid hard stack 32768oracle soft nofile 1024oracle hard nofile 65536oracle soft nproc 16384oracle hard nproc 16384oracle soft stack 10240oracle hard stack 32768```---### 五、安装Oracle Grid Infrastructure1. **下载软件包** 从Oracle官网下载: - `linuxx64_21c_grid_home.zip`(适用于19c/21c) - 解压至 `/u01/app/21.0.0/grid`2. **运行安装程序**```bashcd /u01/app/21.0.0/grid./runInstaller```3. **安装向导关键配置**:- 选择 **“Install and Configure Oracle Grid Infrastructure for a Cluster”**- 节点选择:勾选两个节点(node1, node2)- 网络接口:绑定Public与Private网络- 存储选项:选择 **ASM**,创建磁盘组: - `DATA`:使用LUN1,冗余类型:EXTERNAL(若使用RAID) - `FRA`:使用LUN2,冗余类型:EXTERNAL- OCR/Voting Disk:默认使用ASM,自动分配4. **执行脚本**安装程序会提示在两个节点上以root用户执行:```bash/u01/app/oraInventory/orainstRoot.sh/u01/app/21.0.0/grid/root.sh```5. **验证集群状态**```bashcrsctl check clusterocrcheckcrsctl stat res -t```输出应显示所有资源为`ONLINE`。---### 六、安装Oracle Database软件并创建RAC数据库1. **安装数据库软件** - 使用`oracle`用户,运行`runInstaller` - 选择 **“Install database software only”** - 节点选择:两个节点均选中2. **创建数据库(dbca)**```bashdbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbname RACDB \ -sid RACDB \ -responseFile NO_VALUE \ -characterSet AL32UTF8 \ -nationalCharacterSet AL16UTF16 \ -totalMemory 8192 \ -storageType ASM \ -diskGroupName DATA \ -recoveryGroupName FRA \ -nodes node1,node2 \ -databaseType MULTIPURPOSE \ -automaticMemoryManagement true```3. **验证数据库状态**```bashsrvctl status database -d RACDB```应显示两个实例均运行:`RACDB1` 和 `RACDB2`---### 七、测试与高可用验证#### 1. 客户端连接测试使用SCAN地址连接:```sqlCONNECT sys/password@racdb-scan:1521/RACDB```#### 2. 故障模拟在节点1上强制关闭数据库:```bashsrvctl stop instance -d RACDB -i RACDB1```观察节点2是否自动接管,客户端连接是否无中断。#### 3. 性能监控使用`awrreport`或`top`监控CPU、I/O与网络延迟,确保Cache Fusion未成为瓶颈。---### 八、运维建议与最佳实践- **定期备份OCR与Voting Disk**: ```bash ocrconfig -showbackup ocrconfig -manualbackup ```- **监控ASM磁盘空间**: ```sql SELECT name, total_mb, free_mb FROM v$asm_diskgroup; ```- **启用自动诊断仓库(ADR)**: 确保`diag`目录权限正确,便于故障排查。- **网络心跳超时设置**: 默认为3000ms,若网络延迟高,可调整为4000ms: ```bash crsctl set css misscount 4 ```---### 九、结语:RAC是企业数据中台的可靠基石Oracle RAC部署虽复杂,但其带来的高可用性、负载均衡与零停机维护能力,是支撑数字孪生、实时分析与可视化决策系统的核心保障。在构建企业级数据平台时,RAC不仅是一个数据库集群方案,更是业务连续性的技术护盾。为确保部署成功,建议在生产环境前,使用虚拟化平台(如VMware或KVM)搭建测试集群,完整演练故障切换流程。如需专业部署支持、架构咨询或自动化脚本工具,可申请试用&https://www.dtstack.com/?src=bbs 如需获取Oracle RAC部署Checklist模板与Shell自动化脚本,可申请试用&https://www.dtstack.com/?src=bbs 如需培训课程或专家驻场服务,欢迎申请试用&https://www.dtstack.com/?src=bbs Oracle RAC不是终点,而是企业数据架构迈向智能化、弹性化、高可靠的起点。申请试用&下载资料
点击袋鼠云官网申请免费试用:
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进行反馈,袋鼠云收到您的反馈后将及时答复和处理。