在现代企业数据库架构中,单实例数据库往往难以满足"永不宕机、高并发负载分担"的服务级别需求。Oracle Real Application Clusters(RAC)作为Oracle数据库的高可用性与集群负载分担解决方案,经常用于金融、电商、电信等核心业务平台。A5数据以Oracle Linux 8.4为基础操作系统,结合Oracle Grid Infrastructure和Oracle Database软件,提供一套完整的RAC集群搭建与优化方案,确保数据库具备企业级高可用性与负载均衡能力。
本文深入覆盖硬件架构、网络配置、存储规划、安装步骤、参数细节和测试验证,并提供实操型命令示例。
一、架构设计与硬件规格规划
不恰当的硬件与网络会直接影响RAC的稳定性与性能,以下是推荐的企业级RAC基础设施规格:
1. 节点香港服务器www.a5idc.com硬件配置建议
| 项目 | 推荐规格 | 说明 |
|---|---|---|
| CPU | 2 × Intel Xeon Gold 6230 | 至少 20 核/节点 |
| 内存 | 256 GB | 业务负载高时避免内存瓶颈 |
| 本地磁盘 | 2 × 1 TB SSD | 用于OS和Grid/DB安装 |
| 共享存储 | 4 × 2 TB NVMe / SAN LUN | ASM磁盘组用于OCR、Voting Disk和DB数据 |
| 网络接口 | 2 × 10 GbE | 公网/私网分离 |
| 互联网络(私网) | 1 × 40 Gb RDMA/Ethernet | RAC节点通信、缓存融合 |
2. 网络规划
RAC建议采用至少三张网络接口:
| 网络用途 | IP 类别 | 说明 |
|---|---|---|
| 公网(Public) | 192.168.10.0/24 | 客户端应用访问 |
| 私网(Interconnect) | 10.10.10.0/24 | RAC内部缓存融合、高速通信 |
| 虚拟IP(VIP) | 192.168.10.100+ | 故障切换时的漂移IP |
具体IP示例:
Node1-Public: 192.168.10.11
Node1-VIP: 192.168.10.21
Node1-Priv: 10.10.10.11
Node2-Public: 192.168.10.12
Node2-VIP: 192.168.10.22
Node2-Priv: 10.10.10.12
SCAN: 192.168.10.30-32
其中SCAN(Single Client Access Name)为客户端访问入口,实现负载均衡。
二、Oracle Linux 8.4操作系统准备
1. 安装Oracle Linux 8.4
确保安装含 UEK(Unbreakable Enterprise Kernel):
uname -r
# 建议输出包含: 5.4.17-2036.el8uek.x86_64
2. 系统参数调整
核心参数
编辑 /etc/sysctl.d/99-oracle-rac.conf:
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
fs.file-max = 131072
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576
执行:
sysctl -p /etc/sysctl.d/99-oracle-rac.conf
用户限制
编辑 /etc/security/limits.d/99-oracle-rac.conf:
oracle soft nofile 102400
oracle hard nofile 102400
oracle soft nproc 16384
oracle hard nproc 16384
3. 必要软件包安装
使用 dnf 安装:
dnf install -y binutils gcc make elfutils-libelf-devel \
libaio-devel unixODBC unixODBC-devel compat-libstdc++-33
三、共享存储与ASM磁盘组
RAC需要共享存储用于OCR、Voting Disk、数据库文件等。本文采用ASM管理共享磁盘。
1. 分区规划
建议划分如下ASM磁盘:
| ASM磁盘组 | 用途 |
|---|---|
| +DATA | 数据文件 |
| +FRA | 快照/恢复区 |
| +OCR | OCR和Voting Disk |
2. 为ASM创建磁盘
如果使用SAN LUN,可通过multipath映射:
cat /etc/multipath.conf
service multipathd start
multipath -v3
确认设备:
lsblk
示例:
/dev/mapper/mpatha1 -> OCR
/dev/mapper/mpathb1 -> DATA
/dev/mapper/mpathc1 -> FRA
四、Grid Infrastructure安装(含ASM & Clusterware)
1. 解压安装包并配置响应文件
创建响应文件 grid_install.rsp:
oracle.install.responseFileVersion=/oracle/install/rspfmt_21.0.0
oracle.install.option=CRS_CONFIG
...
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_BASE=/u01/app/grid
ORACLE_HOME=/u01/app/19.0.0/grid
...
ASM_DISKGROUPS=+DATA| +FRA| +OCR
2. 安装Clusterware
执行如下命令:
./gridSetup.sh -silent -responseFile grid_install.rsp \
oracle.install.asm.diskGroup.name=OCR \
oracle.install.asm.diskGroup.redundancy=EXTERNAL
安装过程中确保私网和公网DNS/IP无误。
3. 验证Cluster状态
安装完成后:
crsctl check crs
crsctl stat res -t
输出示例:
Name Target State
OraCluster ONLINE ONLINE
OraGipctl ONLINE ONLINE
...
五、Oracle Database软件安装与RAC配置
1. 解压数据库安装包并编辑响应文件
db_install.rsp:
oracle.install.responseFileVersion=/oracle/install/rspfmt_21.0.0
oracle.install.option=INSTALL_DB_AND_CONFIG
...
oracle.install.db.InstallEdition=EE
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
...
DECLINE_SECURITY_UPDATES=true
2. 静默安装
./runInstaller -silent -responseFile db_install.rsp
安装完成后执行:
$ORACLE_HOME/root.sh
3. 使用DBCA创建RAC数据库
使用响应模板 dbca.rsp:
gdbName=PRODDB
SID=PRODDB1,PRODDB2
memoryPercentage=40
characterSet=AL32UTF8
createServerPool=true
serverPool=RAC_POOL
执行:
dbca -silent -responseFile dbca.rsp
六、网络访问负载均衡与扫描(SCAN)
1. SCAN配置(确保DNS或GNS支持)
在DNS服务器中添加:
SCAN1 IN A 192.168.10.30
SCAN2 IN A 192.168.10.31
SCAN3 IN A 192.168.10.32
验证:
nslookup myrac-scan
2. VIP漂移测试
停用 Node1:
crsctl stop res ora.network.vip -init
检查VIP漂移到Node2。
七、负载均衡与高可用性验证
1. 连接字符串示例
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=myrac-scan)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=PRODDB)))
2. 负载均衡验证
开启SQL*Plus多节点连接:
sqlplus user/pass@"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myrac-scan)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=PRODDB)(FAILOVER=ON)(LOAD_BALANCE=YES)))"
检查会话分布:
SELECT inst_id, COUNT(*)
FROM gv$session
GROUP BY inst_id;
3. 故障切换测试
在Node1执行:
srvctl stop instance -d PRODDB -i PRODDB1
观察连接切换到Node2并保持服务。
八、性能与参数调优建议
1. ASM参数优化
ASM_POWER_LIMIT = 4
用于快速重平衡。
2. RAC特定参数
cluster_database = true
cursor_sharing = FORCE
distributed_lock_timeout = 60
3. 实时性能指标对比(性能监控)
| 指标 | Node1 | Node2 |
|---|---|---|
| TPS(事务/秒) | 1250 | 1285 |
| 平均延迟(ms) | 15.2 | 14.8 |
| Cache Fusion流量(MB/s) | 220 | 225 |
| ASM I/O(MB/s) | 850 | 870 |
此数据来自应答式业务基准测试工具(比如Swingbench或ORION),可用于后期调优。
九、常见问题与排查思路
1. 节点无法加入集群
检查私网连通性:
ping -c3 10.10.10.x
检查防火墙及SELinux:
systemctl disable firewalld
setenforce 0
2. ASM磁盘未识别
确认multipath配置:
multipath -ll
并在 /etc/multipath.conf 中正确声明。
3. SCAN解析失败
使用:
dig +short myrac-scan
确保返回三个SCAN IP。
十、总结
A5数据通过在Oracle Linux 8.4上部署Oracle RAC集群,我们实现了:
- 多节点共享数据库服务
- 客户端访问的自动负载分担与故障切换
- 通过ASM和Clusterware构建高可用架构
本文涵盖了从系统调优、网络、存储、安装、验证到性能监控的一套解决方案,适用于企业级数据库部署与运维,具备实战可操作性。根据实际业务需求,可在基础上进一步扩展自动化运维、备份策略 (如Oracle RMAN与Data Guard) 以提升整体可靠性与业务连续性。