一、文档目的
本文用于指导在 vSphere Client 虚拟化环境中部署 Oracle 19c RAC 前的基础存储规划,包括:
-
Oracle 19c RAC 安装目录规划;
-
node1 / node2 共享磁盘分配;
-
/u01Oracle 软件目录磁盘永久挂载; -
ASM 磁盘组
+OCR、+DATA、+RECO的对应关系。
本文适用于 Oracle Linux 8.x + Oracle 19c RAC + ASM + vSphere Client 测试或准生产环境。
二、RAC 与单机 Oracle 目录规划区别
Oracle 19c 单机环境安装目录规划与磁盘永久挂载操作指南
https://blog.csdn.net/weixin_45806267/article/details/162009661?spm=1001.2014.3001.5501Oracle 单机环境常见规划:
| 目录 | 用途 |
|---|---|
/u01 |
Oracle 软件目录 |
/u02/oradata |
数据文件目录 |
/u03/archivelog |
归档目录 |
/u04/backup |
备份目录 |
Oracle RAC + ASM 环境推荐规划:
| 类型 | 路径 / 磁盘组 | 用途 |
|---|---|---|
| 本地目录 | /u01 |
安装 Grid / Oracle Database 软件 |
| ASM 磁盘组 | +OCR |
存放 OCR / Voting Disk |
| ASM 磁盘组 | +DATA |
存放数据库数据文件、控制文件、联机日志等 |
| ASM 磁盘组 | +RECO |
存放 FRA、归档日志、RMAN 备份、闪回日志等 |
结论:
单机:/u01 + /u02 + /u03 + /u04
RAC :/u01 + +OCR + +DATA + +RECO
RAC 环境中,数据库文件不建议放在本地 /u02/oradata,而是交给 ASM 统一管理。
三、Oracle 19c RAC 软件目录规划

两台节点均保持一致目录结构。
1. 推荐目录
| 目录 | 属主 | 用途 |
|---|---|---|
/u01/app/oraInventory |
grid:oinstall |
Oracle Inventory 中央库存目录 |
/u01/app/grid |
grid:oinstall |
Grid 用户 Oracle Base |
/u01/app/19.0.0/grid |
grid:oinstall |
Grid Infrastructure Home |
/u01/app/oracle |
oracle:oinstall |
Oracle 用户 Oracle Base |
/u01/app/oracle/product/19.0.0/dbhome_1 |
oracle:oinstall |
Oracle Database Home |
2. 推荐路径
/u01/app/oraInventory
/u01/app/grid
/u01/app/19.0.0/grid
/u01/app/oracle
/u01/app/oracle/product/19.0.0/dbhome_1
3. 目录创建命令
两台节点均执行:
mkdir -p /u01/app/oraInventory
mkdir -p /u01/app/grid
mkdir -p /u01/app/19.0.0/grid
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
chown -R grid:oinstall /u01/app/oraInventory
chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/19.0.0/grid
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app
说明:
Grid Base = /u01/app/grid
Grid Home = /u01/app/19.0.0/grid
Oracle Base = /u01/app/oracle
DB Home = /u01/app/oracle/product/19.0.0/dbhome_1
四、vSphere 共享磁盘规划
1. 当前规划
| 用途 | ASM 磁盘组 | 大小 | vSphere SCSI 位置 |
|---|---|---|---|
| OCR / Voting Disk | +OCR |
100GB | SCSI(1:0) |
| 数据文件 | +DATA |
400GB | SCSI(1:1) |
| 恢复区 / 归档 / 备份 | +RECO |
100GB | SCSI(1:2) |
2. 磁盘用途说明
| ASM 磁盘组 | 用途 |
|---|---|
+OCR |
RAC 集群配置、OCR、Voting Disk |
+DATA |
数据文件、控制文件、联机 redo 日志、临时文件等 |
+RECO |
FRA、归档日志、闪回日志、RMAN 备份、控制文件自动备份等 |
说明:
+OCR = 集群文件
+DATA = 主数据磁盘组
+RECO = 主恢复磁盘组
不建议把三类用途合并成一个大盘再切分。标准做法是按用途独立分配共享盘,便于扩容、排错、备份策略和后期维护。
五、vSphere Client 中 node1 创建共享磁盘
1. 前提
确保 node1、node2 均已关机。
虚拟机:
L08-TEST-DBA-ORACLENODE1(10.2.16.201)
L08-TEST-DBA-ORACLENODE2(10.2.16.202)
2. node1 添加 SCSI 控制器
进入:

node1 → 操作 → 编辑设置 → 添加新设备 → SCSI 控制器
配置如下:
| 项目 | 设置 |
|---|---|
| 控制器类型 | VMware 准虚拟 |
| SCSI 总线共享 | 物理 |

说明:
SCSI 控制器 0:系统盘、本地盘
SCSI 控制器 1:RAC 共享盘
不要把 RAC 共享盘挂在默认 SCSI 控制器 0 上。
3. node1 创建三块新硬盘
在 node1 上选择:
添加新设备 → 硬盘

分别创建:
| 硬盘 | 大小 | 磁盘置备 | 共享 | 虚拟设备节点 |
|---|---|---|---|---|
| OCR | 100GB | 厚置备快速置零 | 多写入器 | SCSI(1:0) |
| DATA | 400GB | 厚置备快速置零 | 多写入器 | SCSI(1:1) |
| RECO | 100GB | 厚置备快速置零 | 多写入器 | SCSI(1:2) |
关键要求:
磁盘置备:厚置备快速置零
共享:多写入器
控制器:SCSI 控制器 1
配置完成后点击:
确定
等待 vSphere 底部任务"重新配置虚拟机"完成。
六、vSphere Client 中 node2 添加现有共享磁盘
1. node2 添加 SCSI 控制器(和node1一致)
进入:
node2 → 操作 → 编辑设置 → 添加新设备 → SCSI 控制器
配置如下:
| 项目 | 设置 |
|---|---|
| 控制器类型 | VMware 准虚拟 |
| SCSI 总线共享 | 物理 |
2. node2 添加 node1 创建的现有硬盘
重点:
node2 不要新建硬盘。
node2 必须选择"添加新设备 → 现有硬盘"。
进入:
node2 → 编辑设置 → 添加新设备 → 现有硬盘



到数据存储中选择 node1 创建的三块 .vmdk 文件。
挂载关系保持一致:
| 用途 | node1 位置 | node2 位置 |
|---|---|---|
| OCR | SCSI(1:0) |
SCSI(1:0) |
| DATA | SCSI(1:1) |
SCSI(1:1) |
| RECO | SCSI(1:2) |
SCSI(1:2) |
每块现有硬盘确认:
共享:多写入器
控制器:SCSI 控制器 1

完成后点击:
确定
等待任务完成。
七、两台虚拟机添加高级参数
node1、node2 均执行以下配置:
进入:
虚拟机 → 编辑设置 → 虚拟机选项 → 高级 → 编辑配置

添加或确认:
| 参数名 | 值 |
|---|---|
disk.EnableUUID |
TRUE |
作用:
便于 Linux 识别磁盘 UUID,后续配置 udev 规则更稳定。
八、启动后验证共享盘
node1、node2 启动后,分别执行:
lsblk
当前示例识别情况:
node1

/dev/sdb 系统盘
/dev/sda 本地 /u01 软件盘
/dev/sdc 400G ASM DATA
/dev/sdd 100G ASM OCR
/dev/sde 100G ASM RECO
node2

/dev/sda 系统盘
/dev/sdb 本地 /u01 软件盘
/dev/sdc 400G ASM DATA
/dev/sdd 100G ASM OCR
/dev/sde 100G ASM RECO
注意:
/dev/sdX 名称在两个节点上可能不一致。
不要仅凭 /dev/sda、/dev/sdb 判断用途。
建议执行:
lsblk -d -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,MODEL,SERIAL,WWN
用于核对磁盘大小、序列号和用途。
九、永久挂载/u01 软件目录磁盘
1. /u01 作用
/u01 是本地软件目录,用于安装:
Grid Infrastructure
Oracle Database 软件
Oracle Inventory
它不是 ASM 共享盘,不需要两个节点共享。
2. 当前规划
| 节点 | /u01 本地磁盘 |
|---|---|
| node1 | /dev/sda |
| node2 | /dev/sdb |
注意:
node1 的 /dev/sda 是空盘,可用于 /u01。
node2 的 /dev/sdb 是空盘,可用于 /u01。
不要动系统盘。
不要动 ASM 共享盘 /dev/sdc、/dev/sdd、/dev/sde。
3. node1 挂载 /u01
node1 执行前确认:
lsblk
确认 /dev/sda 无分区、无挂载后执行:
parted /dev/sda --script mklabel gpt
parted /dev/sda --script mkpart primary xfs 0% 100%
mkfs.xfs -f /dev/sda1
mkdir -p /u01
blkid /dev/sda1
查看 UUID,例如:
UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
备份 fstab:
cp /etc/fstab /etc/fstab.bak.$(date +%F_%H%M%S)
写入 /etc/fstab:
vi /etc/fstab
追加:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /u01 xfs defaults 0 0
挂载并验证:
mount -a
df -h /u01
写入 /etc/fstab 就是永久挂载:
意思是:你把 /u01 的挂载关系写进 /etc/fstab 后,服务器重启时系统会自动把对应磁盘挂载到 /u01,不用每次手工执行 mount。
4. node2 挂载 /u01
node2 执行前确认:
lsblk
确认 /dev/sdb 无分区、无挂载后执行:
parted /dev/sdb --script mklabel gpt
parted /dev/sdb --script mkpart primary xfs 0% 100%
mkfs.xfs -f /dev/sdb1
mkdir -p /u01
blkid /dev/sdb1
备份 fstab:
cp /etc/fstab /etc/fstab.bak.$(date +%F_%H%M%S)
写入 /etc/fstab:
vi /etc/fstab
追加:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /u01 xfs defaults 0 0
挂载并验证:
mount -a
df -h /u01
写入 /etc/fstab 就是永久挂载:
意思是:你把 /u01 的挂载关系写进 /etc/fstab 后,服务器重启时系统会自动把对应磁盘挂载到 /u01,不用每次手工执行 mount。
十、创建 Oracle 软件目录
两台节点 /u01 挂载完成后,分别执行:
mkdir -p /u01/app/oraInventory
mkdir -p /u01/app/grid
mkdir -p /u01/app/19.0.0/grid
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
chown -R grid:oinstall /u01/app/oraInventory
chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/19.0.0/grid
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app
验证:
ls -ld /u01
ls -ld /u01/app
ls -ld /u01/app/grid
ls -ld /u01/app/19.0.0/grid
ls -ld /u01/app/oracle
十一、ASM 共享盘处理原则
| 类型 | 是否格式化 | 是否挂载 | 是否写 /etc/fstab |
管理者 |
|---|---|---|---|---|
/u01 软件盘 |
是,mkfs.xfs |
是,挂 /u01 |
是 | Linux |
+OCR 共享盘 |
否 | 否 | 否 | Oracle ASM |
+DATA 共享盘 |
否 | 否 | 否 | Oracle ASM |
+RECO 共享盘 |
否 | 否 | 否 | Oracle ASM |
以下共享盘不要格式化、不要挂载、不要写入 /etc/fstab:
ASM 共享盘仅作为 Oracle ASM 裸设备使用,不创建 Linux 文件系统,不挂载到操作系统目录,不写入 /etc/fstab,避免操作系统文件系统与 ASM 同时管理同一块磁盘。
/dev/sdc
/dev/sdd
/dev/sde
它们后续交给 ASM 使用:
| Linux 设备 | ASM 磁盘组 |
|---|---|
/dev/sdd |
+OCR |
/dev/sdc |
+DATA |
/dev/sde |
+RECO |
注意:
ASM 磁盘组不是 Linux 目录。
不能执行 mkfs.xfs。
不能 mount 到 /data、/reco、/ocr。
不能写 /etc/fstab。
ASM 共享盘由 Oracle ASM 直接管理,ASM 本身承担数据库文件的存储管理职责。若将 ASM 盘格式化为 XFS/ext4 并挂载到 Linux 目录,会导致操作系统文件系统与 Oracle ASM 同时管理同一块磁盘,存在元数据冲突和数据损坏风险。RAC 环境下共享盘会被多个节点同时访问,普通 Linux 文件系统不具备 RAC 集群并发写入能力,因此 ASM 盘不创建 Linux 文件系统、不挂载到操作系统目录、不写入 /etc/fstab,仅作为裸设备提供给 ASM 创建 +OCR、+DATA、+RECO 磁盘组。
十二、安装脚本 ASM 参数建议
结合当前磁盘识别,安装脚本 ASM 部分建议填写:
-adc Y
-mp N
-od /dev/sdd
-on OCR
-or EXTERNAL
-dd /dev/sdc
-dn DATA
-dr EXTERNAL
-ad /dev/sde
-an RECO
-ar EXTERNAL
说明:
| 参数 | 含义 | 建议 |
|---|---|---|
-od |
OCR 磁盘列表 | /dev/sdd |
-on |
OCR 磁盘组名称 | OCR |
-dd |
DATA 磁盘列表 | /dev/sdc |
-dn |
DATA 磁盘组名称 | DATA |
-ad |
ARCH 磁盘列表 | /dev/sde |
-an |
ARCH 磁盘组名称 | RECO |
虽然脚本页面字段显示为 ARCH,但建议磁盘组名称填写:
RECO
不要填写:
+RECO
ASM 磁盘组名称填写时不带 +,创建完成后在 Oracle 中显示为:
+OCR
+DATA
+RECO
十三、重要注意事项
1. 不要把 ASM 共享盘格式化
以下命令不要对 ASM 盘执行:
mkfs.xfs /dev/sdc
mount /dev/sdc /data
2. node2 不要新建共享盘
node2 必须:
添加现有硬盘
不能:
新建同样大小的硬盘
3. 磁盘名可能不一致
/dev/sdX 在不同节点上可能变化,正式安装前建议通过 WWN、SERIAL 或 udev 固定设备名。
更规范命名示例:
/dev/asm/asm-ocr01
/dev/asm/asm-data01
/dev/asm/asm-reco01
4. /u01 是本地盘
每个节点都有自己的 /u01。路径一致,但底层磁盘不是共享盘。
十四、最终规划汇总
| 类型 | node1 | node2 | 用途 |
|---|---|---|---|
| 系统盘 | /dev/sdb |
/dev/sda |
操作系统 |
| 软件盘 | /dev/sda → /u01 |
/dev/sdb → /u01 |
Grid / Oracle 软件 |
| 共享盘 | /dev/sdd |
/dev/sdd |
+OCR |
| 共享盘 | /dev/sdc |
/dev/sdc |
+DATA |
| 共享盘 | /dev/sde |
/dev/sde |
+RECO |
最终架构:
/u01 → 本地 Oracle / Grid 软件目录
+OCR → RAC 集群 OCR / Voting
+DATA → 数据库数据文件
+RECO → FRA / 归档 / 备份 / 闪回
一句话总结:
Oracle 软件走本地 /u01;
数据库文件走 ASM;
共享盘不挂载、不格式化,直接交给 ASM。