准备工作
虚拟机安装RAC(Real Application Clusters)需提前规划硬件、软件及网络环境,确保兼容性与稳定性。

硬件与软件要求
- 虚拟机配置:建议使用VMware Workstation/Pro或VirtualBox,每个RAC节点分配至少2 vCPU、8GB内存、60GB系统盘(需精简配置以节省空间),共享存储需额外分配2块以上RAW磁盘(每块不低于20GB,用于OCR和Voting Disk)。
- 操作系统:推荐RHEL 7.9/CentOS 7.9(x86_64),需关闭SELinux、防火墙,并配置静态IP地址。
- RAC软件:选择Oracle Grid Infrastructure 19c(含集群服务)和Oracle Database 19c,确保操作系统与数据库版本兼容(参考MOS文档)。
网络规划
RAC需至少4个网络:
- 公共网络:用于客户端连接,节点间需互通(如192.168.1.0/24)。
- 私有网络:节点间心跳与数据同步(如192.168.2.0/24,需单独物理网卡或VLAN隔离)。
- SCAN IP:3个虚拟IP(需DNS解析或本地hosts映射,如scan1.localdomain)。
- 管理网络:集群管理通信(可选,可与公共网络合并)。
虚拟环境与系统配置
虚拟机与共享存储搭建
- 创建2台虚拟机(racnode1、racnode2),配置一致,网络模式为“桥接”或“NAT(桥接子网)”。
- 共享存储配置(以VMware为例):
- 使用“添加硬盘”选择“使用物理磁盘(RDM)”,将两块RAW磁盘分别映射至两台虚拟机(确保磁盘模式为“物理兼容”)。
- 在虚拟机中将磁盘识别为/dev/sdb、/dev/sdc(可通过
lsblk确认)。
系统基础配置
- 网络与主机名:修改
/etc/hosts,添加节点IP与主机名映射(如192.168.1.11 racnode1.localdomain racnode1),并配置SCAN IP。 - 用户与组:创建grid和oracle用户,加入oinstall、dba、asmadmin、asmdba组(
groupadd -g 1000 oinstall; groupadd -g 1001 dba; ...)。 - 内核参数:调整
/etc/sysctl.conf,关键参数包括shmmax=4294967295、shmall=4194304、file-max=68719476736,执行sysctl -p生效。 - 依赖包安装:通过yum安装必要软件包(如
binutils、compat-libstdc++-33、gcc-c++、glibc-devel、ksh、libaio-devel、make等)。
Grid Infrastructure安装
Grid Infrastructure是RAC核心,提供集群管理与ASM存储。

预安装检查
- 以grid用户登录,执行
cluvfy comp -n racnode1,racnode2 -type ocr检查节点兼容性。 - 配置节点间SSH免密登录:
ssh-keygen -t rsa后,将公钥分发至各节点(ssh-copy-id racnode1)。 - 同步时间:配置NTP服务(
systemctl enable ntpd; systemctl start ntdp),确保节点时间误差<1秒。
静默安装(推荐)
- 解压Grid安装包,创建响应文件
grid_install.rsp,关键参数:INVENTORY_LOCATION=/u01/app/oraInventory SELECTED_LANGUAGES=en,zh_CN oracle.install.option=CRS_CONFIG clusterName=rac_cluster clusterNodes=racnode1:racnode1.localdomain:racnode1-vip, racnode2:racnode2.localdomain:racnode2-vip scanName=scan.localdomain scanPort=1521 networkInterfaceList=eth0:192.168.1.0:public,eth1:192.168.2.0:private storageOption=ASM asmDiskGroup=DATA asmDisks=/dev/sdb,/dev/sdc
- 执行安装:
./runInstaller -silent -responseFile /path/grid_install.rsp,安装完成后以root执行root.sh。
验证集群状态
- 查看集群资源:
crsctl status resource -t,确保OCR、Voting Disk、SCAN Listener等资源为“ONLINE”。 - 检查节点心跳:
olsnodes -n -i,确认私有网络通信正常。
数据库软件与RAC数据库创建
安装Oracle Database软件
- 以oracle用户登录,解压数据库安装包,同样使用静默响应文件
db_install.rsp,指定ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1、oracle.install.db.rac.oneInstall=false。 - 安装完成后,以root执行
root.sh(部分版本需手动配置)。
创建RAC数据库
- 使用DBCA(Database Configuration Assistant)静默创建:
dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbName racdb \ -instanceName1 racdb1 \ -instanceName2 racdb2 \ -sysPassword sys_pwd \ -systemPassword system_pwd \ -storageType ASM \ -diskGroupName DATA \ -recoveryGroupName DATA \ -characterSet AL32UTF8 \ -nationalCharacterSet AL16UTF16 \ -initParams db_block_size=8192,sga_target=2G,pga_aggregate_target=500M
- 验证数据库:
sqlplus / as sysdba执行select instance_name,status from v$instance,确保实例状态为“OPEN”。
常见问题与优化
- 共享存储识别失败:检查磁盘权限(
chmod 660 /dev/sdb*)及Grid Infrastructure ASM磁盘发现设置(asmcmd lsdsk)。 - 节点间通信异常:确认私有网络IP配置与hosts文件一致,防火墙规则开放高可用端口(如7777、6888)。
- 性能优化:根据负载调整ASM磁盘组冗余(NORMAL/EXTERNAL)、RAC缓存融合参数(
cluster_interconnects)。
通过以上步骤,可完成虚拟机环境下RAC的搭建,实现高可用数据库集群,实际操作中需严格遵循Oracle官方文档,结合环境灵活调整参数,确保集群稳定运行。



















