一、适用场景
本文适用于:
Oracle Database 19c 单机环境
本地磁盘文件系统部署
不使用 ASM
不使用 RAC
本次服务器磁盘情况:
/dev/sda 100G 系统盘
/dev/sdb 1T Oracle 专用数据盘
本次目标是将 /dev/sdb 通过 LVM 划分为:
| 挂载点 | 大小 | 用途 |
|---|---|---|
/u01 |
150G | Oracle 软件、Inventory、Oracle Base、Oracle Home |
/u02 |
650G | Oracle 数据文件目录 |
/u03 |
224G | FRA、归档、备份目录 |
二、Oracle 官方 OFA 路径依据
Oracle 官方 OFA 示例中的核心路径如下:
1. 软件与 Inventory 目录
/u01/app/oraInventory
/u01/app/oracle
/u01/app/oracle/product/19.0.0/dbhome_1
对应含义:
| 官方路径 | 含义 |
|---|---|
/u01/app/oraInventory |
Central OraInventory 目录 |
/u01/app/oracle |
oracle 用户的 Oracle Base |
/u01/app/oracle/product/19.0.0/dbhome_1 |
Oracle Database Home |
官方示例说明,/u01/app/oraInventory 是中央 Inventory 目录,用于维护服务器上的 Oracle 安装信息;/u01/app/oracle 是 oracle 用户的 Oracle Base;/u01/app/oracle/product/19.0.0/dbhome_1 是 Oracle Database 1 的 Oracle Home。(Oracle 文档)
2. 数据文件目录
官方 OFA 示例给出的数据文件目录是:
/u02/app/oracle/oradata
/u03/app/oracle/oradata
/u04/app/oracle/oradata
官方说明这些是 Oracle data file directories 。(Oracle 文档)
3. 恢复区目录
官方 OFA 示例中恢复文件目录为:
/u01/app/oracle/fast_recovery_area
官方描述其为 Subtree for recovery files 。(Oracle 文档)
三、本次单机环境最终目录规划
Oracle官方→Linux 数据库安装指南→最灵活架构文件路径示例

结合 Oracle 官方 OFA 示例和本次 1TB 磁盘实际情况,本次采用如下目录:
/u01/app/oraInventory
/u01/app/oracle
/u01/app/oracle/product/19.0.0/dbhome_1
/u02/app/oracle/oradata
/u03/app/oracle/fast_recovery_area
/u03/app/oracle/backup
说明:
| 目录 | 作用 | 说明 |
|---|---|---|
/u01/app/oraInventory |
Oracle Inventory | 参考官方 OFA 示例 |
/u01/app/oracle |
Oracle Base | 参考官方 OFA 示例 |
/u01/app/oracle/product/19.0.0/dbhome_1 |
Oracle Home | 参考官方 OFA 示例 |
/u02/app/oracle/oradata |
数据文件目录 | 参考官方 OFA 示例 |
/u03/app/oracle/fast_recovery_area |
FRA / 归档恢复区 | 生产落地时独立到 /u03,避免和软件目录混用 |
/u03/app/oracle/backup |
备份目录 | 用于本机临时备份或 RMAN 备份落盘 |
注意:官方示例中 /u03/app/oracle/oradata 是数据文件目录;本次把 /u03 用作 FRA/备份,是基于"软件、数据、恢复文件分离"的生产落地调整。
如果完全逐字照搬官方示例,/u03 也可以作为数据文件挂载点;但你这台机器只有 1TB 单盘,划分为 /u01、/u02、/u03 后,用 /u03 承担 FRA/备份更利于空间隔离。
四、1TB 磁盘划分方案
本次 /dev/sdb 为新增空盘,最终划分如下:
/dev/sdb1 -> vg_oracle
├── lv_u01 150G -> /u01
├── lv_u02 650G -> /u02
└── lv_u03 224G -> /u03
五、操作流程
1. 确认磁盘为空盘
lsblk -f
blkid /dev/sdb
wipefs -n /dev/sdb
本次结果显示:
/dev/sdb 无文件系统
/dev/sdb 无 UUID
/dev/sdb 无残留签名
说明 /dev/sdb 可以用于 Oracle 目录规划。
2. 创建 GPT 分区
parted /dev/sdb --script mklabel gpt
parted /dev/sdb --script mkpart primary 1MiB 100%
partprobe /dev/sdb
检查:
lsblk
预期结果:
sdb
└─sdb1 1024G
3. 创建 LVM
pvcreate /dev/sdb1
vgcreate vg_oracle /dev/sdb1
检查:
pvs
vgs
本次结果:
/dev/sdb1 vg_oracle <1024.00g
4. 创建逻辑卷
lvcreate -L 150G -n lv_u01 vg_oracle
lvcreate -L 650G -n lv_u02 vg_oracle
lvcreate -l 100%FREE -n lv_u03 vg_oracle
检查:
lvs
lsblk
本次结果:
lv_u01 150G
lv_u02 650G
lv_u03 224G
5. 格式化为 XFS
mkfs.xfs /dev/vg_oracle/lv_u01
mkfs.xfs /dev/vg_oracle/lv_u02
mkfs.xfs /dev/vg_oracle/lv_u03
6. 创建挂载点
mkdir -p /u01 /u02 /u03
7. 临时挂载
mount /dev/vg_oracle/lv_u01 /u01
mount /dev/vg_oracle/lv_u02 /u02
mount /dev/vg_oracle/lv_u03 /u03
检查:
df -hT
lsblk
本次结果:
/dev/mapper/vg_oracle-lv_u01 xfs 150G /u01
/dev/mapper/vg_oracle-lv_u02 xfs 650G /u02
/dev/mapper/vg_oracle-lv_u03 xfs 224G /u03
六、永久挂载配置
/etc/fstab 是 Linux 系统里的文件系统自动挂载配置文件。
它的全名可以理解为:
file system table
也就是:文件系统挂载表。
系统开机时,会读取 /etc/fstab,根据里面的配置自动挂载磁盘分区、LVM、NFS、swap 等。
1. 备份 /etc/fstab
cp /etc/fstab /etc/fstab.bak_$(date +%F_%H%M%S)
2. 获取 UUID
blkid /dev/vg_oracle/lv_u01
blkid /dev/vg_oracle/lv_u02
blkid /dev/vg_oracle/lv_u03
本次 UUID:
/dev/vg_oracle/lv_u01: UUID="60aa0128-fd69-4b5a-9b68-31a2eed867e2" TYPE="xfs"
/dev/vg_oracle/lv_u02: UUID="c55ec5de-8444-4c3e-80cb-6603efd4bbfb" TYPE="xfs"
/dev/vg_oracle/lv_u03: UUID="32a5b078-8431-4066-a140-331203a157cb" TYPE="xfs"
3. 写入 /etc/fstab
cat >> /etc/fstab <<EOF
UUID=60aa0128-fd69-4b5a-9b68-31a2eed867e2 /u01 xfs defaults 0 0
UUID=c55ec5de-8444-4c3e-80cb-6603efd4bbfb /u02 xfs defaults 0 0
UUID=32a5b078-8431-4066-a140-331203a157cb /u03 xfs defaults 0 0
EOF
4. 检查 /etc/fstab
tail -n 10 /etc/fstab
确认包含:
UUID=60aa0128-fd69-4b5a-9b68-31a2eed867e2 /u01 xfs defaults 0 0
UUID=c55ec5de-8444-4c3e-80cb-6603efd4bbfb /u02 xfs defaults 0 0
UUID=32a5b078-8431-4066-a140-331203a157cb /u03 xfs defaults 0 0
5. 测试永久挂载
mount -a
如果没有任何报错,说明 /etc/fstab 配置正确。
执行:
systemctl daemon-reload
再次检查:
df -hT
findmnt /u01
findmnt /u02
findmnt /u03
本次结果正常:
/u01 xfs 150G
/u02 xfs 650G
/u03 xfs 224G
结论:
/u01 /u02 /u03 已完成永久挂载
服务器重启后会自动挂载
七、创建 Oracle 官方 OFA 风格目录
如果 oracle 用户和 oinstall 组已经存在:
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oraInventory
mkdir -p /u02/app/oracle/oradata
mkdir -p /u03/app/oracle/fast_recovery_area
mkdir -p /u03/app/oracle/backup
chown -R oracle:oinstall /u01/app
chown -R oracle:oinstall /u02/app
chown -R oracle:oinstall /u03/app
chmod -R 775 /u01/app
chmod -R 775 /u02/app
chmod -R 775 /u03/app
如果 oracle 用户还没创建,先检查:
id oracle
getent group oinstall
如果不存在,先创建用户组后再授权。
八、Oracle 安装时填写路径
1. Oracle Inventory
/u01/app/oraInventory
2. Oracle Base
/u01/app/oracle
3. Oracle Home
/u01/app/oracle/product/19.0.0/dbhome_1
4. 数据文件目录
/u02/app/oracle/oradata
5. 快速恢复区
/u03/app/oracle/fast_recovery_area
九、单机、ASM、RAC 的区别
1. 单机文件系统部署
也就是你这次做的模式:
/u01/app/oracle/product/19.0.0/dbhome_1
/u02/app/oracle/oradata
/u03/app/oracle/fast_recovery_area
特点:
数据库软件放 /u01
数据文件放 /u02
恢复文件放 /u03
磁盘格式化为 XFS
通过 /etc/fstab 永久挂载
适用于普通单机 Oracle。
2. 单机 ASM / Oracle Restart
如果使用 ASM,软件路径仍参考官方 OFA 示例:
/u01/app/oraInventory
/u01/app/oracle
/u01/app/oracle/product/19.0.0/dbhome_1
/u01/app/oracle/product/19.0.0/grid
官方 OFA 示例中,/u01/app/oracle/product/19.0.0/grid 是 Oracle Grid Infrastructure for a standalone server 的 Oracle Home,由 oracle 用户拥有。(Oracle 文档)
ASM 模式下,数据文件通常不放文件系统目录:
/u02/app/oracle/oradata
/u03/app/oracle/fast_recovery_area
而是放 ASM 磁盘组:
+DATA
+RECO
区别:
文件系统模式:/dev/sdb -> LVM -> XFS -> /u01 /u02 /u03
ASM 模式:磁盘 -> ASM Disk -> ASM Diskgroup -> +DATA / +RECO
重点:ASM 磁盘通常不格式化成 XFS,也不挂载成 /u02、/u03。
3. RAC / Oracle Clusterware
RAC 目录和单机不一样,必须区分 grid 和 oracle 用户。
官方 OFA 示例中的 RAC / Cluster Grid Home 是:
/u01/app/grid
/u01/app/19.0.0/grid
/u01/app/oracle
/u01/app/oracle/product/19.0.0/dbhome_1
其中 /u01/app/grid 是 grid 用户的 Oracle Base;/u01/app/19.0.0/grid 是 Oracle Grid Infrastructure for a cluster 的 Grid Home,安装前由 grid 用户拥有,安装后由 root 拥有。(Oracle 文档)
RAC 常见路径:
Grid Base:
/u01/app/grid
Grid Home:
/u01/app/19.0.0/grid
Oracle Base:
/u01/app/oracle
Oracle Home:
/u01/app/oracle/product/19.0.0/dbhome_1
RAC 数据文件一般放共享 ASM:
+DATA
+RECO
重点:
/u01 是每个节点本地软件目录
+DATA / +RECO 是共享 ASM 磁盘组
不能把 RAC 数据文件放某一个节点本地 /u02
十、最终结论
本次单机文件系统环境
最终规划:
/u01 150G Oracle 软件目录
/u02 650G Oracle 数据文件目录
/u03 224G FRA、归档、备份目录
最终 Oracle 路径:
/u01/app/oraInventory
/u01/app/oracle
/u01/app/oracle/product/19.0.0/dbhome_1
/u02/app/oracle/oradata
/u03/app/oracle/fast_recovery_area
/u03/app/oracle/backup
永久挂载验证完成:
/etc/fstab 已写入
mount -a 无报错
systemctl daemon-reload 已执行
df -hT 正常
findmnt 正常
场景记忆版
单机文件系统:
/u01 软件
/u02 数据文件
/u03 FRA / 归档 / 备份
单机 ASM:
/u01 软件
+DATA 数据文件
+RECO 恢复文件
RAC:
/u01 每个节点放 Grid / Database 软件
+DATA / +RECO 放共享数据库文件
grid 管集群,oracle 管数据库
一句话定稿:本次的 /u01、/u02、/u03 划分适用于 Oracle 单机文件系统部署;路径结构以 Oracle 官方 OFA 示例为基础,结合现场 1TB 磁盘做了软件、数据、恢复区分离。ASM 和 RAC 的核心区别是数据文件不再走本地 XFS 挂载点,而是进入 ASM 磁盘组。