Oracle ACE

Oracle 26ai

Oracle AI Database 26ai 安装记录

00. 写在前面

前面介绍了,Oracle AI Database 26ai (后面简称 Oracle 26ai) 在 2026 年 1 月正式 GA 了 Linux x86-64 on premises 版本,这是继 19c 之后又一个长期支持版本(LTS)。说实话,从 19c 直接跳到 26ai,这个版本号跨度有点大,但背后的逻辑很清晰:Oracle 要把 AI 能力直接写进数据库内核,而不是让用户再去拼拼凑凑搞一堆外围组件。

笔者这次在 Linux 环境上完整走了一遍安装流程,从下载软件到建库成功,全程大概 40 分钟。这篇文章把实操步骤原原本本记录下来,供各位同行参考。

文末还会简单提几个 26ai 的亮眼新特性,后面我会另起文章逐个深挖。

01. 软件下载与版本说明

Oracle 26ai 的 on premises 版本在 2026 年 1 月发布,版本号为 23.26.1.0.0。虽然叫 26ai,但底层代码线还是 23c 的延续,可以理解成 23c 的升级形态。

下载地址:

https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

如果你是开发者,可以选择 Oracle AI Database Free 版本。Oracle 还提供了容器部署,方便开发者一键拉起数据库。

1
docker pull container-registry.oracle.com/database/free:latest

回到正题,我们继续介绍 Oracle 企业版。

你需要准备两个文件:

文件名 说明 大小
LINUX.X64_2326100_db_home.zip 数据库安装包本体 2.24 GB
oracle-ai-database-preinstall-26ai-1.0-1.el9.x86_64.rpm RHEL9 预安装包 34 KB

把这两个文件上传到服务器,咱们就可以开工了。🌻

02. 操作系统环境准备

Oracle 官方给 26ai 提供了专门的预安装 RPM 包,一键安装自动就把内核参数调好了。

2.1 安装预安装包

直接 dnf 安装,它会自动把依赖全部拉齐:

1
[root@rl9 data]# dnf install oracle-ai-database-preinstall-26ai-1.0-1.el9.x86_64.rpm

这个 RPM 会自动帮你完成以下事情:

自动配置项 具体动作
创建 oracle 用户和组 oinstall、dba、oper、backupdba、dgdba、kmdba、racdba
内核参数调整 shmmax、shmall、sem 信号量、file max 等
系统限制调整 nofile、nproc、stack 等 ulimit 参数
安装依赖包 ksh、sysstat、libaio、compat 等

装完之后检查一下 oracle 用户是否到位:

1
2
[root@rl9 data]# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)

看到这个输出,说明预安装包已经帮你把用户和组都建好了,非常省心。👍

2.2 创建目录结构

1
2
3
mkdir -p /u01/app/{oracle,oraInventory}
chown -R oracle:oinstall /u01/app/
chmod -R 775 /u01/app

03. 数据库软件安装

3.1 解压安装包

切到 oracle 用户,解压 zip 包到 ORACLE_HOME:

1
2
3
4
su - oracle
mkdir -p /u01/app/oracle/product/23.0.0/dbhome_1
cd /u01/app/oracle/product/23.0.0/dbhome_1
unzip -q /data/LINUX.X64_2326100_db_home.zip

注意:26ai 的安装包解压后就是 23.0.0 的目录结构,这是正常的,因为 26ai 基于 23c 代码线。

3.2 准备响应文件

笔者推荐从官方模板拷贝一份,然后按需修改。26ai 的响应文件版本号是 v23.0.0,和安装包对应:

1
cp $ORACLE_HOME/install/response/db_install.rsp /tmp/my_install.rsp

关键配置项如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v23.0.0
installOption=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/23.0.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
installEdition=EE
OSDBA=dba
OSOPER=oper
OSBACKUPDBA=backupdba
OSDGDBA=dgdba
OSKMDBA=kmdba
OSRACDBA=racdba
executeRootScript=true
configMethod=ROOT

这里笔者选择的是 INSTALL_DB_SWONLY,也就是只装软件,后面再用 DBCA 建库。这种方式更灵活,适合生产环境标准化部署。

3.3 静默安装

1
2
3
4
export DISPLAY=oracle26ai.shawnyan.cn:0
cd /u01/app/oracle/product/23.0.0/dbhome_1

./runInstaller -silent -ignorePrereqFailure -responseFile /tmp/my_install.rsp -waitforcompletion

如果预安装包已经帮你把环境搞好了,这里一般不会报错。装完之后记得按提示运行 root.sh

04. 创建数据库

4.1 配置环境变量

1
2
3
export ORACLE_SID=mydb
export ORACLE_HOME=/u01/app/oracle/product/23.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH

4.2 准备 DBCA 响应文件

同样从模板拷贝:

1
cp $ORACLE_HOME/assistants/dbca/dbca.rsp /tmp/my_dbca.rsp

笔者的配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v23.0.0
gdbName=mydb.shawnyan.cn
sid=mydb
createAsContainerDatabase=true
numberOfPDBs=1
pdbName=mypdb1
pdbAdminPassword=Password1!
templateName=General_Purpose.dbc
sysPassword=Password1!
systemPassword=Password1!
characterSet=AL32UTF8
nationalCharacterSet=UTF8
databaseType=OLTP

注意:Oralce 26ai 强制使用 CDB/PDB 架构,Non-CDB 已经被废弃了。如果你是从 19c 升级上来的,这点必须提前规划好。

4.3 静默建库

1
dbca -silent -createDatabase -responseFile /tmp/my_dbca.rsp

建库过程的输出非常清晰:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Prepare for db operation
8% complete
Copying database files
31% complete
Creating and starting Oracle instance
32% complete
36% complete
39% complete
42% complete
46% complete
Completing Database Creation
51% complete
53% complete
54% complete
Creating Pluggable Databases
58% complete
77% complete
Executing Post Configuration Actions
100% complete
Database creation complete.

建完后会提示你 Global Database Name 和 SID,记得核对。

05. 监听配置与版本验证

5.1 配置监听

1
netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp

输出显示监听已经启动:

1
2
3
4
5
6
7
8
9
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/u01/app/oracle/product/23.0.0/dbhome_1/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0

5.2 检查监听状态

1
lsnrctl status

可以看到监听版本是 23.26.1.0.0,和数据库版本一致:

1
2
3
4
5
LSNRCTL for Linux: Version 23.26.1.0.0 - Production on 17-APR-2026 01:34:20
...
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rl9.shawnyan.cn)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

5.3 登录验证版本

1
sqlplus / as sysdba

看到下面这行输出,说明 26ai 已经稳稳跑起来了:

1
2
3
Connected to:
Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 - Production
Version 23.26.1.0.0

注意这里的版本显示:Oracle AI Database 26ai,不是普通的 Oracle Database。这是 26ai 的标志性身份牌。

06. 26ai 值得关注的几个新特性

安装只是第一步,26ai 真正的价值在于它内建的 AI 能力。这里先简单列几个笔者认为最值得关注的特性,后面我会另起文章逐个详细介绍。

6.1 AI Vector Search(向量搜索)

26ai 内置了原生的 VECTOR 数据类型,支持 HNSW 和 IVF 两种向量索引。你可以直接在 SQL 里做语义相似度搜索,不需要再外挂一个向量数据库。

更狠的是,26ai 支持把 ONNX 格式的嵌入模型直接加载进数据库,通过 VECTOR_EMBEDDING() 函数在库内生成向量。数据不出库,模型不进网,这对金融、政务场景简直是刚需。

6.2 JSON Relational Duality(JSON 关系对偶)

数据存成关系表,但应用可以按 JSON 文档的方式访问和更新。DBA 保留关系模型的完整性和性能,开发同学享受文档数据库的灵活性。微服务和 REST API 场景下,这个特性能省掉很多 ORM 的麻烦。

6.3 Select AI(自然语言查数据库)

直接用自然语言跟数据库对话,比如:

1
SELECT AI narrate "请总结一下去年少安事务所发了多少篇关于 MySQL 的文章";

数据库会自动完成语义理解、SQL 生成、结果汇总。26ai 还支持 Select AI Agent,可以在库内构建多步骤的 AI Agent 工作流。感兴趣的同学可以先研究一下 DBMS_CLOUD_AI_AGENT

6.4 SQL 语法现代化

26ai 终于补上了很多开发同学心心念念的语法糖:

新特性 说明
BOOLEAN 数据类型 原生布尔类型,告别 NUMBER(1) workaround
SELECT without FROM 再也不用写 FROM DUAL
GROUP BY ALL 一键按所有非聚合列分组
IF EXISTS / IF NOT EXISTS DDL 操作更安全
UUID() 函数 原生生成真随机 UUID

这些改动单看都不大,但合在一起,Oracle SQL 的开发者体验提升了一个档次。

示例:

1
2
3
4
5
6
7
8
CREATE TABLE users (
id RAW(16) DEFAULT UUID() PRIMARY KEY, -- 改名 uid,使用 UUID 类型,并设为主键(默认自动生成)
uname VARCHAR2(50),
is_active BOOLEAN NOT NULL, -- 使用完整关键字,支持非空约束
is_admin BOOL DEFAULT FALSE -- 使用简写并设置默认值
);

INSERT INTO users (uname, is_active, is_admin) VALUES ('ShawnYan', 0, 1);

输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SQL> desc users;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NOT NULL RAW(16)
UNAME VARCHAR2(50)
IS_ACTIVE NOT NULL BOOLEAN
IS_ADMIN BOOLEAN

SQL> select * from users;

ID UNAME IS_ACTIVE IS_ADMIN
------------------------------------ ------------------------------ ---------- ----------
5EB74068EC2140B08ED5142CCDDE3E96 ShawnYan FALSE TRUE

SQL>

6.5 Deep Data Security(深度数据安全)

26ai 引入了针对 AI 场景的安全增强,包括行级/列级/单元格级的数据可见性控制,以及对未授权数据的动态脱敏。AI Agent 查询数据库时,安全策略同样生效,LLM 无法绕过权限拿到敏感数据。

07. 总结

走完整套安装流程,笔者的几点感受:

  1. 预安装包是神器。oracle-ai-database-preinstall-26ai 这个 RPM 把以前手动改参数、建用户、装依赖的脏活累活全包了,几乎是一键就绪。

  2. CDB/PDB 强制化。26ai 不再支持 Non-CDB,升级前必须评估 PDB 架构对现有应用的影响。这是 Breaking Change,不能忽视。

  3. AI 能力内建化。向量搜索、嵌入模型、自然语言查询这些能力不再是外围组件,而是数据库原生能力。对 DBA 来说,这意味着你不需要再去学一套新的向量数据库技术栈。

  4. LTS 版本值得投入。26ai 是长期支持版本,官方定位是接替 19c 的下一个十年主力版本。现在上手熟悉,两年后大规模升级时你就比别人快半拍。


Have a nice day ~ ☕

🌻 近期内容 ▼

👉 这里有得聊

如果对国产基础软件(操作系统、数据库、中间件)、AI、Vibe Coding、OpenClaw 、Hermes Agent 等感兴趣,可以加群一起聊聊。关注微信公众号:(少安事务所),后台回复[群],即可看到入口。如果这篇文章为你带来了灵感或启发,请帮忙『点赞、推荐、转发』吧,感谢!ღ( ´・ᴗ・` )~