虚拟机RAC安装可行,但前提是共享存储、独立心跳网络、时间同步和资源预留到位;缺任何一项,集群都可能出现节点驱逐或ASM磁盘掉线。
在VMware、KVM这类虚拟化环境里跑Oracle RAC,本质是把物理机集群的底层依赖搬到虚拟化层,Oracle官方文档明确,RAC依赖共享存储和集群心跳,近年来,本地机房和私有云里用虚拟机部署RAC越来越常见,真正决定成败的不是点下一步,而是虚拟化层的地基有没有打好。
虚拟机RAC安装需要共享存储吗?先看底层逻辑
RAC为什么离不开共享存储
Oracle RAC要求多个节点同时访问同一份数据,OCR和Voting Disk存放集群配置与仲裁信息,必须放在所有节点都能读写的共享设备上,ASM磁盘组承载数据文件、控制文件、归档日志,同样需要共享。
- 本地磁盘只能做系统盘,不能做OCR或Voting Disk。
- 单节点能识别、另一个节点看不到的盘,ASM会直接踢掉。
- 共享存储要支持并发写入,不是简单挂载同一个NFS目录就完事。
虚拟机共享盘怎么选
| 方式 | 适用场景 | 注意点 |
|---|---|---|
| VMware共享VMDK | vSphere、ESXi | 厚置备延迟置零,SCSI总线共享选“多写入者” |
| KVM shareable disk | 开源虚拟化 | 使用cache=none、io=native、shareable |
| iSCSI LUN | 跨物理机、混合环境 | 独立存储网络,配置多路径 |
| NFS | 简化部署 | 确认NFS版本、锁机制和Oracle直接NFS支持 |
至少准备3块共享盘:一块做OCR/Voting Disk,一块做DATA,一块做FRA,生产环境建议OCR/Voting使用外部冗余,并单独规划存储网络。
虚拟机RAC安装和物理机安装区别:资源规划与网络配置
资源规划差异
物理机RAC的CPU和内存是独占的,虚拟机RAC则要面对超分、内存回收和CPU就绪时间,业内专家指出,虚拟化层的CPU超分和内存回收会放大RAC心跳延迟,生产环境应保留资源余量。
| 维度 | 物理机RAC | 虚拟机RAC |
|---|---|---|
| 共享存储 | FC、iSCSI | 共享VMDK、iSCSI、NFS |
| 网络 | 物理网卡 | vSwitch、VLAN,注意抖动 |
| CPU | 独占 | 避免过度超分 |
| 成本 | 硬件投入高 | 初期成本低,Oracle授权不变 |
建议每个节点内存从16GB起步,按数据库负载上浮,关闭内存气球、限制CPU超分,给Grid和数据库留足资源。
网络配置要点
虚拟机RAC至少需要3块网卡:Public、Private、SCAN或VIP,Private心跳最好走独立vSwitch或VLAN,不要和业务流量混跑。
- Public:客户端访问、SCAN监听。
- Private:节点间心跳、Cache Fusion。
- VIP:故障漂移地址。
- SCAN:至少1个IP,推荐3个,便于扩展。
/etc/hosts示例:
168.56.11 rac1 192.168.56.12 rac2 192.168.56.13 rac1-vip 192.168.56.14 rac2-vip 192.168.56.15 rac-scan 10.0.0.11 rac1-priv 10.0.0.12 rac2-priv
时间同步用chrony,两个节点必须一致,SELinux和firewalld在安装前关闭或放行,安装oracle-database-preinstall-19c可自动完成大部分内核参数和用户组配置。
北京企业内网虚拟机RAC安装:从建虚机到共享盘
建虚机和系统准备
- 创建2台虚拟机,操作系统选Oracle Linux 7/8/9或RHEL。
- 每台虚机配置双网卡以上,Private网卡独立VLAN。
- 设置主机名,写入
/etc/hosts。 - 关闭SELinux:
setenforce 0,并修改/etc/selinux/config。 - 停止firewalld:
。systemctl stop firewalld && systemctl disable firewalld
- 安装preinstall包,创建grid和oracle用户。
- 配置chrony,执行
chronyc sources -v检查同步。
共享盘与ASM
VMware环境下,在虚拟机设置里添加共享磁盘,磁盘类型选厚置备延迟置零,SCSI控制器共享选“多写入者”,第二台节点添加现有磁盘时,选择同一VMDK。
KVM环境下,使用virsh attach-disk挂载共享盘,参数包含--shareable --cache=none --io=native,两个节点都要能看到相同设备名,建议用scsi_id或/dev/disk/by-id绑定udev规则。
lsblk /usr/lib/udev/scsi_id -g -u -d /dev/sdb
ASM磁盘组规划:
- OCR/VOTING:3块小盘,外部冗余。
- DATA:1块大盘,按数据量扩展。
- FRA:1块盘,用于归档和备份。
虚拟机RAC安装价格大概多少:服务报价通常包含什么
虚拟机RAC安装价格没有统一标准,差异主要看节点数量、共享存储方案、远程还是现场、是否包含ASM和多路径、是否需要补丁升级和验收文档,Oracle软件授权费用通常另计,往往高于安装服务费。
报价时问清这些内容:
- 是否包含共享存储规划和多路径配置。
- 是否包含Grid Infrastructure和数据库软件安装。
- 是否包含建库、ASM磁盘组、备份策略。
- 是否提供集群验证报告和操作文档。
- 现场支持是否含差旅和驻场周期。
不要只比总价,便宜方案可能省掉私有网络规划或共享盘冗余,后期节点驱逐的代价更高,北京、上海、深圳等地服务商较多,远程实施和现场实施价差明显。
虚拟机RAC安装步骤:Grid与数据库落地
安装Grid Infrastructure
解压Grid安装包到/u01/app/19.0.0/grid,运行:
cd /u01/app/19.0.0/grid ./gridSetup.sh
选择“Configure Oracle Grid Infrastructure for a Cluster”,配置SCAN、节点、Public/Private网卡、ASM磁盘组,安装到两个节点后,依次执行
root.sh,第一个节点完成后,再在第二个节点执行。
安装数据库软件和建库
数据库软件用runInstaller,选择Oracle RAC安装,安装完成后执行root.sh,建库使用dbca,选择RAC,实例数设为2,节点选rac1和rac2,数据文件放ASM。
验证命令
crsctl stat res -t srvctl status database -d RACDB asmcmd lsdg cluvfy stage -post crsinst -n rac1,rac2
资源状态应为ONLINE,数据库实例在两个节点运行,ASM磁盘组挂载正常。虚拟机RAC安装的核心不是点下一步,而是共享存储、网络和时间同步的稳定性。 规划到位后再装,成功率会高很多。
虚拟机RAC安装Q&A:共享存储、验证与生产可行性
虚拟机RAC安装一定要用ASM吗?
不一定,Oracle RAC也支持NFS、ACFS等共享存储方案,ASM是官方推荐方式,管理简单,适合大多数虚拟机RAC场景,若使用NFS,要确认NFS版本、锁机制和直接NFS支持,避免I/O路径成为瓶颈。
虚拟机RAC安装后怎么验证集群是否正常?
先跑crsctl stat res -t看资源状态,再跑srvctl status database -d RACDB看实例分布,然后跑asmcmd lsdg确认磁盘组,最后用cluvfy stage -post crsinst -n rac1,rac2做集群健康检查,资源ONLINE、实例双节点运行、ASM挂载正常,说明基础集群可用。
虚拟机RAC安装能跑在生产环境吗?
可以,但要做好资源预留、共享存储冗余、独立心跳网络和监控,行业共识认为,RAC的稳定性七分靠规划,三分靠安装,共享存储和私有网络是底线,生产环境还应关闭内存气球、限制CPU超分,并对VIP、SCAN、ASM磁盘组和节点间心跳做持续监控,验证命令返回SUCCESS,资源状态为ONLINE,就说明集群基础安装完成。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/673458.html





