Oracle RAC集群部署实战:双节点配置与共享存储设置
数栈君
发表于 2026-03-28 11:50
57
0
Oracle RAC集群部署实战:双节点配置与共享存储设置在现代企业数据架构中,高可用性与负载均衡已成为核心需求。尤其在金融、电信、制造等对系统稳定性要求极高的行业,单点故障意味着业务中断、数据丢失和巨额损失。Oracle Real Application Clusters(RAC)作为Oracle官方提供的集群解决方案,允许多个节点共享同一数据库实例,实现无缝故障转移与横向扩展。本文将深入解析Oracle RAC双节点部署的完整流程,重点聚焦共享存储配置、网络规划、集群软件安装与验证,为数据中台建设提供坚实底层支撑。---### 一、Oracle RAC架构核心原理Oracle RAC不是简单的多实例部署,而是多个Oracle数据库实例同时访问同一个物理数据库文件集。其核心依赖三大组件:- **共享存储**:所有节点必须访问同一套磁盘,用于存放数据文件、控制文件、重做日志和OCR(Oracle Cluster Registry)。- **私有网络**:节点间通过高速内部网络(通常为InfiniBand或千兆/万兆以太网)进行心跳检测与缓存融合(Cache Fusion)。- **公共网络**:对外提供服务的IP地址,客户端通过此网络连接数据库。> 💡 **为什么需要共享存储?** > 在传统单实例架构中,每个数据库实例拥有独立的数据文件。而在RAC中,多个实例必须“看到”相同的数据,否则会出现数据不一致。共享存储确保了所有节点对数据的读写操作基于同一份物理文件,这是实现“多实例单数据库”架构的前提。---### 二、硬件与网络规划要点#### 1. 节点配置建议| 组件 | 推荐配置 ||------|----------|| CPU | 至少8核,建议16核以上(视并发负载) || 内存 | 32GB起步,生产环境建议64GB+ || 操作系统 | Oracle Linux 8.x / Red Hat Enterprise Linux 8.x(官方认证) || 磁盘 | 至少5块独立磁盘(系统盘+共享存储) |#### 2. 网络拓扑设计(双节点)| 网络类型 | 用途 | 推荐带宽 | IP示例 ||----------|------|----------|--------|| 公共网络 | 客户端连接 | 1Gbps+ | 192.168.1.101 / 192.168.1.102 || 私有网络 | 节点心跳与缓存同步 | 10Gbps+ | 10.10.10.101 / 10.10.10.102 || 虚拟IP(VIP) | 故障转移时自动漂移 | 同公共网络 | 192.168.1.110 || 扫描IP(SCAN) | 客户端负载均衡入口 | 同公共网络 | 192.168.1.120 |> ⚠️ 注意:私有网络必须独立于公共网络,禁止使用同一网卡或交换机,防止心跳中断误判节点故障。---### 三、共享存储配置详解共享存储是RAC部署成败的关键。主流方案包括:#### ✅ 方案一:Oracle Automatic Storage Management(ASM)+ iSCSI- 使用iSCSI目标服务器(如Linux + targetcli)提供LUN。- 每个节点通过iSCSI initiator连接至共享LUN。- 创建3个独立LUN: - OCR/Voting Disk(≥10GB) - Redo Log(≥50GB) - Datafile(根据业务需求分配)#### ✅ 方案二:光纤通道(FC)+ SAN存储- 企业级首选,性能与可靠性最优。- 需配置多路径(Multipath)以避免单链路故障。- 使用`multipath -ll`验证路径状态。#### ✅ 方案三:NFS共享(仅限测试环境)- 不推荐用于生产环境,因网络延迟与锁机制可能导致性能瓶颈。- 若使用,必须启用NFSv4 + 强制`noac`(no attribute cache)参数。> 🔧 **配置示例(iSCSI):** > 在存储服务器上创建LUN:>> ```bash> targetcli /backstores/fileio create db_disk1 /opt/oracle/db_disk1.img 20G> targetcli /iscsi create iqn.2024-07.com.oracle:rac-storage> targetcli /iscsi/iqn.2024-07.com.oracle:rac-storage/tpg1/luns create /backstores/fileio/db_disk1> ```>> 在每个节点安装iSCSI客户端并发现目标:>> ```bash> yum install iscsi-initiator-utils -y> systemctl enable --now iscsid> iscsiadm -m discovery -t sendtargets -p
> iscsiadm -m node -T iqn.2024-07.com.oracle:rac-storage -p --login> ```配置完成后,使用`lsblk`确认共享磁盘可见,且所有节点看到相同的设备名(如`/dev/sdb`)。---### 四、操作系统预配置(所有节点同步执行)#### 1. 用户与组创建```bashgroupadd -g 1000 oinstallgroupadd -g 1001 dbagroupadd -g 1002 operuseradd -u 1001 -g oinstall -G dba,oper oracleecho "oracle:oracle123" | chpasswd```#### 2. 内核参数优化(/etc/sysctl.conf)```conffs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 1073741824kernel.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)```conforacle soft nofile 1024oracle hard nofile 65536oracle soft nproc 16384oracle hard nproc 16384oracle soft stack 10240oracle hard stack 32768```#### 4. 时间同步(NTP或Chrony)RAC对时间同步要求极高,偏差超过100ms将导致节点驱逐。```bashtimedatectl set-ntp truesystemctl enable --now chronydchronyc sources -v```---### 五、安装Oracle Grid Infrastructure(GI)Grid Infrastructure是RAC的集群管理核心,包含OCR、Voting Disk、Clusterware和ASM。#### 步骤:1. 下载Oracle 19c/21c GI软件包(Linux x86-64)2. 解压至`/opt/oracle/grid`3. 设置环境变量:```bashexport ORACLE_BASE=/opt/oracleexport ORACLE_HOME=/opt/oracle/gridexport PATH=$ORACLE_HOME/bin:$PATH```4. 启动图形安装器(需X11转发或VNC):```bash./runInstaller```5. 安装向导关键选项: - 选择“Install and Configure Oracle Grid Infrastructure for a Cluster” - 添加两个节点主机名(确保DNS解析或/etc/hosts配置正确) - 指定私有网络接口(如eth1) - 为OCR/Voting Disk选择共享磁盘(建议使用ASM管理) - 设置ASM密码(与数据库密码分离)6. 执行root脚本(在两个节点分别运行):```bash/opt/oracle/oraInventory/orainstRoot.sh/opt/oracle/grid/root.sh```> ✅ 安装完成后,验证集群状态:>> ```bash> crsctl check cluster> crsctl stat res -t> olsnodes -n> ```---### 六、安装Oracle Database软件与创建RAC数据库1. 解压数据库安装包至`/opt/oracle/db`2. 运行`runInstaller`,选择“Install database software only”3. 安装完成后,使用`dbca`(Database Configuration Assistant)创建RAC数据库: - 选择“Oracle Real Application Clusters database” - 指定节点列表 - 选择ASM作为存储 - 设置数据库名(如`RACDB`)、字符集(AL32UTF8) - 配置监听器与服务名(SCAN监听器自动注册)> 💡 创建完成后,通过`srvctl status database -d RACDB`可查看各实例状态。---### 七、验证与高可用测试#### 1. 连接测试```bashsqlplus sys@//192.168.1.120:1521/RACDB as sysdba```> SCAN IP自动将连接请求分发至可用节点。#### 2. 故障模拟- 在节点1上执行:`shutdown -h now`- 观察节点2是否自动接管服务- 使用`crsctl stat res -t`确认资源已迁移- 客户端连接不应中断(VIP漂移生效)#### 3. 性能监控使用`awrreport`或`v$active_session_history`分析缓存融合效率,确保跨节点数据访问延迟低于5ms。---### 八、运维建议与最佳实践- **定期备份OCR**:`ocrconfig -export /backup/ocr_export.dmp`- **监控Voting Disk状态**:`crsctl query css votedisk`- **禁用防火墙与SELinux**:`setenforce 0` + `systemctl stop firewalld`- **使用ASM磁盘组冗余**:推荐NORMAL冗余(双副本),避免单盘故障- **日志集中分析**:`$ORACLE_BASE/diag/crs/` 和 `$ORACLE_BASE/diag/rdbms/` 下的日志需定期归档---### 九、为何RAC是数据中台的基石?在构建企业级数据中台时,数据服务必须具备**7×24小时可用性**与**弹性扩展能力**。Oracle RAC通过以下机制支撑这一目标:- ✅ **零停机维护**:可逐节点打补丁、升级,不影响业务- ✅ **负载分担**:多个实例并行处理查询,提升吞吐量- ✅ **自动故障恢复**:节点宕机后,VIP与服务自动迁移- ✅ **统一数据视图**:所有节点共享同一份数据,避免ETL延迟对于需要对接实时分析、BI仪表盘、API网关等系统的中台架构,RAC是保障数据一致性与服务连续性的首选方案。---### 十、结语:从部署到生产,每一步都至关重要Oracle RAC部署不是一次性的技术任务,而是一项持续运维的系统工程。从共享存储的选型、网络隔离的规划,到集群配置的验证,每一个环节都直接影响系统的健壮性。建议在正式上线前,进行至少3轮压力测试与故障演练。如果您正在规划企业级数据平台,且对高可用架构有明确需求,建议从Oracle 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/?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进行反馈,袋鼠云收到您的反馈后将及时答复和处理。