跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
SQL

Linux 下使用 VMware 安装 Oracle 26ai RAC 数据库指南

在 VMware ESXi 环境下构建 Oracle RAC 测试环境。涵盖 Oracle Linux 9 安装加固、网络配置、共享存储 Multi-Writer 方案、Grid Infrastructure 及数据库软件安装。通过克隆节点、配置 Chrony 时间同步和 ASM 磁盘权限,实现无专用 SAN 硬件的集群部署。

黑客帝国发布于 2026/2/26更新于 2026/7/2345 浏览
Linux 下使用 VMware 安装 Oracle 26ai RAC 数据库指南

概念架构

Oracle RAC 的概念架构图如下:

在这里插入图片描述

构建私有 RAC 测试环境最大的障碍是需要 Shared Storage。传统上,这需要昂贵的 SAN 硬件。然而,通过在 VMware ESXi 中配置具有 Multi-writer flag 的虚拟磁盘,我们可以模拟专业的存储环境。这种 Poor man's RAC 方案允许在不需要专用物理存储硬件的情况下构建全功能集群。

接下来的章节将逐步演示这一过程。

测试环境

我们将在 ESXi server (192.168.??.??) 上部署两个运行 Oracle Linux 9 的虚拟机。

IP Address 分配表
HostnamePublic IPPrivate IPVirtual IP (VIP)SCAN IP
AI261192.168.999.86192.168.888.86192.168.999.28192.168.999.88
AI262192.168.999.87192.168.888.87192.168.999.29(Shared)

创建 4 个 20GB 的磁盘作为 RAC 的共享 ASM 磁盘。

在第一个节点安装 OL9

将 Oracle Linux 9 的 ISO 镜像上传到 ESXi 数据存储,然后使用该 ISO 文件启动并安装 Linux。

操作系统加固

安装操作系统后,设置 Time Zone 并禁用冲突的服务:

timedatectl set-timezone Asia/Shanghai # 禁用 Firewall 和 SELinux systemctl stop firewalld systemctl disable firewalld sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config setenforce 0 # 禁用 Avahi daemon 以防止 Multicast 冲突 systemctl stop avahi-daemon.socket systemctl stop avahi-daemon systemctl disable avahi-daemon.socket systemctl disable avahi-daemon 
网络配置

使用 nmcli 配置 Public Interface。请注意,Private Interconnect 将在后续步骤或通过第二个网卡处理。

nmcli connection modify ens192 ipv4.addresses 192.168.999.86/24 nmcli connection modify ens192 ipv4.gateway 192.168.999.1 nmcli connection modify ens192 ipv4.dns 192.168.888.10 nmcli connection modify ens192 ipv4.method manual nmcli connection up ens192 

在两个节点的 /etc/hosts 中配置 IP:

192.168.999.86 AI261 192.168.999.87 AI262 192.168.888.86 AI261-priv 192.168.888.87 AI262-priv 192.168.999.28 AI261-vip 192.168.999.29 AI262-vip 192.168.999.88 AI26-SCAN 
Oracle Pre-installation 与用户创建

利用 Oracle Pre-installation RPM 自动配置 Kernel Parameters 并创建 oracle 用户。之后,手动创建 grid 用户及 ASM 相关的 Groups。

dnf -y install oracle-ai-database-preinstall-26ai # 创建 ASM groups 和 Grid 用户 groupadd -g 54331 asmadmin groupadd -g 54332 asmdba groupadd -g 54333 asmoper useradd -u 54322 -g oinstall -G asmadmin,asmdba,asmoper,dba grid # 更新 Oracle 用户组 usermod -a -G asmdba oracle # 为 grid 用户应用 limits cp /etc/security/limits.d/oracle-ai-database-preinstall-26ai.conf /etc/security/limits.d/grid.conf sed -i 's/oracle/grid/g' /etc/security/limits.d/grid.conf 
环境变量与目录结构

在 .bash_profile 文件中为 grid 用户配置环境变量:

export ORACLE_BASE=/u01/app/grid export ORACLE_HOME=/u01/app/26ai/grid export ORACLE_SID=+ASM1 export PATH=$ORACLE_HOME/bin:$PATH 

为 oracle 用户配置:

export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/26ai/dbhome_1 export ORACLE_SID=AI261 export PATH=$ORACLE_HOME/bin:$PATH 

创建目录:

mkdir -p /u01/app/26ai/grid mkdir -p /u01/app/grid mkdir -p /u01/app/oracle/product/26ai/dbhome_1 chown grid:oinstall /u01 -R chown oracle:oinstall /u01/app/oracle -R 

创建第二个节点

克隆第一个节点 (AI261) 以创建 AI262。克隆后修改以下内容:

  1. 修改 IP 地址。
  2. 修改 Hostname。
  3. 添加与 Node 1 共享的磁盘。
  4. 修改 oracle 和 grid 用户的 .bash_profile,将 ORACLE_SID 环境变量从 AI261 修改为 AI262。

时间同步策略

在 RAC 环境中,Clock Drift 是导致 Cluster Eviction 的主要原因。我们采用两层同步方案。

Host-to-Guest 同步

确保第一个节点配置为从 Host 接收时间。

  1. vSphere Client:右键点击 VM -> Edit Settings -> VM Options -> VMware Tools。
  2. Time:勾选 Synchronize guest time with host。
Peer-to-Peer Chrony 配置

为了确保节点间的毫秒级精度,将 AI261 配置为 Local Time Master,AI262 作为其 Client。

在 AI261 的 /etc/chrony.conf 中:

local stratum 10 allow 192.168.999.0/24 

在 AI262 的 /etc/chrony.conf 中,注释掉以 pool 开头的行,并添加以下内容:

server AI261 iburst 

验证同步状态:

[root@AI262 ~]# systemctl restart chronyd [root@AI262 ~]# chronyc makestep 200 OK [root@AI262 ~]# chronyc sources -v MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* AI261 10 6 17 22 +5654ns[ +32ms] +/- 75us 

这证实了 AI262 不仅连接到了 Master Node,而且成功同步了时钟。Offset 降至仅 5654 纳秒(几乎为零)。

共享存储配置

Multi-Writer 方案

首先添加第二个 SCSI Controller。所有共享磁盘都将位于此控制器上。

在这里插入图片描述

我们将使用 Multi-writer flag 来共享磁盘(VMware 最佳实践),因此 SCSI Bus Sharing 应保持为 None。SCSI Controller 应设置为 VMware Paravirtual 以获得最佳性能。

在这里插入图片描述

添加 20GB 新硬盘。

在这里插入图片描述

将其添加到新创建的 SCSI Controller 上,将磁盘设置为 Thick provisioned, eagerly zeroed 和 Independent – persistent,并将 Sharing 设置为 Multi-writer。

在第一个节点上添加另外三个 20GB 磁盘,保持与第一个磁盘相同的设置。

接着,在其他节点上通过选择 Existing Hard Disk 添加这四个 VMDK,并将其添加到新创建的 SCSI Controller 中。

在这里插入图片描述

在这里插入图片描述

启动服务器并检查磁盘:

[root@AI261 ~]# ll /dev/sd* brw-rw---- 1 root disk 8, 0 Feb 3 15:01 /dev/sda brw-rw---- 1 root disk 8, 1 Feb 3 15:01 /dev/sda1 brw-rw---- 1 root disk 8, 2 Feb 3 15:01 /dev/sda2 brw-rw---- 1 root disk 8, 16 Feb 3 15:01 /dev/sdb brw-rw---- 1 root disk 8, 32 Feb 3 15:01 /dev/sdc brw-rw---- 1 root disk 8, 48 Feb 3 15:01 /dev/sdd brw-rw---- 1 root disk 8, 64 Feb 3 15:01 /dev/sde [root@AI261 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 160G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 159G 0 part ├─ol-root 252:0 0 70G 0 lvm / ├─ol-swap 252:1 0 7.9G 0 lvm [SWAP] └─ol-home 252:2 0 81.1G 0 lvm /home sdb 8:16 0 20G 0 disk sdc 8:32 0 20G 0 disk sdd 8:48 0 20G 0 disk sde 8:64 0 20G 0 disk sr0 11:0 1 1024M 0 rom 
磁盘分区

在第一个节点上对磁盘进行分区:

for disk in sdb sdc sdd sde; do fdisk /dev/${disk} <<EOF n p 1 w EOF done 

验证新建的分区

 [root@AI261 ~]# ll /dev/sd* brw-rw---- 1 root disk 8, 0 Feb 3 15:01 /dev/sda brw-rw---- 1 root disk 8, 1 Feb 3 15:01 /dev/sda1 brw-rw---- 1 root disk 8, 2 Feb 3 15:01 /dev/sda2 brw-rw---- 1 root disk 8, 16 Feb 3 15:03 /dev/sdb brw-rw---- 1 root disk 8, 17 Feb 3 15:03 /dev/sdb1 brw-rw---- 1 root disk 8, 32 Feb 3 15:03 /dev/sdc brw-rw---- 1 root disk 8, 33 Feb 3 15:03 /dev/sdc1 brw-rw---- 1 root disk 8, 48 Feb 3 15:03 /dev/sdd brw-rw---- 1 root disk 8, 49 Feb 3 15:03 /dev/sdd1 brw-rw---- 1 root disk 8, 64 Feb 3 15:03 /dev/sde brw-rw---- 1 root disk 8, 65 Feb 3 15:03 /dev/sde1 

在 VM 的 .vmx 文件中,确保设置了 disk.enableuuid = 'TRUE'。

ASM 设备的 Udev Rules

为了确保 grid 用户在重启后仍能访问磁盘,我们使用 scsi_id 识别磁盘并通过 udev 分配权限。在 Oracle 26ai 中,Group 已从 asmadmin 更改为 asmdba。

识别 UUID:

/usr/lib/udev/scsi_id -g -u -d /dev/sdb1 

创建 /etc/udev/rules.d/99-oracle-asm.rules:

KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c2947fc68265290c9ff1a9c58777", OWNER="grid", GROUP="asmdba", MODE="0660" KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c29a2b5bdb6aa0df4285c524b83b", OWNER="grid", GROUP="asmdba", MODE="0660" KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c29a121dc5634ba13ecc45ce9691", OWNER="grid", GROUP="asmdba", MODE="0660" KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c2933fbeffeeae7b086679d59069", OWNER="grid", GROUP="asmdba", MODE="0660" 

应用并验证 Rules:

# Reload the udev rules udevadm control --reload-rules # Trigger the rules for all block devices udevadm trigger --type=devices --action=add # Verify ownership and permissions # ls -al /dev/sd[b-e]1 brw-rw---- 1 grid asmdba 8, 17 Feb 3 15:07 /dev/sdb1 brw-rw---- 1 grid asmdba 8, 33 Feb 3 15:07 /dev/sdc1 brw-rw---- 1 grid asmdba 8, 49 Feb 3 15:07 /dev/sdd1 brw-rw---- 1 grid asmdba 8, 65 Feb 3 15:07 /dev/sde1 

安装 Grid Infrastructure

将 Grid 软件移动到 Grid Home 并解压,随后启动安装向导:

[root@AI261 ~]# mv LINUX.X64_2326100_grid_home.zip /u01/app/26ai/grid/ [root@AI261 ~]# su - grid [grid@AI261 ~]$ cd $ORACLE_HOME [grid@AI261 grid]$ unzip -q LINUX.X64_2326100_grid_home.zip [grid@AI261 grid]$ ./gridSetup.sh Launching Oracle Grid Infrastructure Setup Wizard... 

在这里插入图片描述

在这里插入图片描述

选择 Cluster Name 和 SCAN Name,确保 SCAN Name 是可解析的。

在这里插入图片描述

添加第二个节点到列表中

在这里插入图片描述

配置节点间的 Passwordless SSH connectivity

在这里插入图片描述

在这里插入图片描述

定义 network configuration.

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

点击 'Fix & check Again'

在这里插入图片描述

在这里插入图片描述

注意:我们使用 /etc/hosts 并且已经验证过手动同步,那么 SCAN 和 NTP 的检查失败可以忽略。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

安装数据库软件

以 oracle 用户登录安装数据库软件:

[oracle@AI261 ~]$ cd $ORACLE_HOME [oracle@AI261 dbhome_1]$ unzip -q ~/LINUX.X64_2326100_db_home.zip [oracle@AI261 dbhome_1]$ ./runInstaller 

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

创建数据库

使用 DBCA 创建数据库。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在 Prerequisite Checks 页面,点击 Ignore All 并继续。

在这里插入图片描述

在这里插入图片描述

目录

  1. 概念架构
  2. 测试环境
  3. IP Address 分配表
  4. 在第一个节点安装 OL9
  5. 操作系统加固
  6. 网络配置
  7. Oracle Pre-installation 与用户创建
  8. 环境变量与目录结构
  9. 创建第二个节点
  10. 时间同步策略
  11. Host-to-Guest 同步
  12. Peer-to-Peer Chrony 配置
  13. 共享存储配置
  14. Multi-Writer 方案
  15. 磁盘分区
  16. ASM 设备的 Udev Rules
  17. Reload the udev rules udevadm control --reload-rules # Trigger the rules for all block devices udevadm trigger --type=devices --action=add # Verify ownership and permissions # ls -al /dev/sd[b-e]1 brw-rw---- 1 grid asmdba 8, 17 Feb 3 15:07 /dev/sdb1 brw-rw---- 1 grid asmdba 8, 33 Feb 3 15:07 /dev/sdc1 brw-rw---- 1 grid asmdba 8, 49 Feb 3 15:07 /dev/sdd1 brw-rw---- 1 grid asmdba 8, 65 Feb 3 15:07 /dev/sde1
  18. 安装 Grid Infrastructure
  19. 安装数据库软件
  20. 创建数据库
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 16 篇大模型领域必读论文
  • JMeter 接口并发测试入门教程
  • AI 辅助测试用例生成实战指南
  • 开源低代码平台 Microi 吾码:架构、部署与实战指南
  • JavaScript 反混淆工具使用指南与实战
  • 个人如何利用 Python 爬虫技术实现变现
  • 基于 AI 智能体快速完成 C 语言与前端实训项目实战
  • Python 环境安装与 Pip 配置完整指南
  • 基于 Rust 与 DeepSeek 构建高性能 Text-to-SQL 数据库代理服务
  • Tailscale 零信任网络搭建:Linux/Windows/macOS 多平台配置教程
  • MySQL 数据类型深度解析:选对类型提升性能
  • AI Agent 框架:工作流与 Agent 运行时模块设计
  • Python 全栈开发指南:基础、后端、爬虫、数据分析与机器学习实战
  • AI 大模型系统学习路径与核心应用场景
  • ESP32-S3 微型无人机系统架构与飞控实现
  • Python+Agent 入门实战:零基础搭建可复用 AI 智能体
  • DFS/BFS 图论基础与海岛问题实战 (C/C++)
  • 远程工具横评:UU 远程功能升级与性能对比
  • AI 转型攻略:产品经理如何顺利过渡至 AI 领域
  • Python 编程基础:从零开始掌握核心概念

相关免费在线工具

  • SQL 美化和格式化

    在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。 在线工具,SQL 美化和格式化在线工具,online

  • SQL转CSV/JSON/XML

    解析 INSERT 等受限 SQL,导出为 CSV、JSON、XML、YAML、HTML 表格(见页内语法说明)。 在线工具,SQL转CSV/JSON/XML在线工具,online

  • CSV 工具包

    CSV 与 JSON/XML/HTML/TSV/SQL 等互转,单页多 Tab。 在线工具,CSV 工具包在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online