版本背景:Oracle AI Database 26ai 企业版以 2026 年 1 月季度 Release Update(23.26.1) 形式正式支持 Linux x86‑64 本地部署,实际版本号形如 23.26.1.0.0 。安装包名为
LINUX.X64_2326100_db_home.zip。建议使用 Oracle Linux 9(最新 release level,如 OL 9.6/9.7)。RAC 部署仍沿用"Grid Infrastructure(GI)+ RDBMS 两个 ORACLE_HOME"的经典架构。
一、部署前规划(必须先确定,否则后续命令无从填写)
| 规划项 | 说明 |
|---|---|
| 主机名 | 每节点一个,RAC 主机名禁止使用大写字符,否则安装失败 |
| 公共网络 | 每节点一个公网 IP(业务/VIP 宿主) |
| 私有网络 | 每节点一个私网 IP(集群心跳/Cache Fusion,建议万兆/多网卡冗余) |
| VIP | 每节点一个虚拟 IP |
| SCAN | 1 个 SCAN IP(或 3 个做冗余),对应 SCAN 名称 |
| 共享存储 | 裸设备/ASM 磁盘,至少:OCR/Voting 盘组 + DATA 盘组 + FRA 盘组 |
| GI ORACLE_HOME | 如 /u01/app/23.26.0/grid |
| DB ORACLE_HOME | 如 /u01/app/oracle/product/23.26.0/dbhome_1 |
| 内存/根分区 | 根分区建议 ≥ 50G,内存按库规模规划并预留大页 |
/etc/hosts 两个节点都要写(示例):
bash
cat >> /etc/hosts <<'EOF'
10.10.10.61 rac1-priv
10.10.10.62 rac2-priv
192.168.11.61 rac1
192.168.11.62 rac2
192.168.11.63 rac1-vip
192.168.11.64 rac2-vip
192.168.11.65 rac-scan
EOF
二、操作系统与先决条件配置(两节点均执行)
bash
# 1) 关闭防火墙与 SELinux
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 2) 26ai 官方预安装 RPM(自动装齐依赖包并完成大部分系统预配置)
dnf install -y oracle-ai-database-preinstall-26ai
# 离线方式:
# wget https://yum.oracle.com/repo/OracleLinux/OL9/appstream/x86_64/getPackage/oracle-ai-database-preinstall-26ai-1.0-1.el9.x86_64.rpm
# dnf install -y oracle-ai-database-preinstall-26ai-1.0-1.el9.x86_64.rpm
# 3) 时间同步(chrony/ntp 必须一致,否则触发节点驱逐)
systemctl enable --now chronyd
# 4) 关闭透明大页(THP)
# /sys/kernel/mm/transparent_hugepage/enabled 设为 never(写入开机脚本)
若使用 ESXi 等虚拟化且为 EFI 引导,须关闭安全引导(Secure Boot) ,否则执行 root.sh 会因 ACFS 安装步骤报
CLSRSC-594 / CLSRSC-400而失败。
三、共享存储与 ASM 准备
bash
# 查看共享盘
fdisk -l | grep sd
# 使用 udev 规则将共享盘绑定为 /dev/asm-* 形式(两节点一致)
# 例:/dev/sdb -> /dev/asm-ocr01,/dev/sdc -> /dev/asm-data01 ...
# 然后为 grid:asmadmin 属主、0660 权限
要点:
- OCR/Voting 盘组建议独立,26ai 新增"为 OCR 自动备份单独配置磁盘组"的步骤,建议预留。
- 两节点看到的设备路径/权限/属主必须完全一致。
四、集群用户、目录与 SSH 互信
bash
# 组与用户(26ai 预安装包通常已创建,核对即可)
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 asmadmin
groupadd -g 54325 asmdba
groupadd -g 54326 asmoper
useradd -u 54321 -g oinstall -G dba,oper,asmadmin,asmdba grid
useradd -u 54322 -g oinstall -G dba,oper,asmdba,backupdba,dgdba,kmdba,racdba oracle
# 目录
mkdir -p /u01/app/23.26.0/grid /u01/app/oracle/product/23.26.0/dbhome_1
chown -R grid:oinstall /u01/app/23.26.0
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app
# SSH 互信(grid 与 oracle 两个用户都要做,双向免密)
su - grid
ssh-keygen -t rsa
ssh-copy-id rac1; ssh-copy-id rac2
# oracle 用户同理
⚠️ 26ai 避坑 :19c 时代为绕过高版本 OpenSSH 导致的互信失败,常手工把
/usr/bin/scp改成scp.original -T $*。26ai 已修复该问题,切勿再做此改动 ,否则 GI 安装会报PRCF-2041 file transfer to remote node failed。如已误改,用mv /usr/bin/scp.original /usr/bin/scp还原。
五、安装前环境校验
bash
# 以 grid 用户解压 GI 介质到 GI_HOME,运行 cluvfy 预检查
cd /u01/app/23.26.0/grid
./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose
# 安装 cvuqdisk(两节点 root 执行)
export CVUQDISK_GRP=oinstall
rpm -ivh /u01/app/23.26.0/grid/cv/rpm/cvuqdisk-*.rpm
-fixup 会输出建议修复项;预检查通过后再进入安装。
六、安装 Grid Infrastructure(集群软件)
6.1 图形化
以 grid 用户执行 ./gridSetup.sh,选择 "Install Oracle Grid Infrastructure for a Cluster"。
6.2 静默安装(关键命令)
bash
su - grid
cd /u01/app/23.26.0/grid
./gridSetup.sh -silent \
-responseFile /u01/app/23.26.0/grid/response/gridsetup.rsp \
-ignorePrereqFailure
GI 响应文件 gridsetup.rsp 关键项:
properties
oracle.install.option=CRS_CONFIG
ORACLE_BASE=/u01/app/grid
oracle.install.asm.OSDBA=asmdba
oracle.install.asm.OSOPER=asmoper
oracle.install.asm.OSASM=asmadmin
oracle.install.crs.config.clusterName=rac-cluster
oracle.install.crs.config.scanType=LOCAL_SCAN
oracle.install.crs.config.gpnp.scanName=rac-scan
oracle.install.crs.config.gpnp.scanPort=1521
oracle.install.crs.config.clusterNodes=rac1:rac1-vip:HUB,rac2:rac2-vip:HUB
oracle.install.crs.config.networkInterfaceList=ens192:192.168.11.0:1,ens224:10.10.10.0:5
oracle.install.crs.config.storageOption=ASM_STORAGE
oracle.install.asm.diskGroup.name=OCR
oracle.install.asm.diskGroup.redundancy=NORMAL
oracle.install.asm.diskGroup.disks=/dev/asm-ocr01,/dev/asm-ocr02,/dev/asm-ocr03
oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm-*
6.3 执行 root.sh(每个节点依次执行,先第一个节点再第二个)
bash
# 节点一
/u01/app/23.26.0/grid/root.sh
# 等第一个节点完全完成后,再在节点二执行
/u01/app/23.26.0/grid/root.sh
6.4 ASM 磁盘组创建(静默)
bash
# 以 grid 用户,用 asmca 或 asmcmd
asmca -silent -createDiskGroup -diskGroupName DATA \
-diskList /dev/asm-data01,/dev/asm-data02 -redundancy NORMAL \
-au_size 4 -compatible.asm 23.0.0.0 -compatible.rdbms 23.0.0.0
asmca -silent -createDiskGroup -diskGroupName FRA \
-diskList /dev/asm-fra01 -redundancy EXTERNAL
七、安装 Oracle Database 软件(RDBMS Home)
bash
su - oracle
cd $ORACLE_HOME
./runInstaller -silent -ignorePrereqFailure \
-responseFile /u01/soft/database/response/db_install.rsp
db_install.rsp 关键项(注意 26ai 格式变化):
properties
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/23.26.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA=dba
oracle.install.db.OSOPER=oper
oracle.install.db.OSBACKUPDBA=backupdba
oracle.install.db.OSDGDBA=dgdba
oracle.install.db.OSKMDBA=kmdba
oracle.install.db.OSRACDBA=racdba
oracle.install.db.CLUSTER_NODES=rac1,rac2
⚠️ 26ai 静默响应文件最大变化 :原有的
oracle.install.db.前缀被取消,写成OSDBA=dba、OSOPER=oper等。旧的 19c 静默响应文件与安装命令在 26ai 上不能直接复用,否则安装会失败。
安装完成后,按提示以 root 在两节点执行:
bash
/u01/app/oracle/product/23.26.0/dbhome_1/root.sh
八、创建 RAC 数据库
bash
su - oracle
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbName racdb -sid racdb \
-responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword 'Oracle_123' \
-systemPassword 'Oracle_123' \
-createAsContainerDatabase true \
-numberOfPDBs 1 -pdbName pdb1 -pdbAdminPassword 'Oracle_123' \
-databaseType MULTIPURPOSE \
-memoryMgmtType auto_sga -totalMemory 4096 \
-storageType ASM \
-diskGroupName DATA \
-recoveryGroupName FRA \
-redoLogFileSize 200 \
-emConfiguration NONE \
-nodelist rac1,rac2 \
-ignorePreReqs
九、部署后验证
bash
# 集群资源状态(grid 用户)
crsctl stat res -t
# 数据库/实例/服务状态
srvctl status database -d racdb
srvctl status asm -detail
srvctl config scan
sql
-- 查看各实例状态(已核对视图与字段在 26ai 存在)
SELECT inst_id, instance_name, host_name, status FROM gv$instance;
bash
# 校验集群配置一致性
cluvfy comp healthcheck -collect cluster -bestpractices
十、26ai 相对 19c 的关键变化与避坑清单
- 预安装包换代 :
oracle-ai-database-preinstall-26ai一站式完成依赖与系统配置。 - 静默响应文件去前缀 :
OSDBA=dba取代oracle.install.db.OSDBA_GROUP=dba,旧命令失效。 - 不再手工修 scp :26ai 已修复高版本 SSH 互信问题,多此一举反而导致
PRCF-2041。 - 新增独立 OCR 自动备份磁盘组,安装向导中多一步配置。
- 新增自动纠错:可自动修复已知错误配置。
- 新增 HugePages 大页检查与建议。
- 移除 GiMR 功能。
- EFI + Secure Boot 环境 :root.sh 会因 ACFS 安装报
CLSRSC-594 / CLSRSC-400,需关闭安全引导后重装。 - 主机名不得含大写字符(沿用历史限制)。
十一、一键脚本
11.3 自建一键脚本模板(可直接打印保存后使用)
下面是一个编排型一键脚本模板,把第六~八章的静默安装串起来(需先按第一~五章完成规划与介质准备):
bash
#!/bin/bash
# ============================================================
# Oracle 26ai RAC 一键编排脚本(模板,执行前请核对变量)
# 运行节点:第一个节点(rac1),root 执行
# ============================================================
set -e
# ---------- 变量区(按实际环境修改) ----------
NODE1=rac1
NODE2=rac2
GI_HOME=/u01/app/23.26.0/grid
DB_HOME=/u01/app/oracle/product/23.26.0/dbhome_1
GI_RSP=/u01/app/23.26.0/grid/response/gridsetup.rsp
DB_RSP=/u01/soft/database/response/db_install.rsp
GDB=racdb
PWD_Oracle='Oracle_123'
log(){ echo -e "\n[$(date '+%F %T')] ==== $* ===="; }
# ---------- 0. 前置检查 ----------
log "0. 检查共享盘与互信"
fdisk -l | grep -q "/dev/asm-" || { echo "共享盘未就绪,退出"; exit 1; }
su - grid -c "ssh -o BatchMode=yes $NODE2 'hostname'" || { echo "grid 互信未建立"; exit 1; }
su - oracle -c "ssh -o BatchMode=yes $NODE2 'hostname'" || { echo "oracle 互信未建立"; exit 1; }
# ---------- 1. 环境预检查 ----------
log "1. cluvfy 预检查"
su - grid -c "cd $GI_HOME && ./runcluvfy.sh stage -pre crsinst -n $NODE1,$NODE2 -fixup -verbose"
# ---------- 2. 安装 Grid Infrastructure ----------
log "2. 静默安装 GI"
su - grid -c "cd $GI_HOME && ./gridSetup.sh -silent -responseFile $GI_RSP -ignorePrereqFailure"
# ---------- 3. 执行 root.sh(两节点,顺序执行) ----------
log "3. 节点一 root.sh"
$GI_HOME/root.sh
log "3. 节点二 root.sh"
ssh $NODE2 "$GI_HOME/root.sh"
# ---------- 4. 创建 ASM 磁盘组 ----------
log "4. 创建 DATA / FRA 磁盘组"
su - grid -c "asmca -silent -createDiskGroup -diskGroupName DATA \
-diskList /dev/asm-data01,/dev/asm-data02 -redundancy NORMAL -au_size 4 \
-compatible.asm 23.0.0.0 -compatible.rdbms 23.0.0.0"
su - grid -c "asmca -silent -createDiskGroup -diskGroupName FRA \
-diskList /dev/asm-fra01 -redundancy EXTERNAL"
# ---------- 5. 安装数据库软件 ----------
log "5. 静默安装 RDBMS 软件"
su - oracle -c "cd $DB_HOME && ./runInstaller -silent -ignorePrereqFailure -responseFile $DB_RSP"
$DB_HOME/root.sh
ssh $NODE2 "$DB_HOME/root.sh"
# ---------- 6. 创建 RAC 数据库 ----------
log "6. 静默建库"
su - oracle -c "dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbName $GDB -sid $GDB \
-characterSet AL32UTF8 \
-sysPassword '$PWD_Oracle' -systemPassword '$PWD_Oracle' \
-createAsContainerDatabase true -numberOfPDBs 1 -pdbName pdb1 -pdbAdminPassword '$PWD_Oracle' \
-databaseType MULTIPURPOSE -memoryMgmtType auto_sga -totalMemory 4096 \
-storageType ASM -diskGroupName DATA -recoveryGroupName FRA \
-redoLogFileSize 200 -emConfiguration NONE -nodelist $NODE1,$NODE2 -ignorePreReqs"
# ---------- 7. 验证 ----------
log "7. 集群与数据库状态"
su - grid -c "crsctl stat res -t"
su - oracle -c "srvctl status database -d $GDB"
echo -e "\n✅ 一键部署流程结束,请手工核对 crsctl/srvctl 输出。"
说明:以上为编排模板 ,需按实际网络、存储、密码与响应文件调整;响应文件请务必使用 26ai 新格式 (无
oracle.install.db.前缀)。生产环境建议先在小规模测试环境完整演练。
附:关键命令速查
| 阶段 | 关键命令 |
|---|---|
| 环境预检查 | runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose |
| 装 GI | gridSetup.sh -silent -responseFile gridsetup.rsp |
| GI 配置 | $GI_HOME/root.sh(逐节点) |
| 建盘组 | asmca -silent -createDiskGroup ... |
| 装 DB 软件 | runInstaller -silent -responseFile db_install.rsp |
| 建库 | dbca -silent -createDatabase ... |
| 状态验证 | crsctl stat res -t、srvctl status database -d racdb |
| 一致性校验 | cluvfy comp healthcheck -collect cluster -bestpractices |