此版本适用于RHEL9 Linux系统的Oracle数据库安装。
Oracle Database 26ai Free 是 Oracle XE 的官方后续版本,作为新一代的入门级免费版,它包含了AI向量、JSON关系型、自动等功能。
下载地址:https://download.oracle.com/otn-pub/otn_software/db-free/oracle-ai-database-free-26ai-23.26.0-1.el9.x86_64.rpm
安装指南:https://docs.oracle.com/en/database/oracle/oracle-database/26/xeinl/installing-oracle-database-free.html
客户端安装指南:https://docs.oracle.com/en/database/oracle/oracle-database/26/lacli/installing-the-oracle-database-client-software.html#GUID-F6B104C6-7A02-4909-9C95-BDED6AF60EAA
基于RPM的安装过程会执行预安装检查,解压数据库软件,并将解压后的软件所有权重新分配给预配置的用户和用户组,同时维护Oracle清单,运行所有必需的root操作来配置Oracle数据库软件,以便创建和配置一个单实例Oracle数据库。若未满足最低安装要求,RPM安装过程中会提示用户完成这些必要的安装条件。
Oracle清单是指Oracle Universal Installer (OUI) 使用的中央注册机制,称为Oracle Inventory (oraInventory)。OUI将在系统中创建一个全局清单目录(通常指向 /etc/oraInst.loc 中的路径,如 /u01/app/oraInventory)。该清单记录了已安装的Oracle产品列表、安装路径(ORACLE_HOME)、版本号以及补丁历史。在后续的安装、升级、打补丁或卸载过程中,OUI会读取并写入此清单,以确保一致性。
首先,需要卸载先前安装的Oracle Database XE或Oracle Database Free,或任何SID为FREE的数据库。
卸载方法详见:Deinstalling Oracle AI Database Free。
Oracle AI Database Free的安装大约占用<9GB的磁盘空间。如果磁盘分区无法提供足够的空间,您需要增加空间或将另一个分区挂载为Oracle的根目录,用于存储软件和数据。
/opt
/opt/oracle
下载并安装预安装包,该包会自动创建Oracle安装所需用户和组,并根据Oracle AI数据库安装的需求设置其他内核配置参数。如果您计划实施职责分离,则应根据需求创建数据库用户和组的扩展集。
通过查看RPM日志文件(例如 /var/log/oracle-ai-database-preinstall-26ai/results/orakernel.log)来确认系统配置的变化。
# 下载
curl -O https://yum.oracle.com/repo/OracleLinux/OL9/appstream/x86_64/getPackage/oracle-ai-database-preinstall-26ai-1.0-1.el9.x86_64.rpm
# 安装
dnf -y install oracle-ai-database-preinstall-26ai-1.0-1.el9.x86_64.rpm
从提供的链接下载Oracle Database软件包并进行安装。
dnf -y install oracle-ai-database-free-26ai-23.26.0-1.el9.x86_64.rpm
配置脚本将创建一个容器数据库(FREE)和一个可插拔数据库(FREEPDB1),并默认在1521端口上配置监听器。您可以通过编辑相关文件来修改配置参数,具体参数说明请参阅静默安装指南中的详细说明。
/etc/sysconfig/oracle-free–26ai.conf
使用默认设置创建数据库时,需在命令行中为三个管理员用户(分别为SYS、SYSTEM和PDBADMIN)设置密码。Oracle建议密码至少包含8个字符,包括一个大写字母、一个小写字母和一个1至9之间的数字。
# root 用户
sudo -s
# 运行配置文件
/etc/init.d/oracle-free-26ai configure
SYS
SYSTEM
PDBADMIN
除了手动安装外,Oracle还提供了静默安装选项,主要用于与您的应用程序一起安装或实现完全自动化安装。执行静默安装时,必须将管理员用户的密码作为参数写入脚本或配置到特定文件中。
为了记录安装过程中出现的所有错误和成功消息,可以使用以下命令来安装 oracle-ai-database-free-26ai-23.26.0-1.el9.x86_64.rpm 软件包,同时将所有输出重定向到 FREEsilentinstall.log 文件:
#!/bin/bash
yum -y install /downloads/oracle-ai-database-free-26ai-23.26.0-1.el9.x86_64.rpm > /free_logs/FREEsilentinstall.log 2>&1
接下来,配置 Oracle 数据库,确保所有过程中的信息都被追加到同一日志文件中:
/etc/init.d/oracle-free-26ai configure >> /free_logs/FREEsilentinstall.log 2>&1
(echo "password"; echo "password";) | /etc/init.d/oracle-free-26ai configure >> /free_logs/FREEsilentinstall.log 2>&1
修改脚本的执行权限以便能够顺利运行。
chmod +x myscript.sh
运行上述脚本以开始安装和配置过程。
sudo ./myscript.sh
环境变量的配置可以通过 Oracle 提供的特定脚本来完成。对于 C shell 用户,应使用 coraenv 脚本;而对于其他 shell 用户,则使用 oraenv 脚本。
oraenv
coraenv
例如,在 Bourne、Bash 或 Korn shell 中无提示地设置环境变量,可以执行以下命令:
su oracle
# 设置者两个值是为了让执行脚本时为非交互模式运行,如果不设置这两个环境变量命令窗口会让你手动输入
# 告诉系统:我要操作的数据库实例名是 FREE
# 后续命令(如 sqlplus / as sysdba)会连接这个实例
export ORACLE_SID=FREE
# 设置 ORAENV_ASK=NO → 禁止提问,直接使用 ORACLE_SID 的值
export ORAENV_ASK=NO
. /opt/oracle/product/26ai/dbhomeFree/bin/oraenv
# 可以将上面命令加入 ~/.bashrc 文件中,每次使用su oracle命令都会执行一次
# 对于C shell
su oracle
setenv ORACLE_SID FREE
setenv ORACLEENV_ASK NO
source /opt/oracle/product/26ai/dbhomeFree/bin/coraenv
本地连接可以直接通过 Oracle 提供的工具实现。
-- 以 sysdba 登录,需要oracle用户才能执行
sqlplus / as sysdba
对于远程连接,可以通过 Oracle Net Configuration Assistant (Oracle NETCA) 配置监听器,以允许通过特定端口远程访问 Oracle 数据库。
要查看当前监听的端口,可以参考以下步骤:
# 查看oracle 网络配置助手状态
lsnrctl status
lsnrctl stop
lsnrctl start
# 修改网络助手方法
文件位于: $ORACLE_HOME/network/admin/listener.ora
注意重启服务
确保防火墙设置允许外部连接到该端口。
# 查看防火墙的状态,ports这里什么都没有,services 这里也灭有oracle服务就表明 1539端口没有被放开
[root@localhost ~]# sudo firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
# 放开端口
# 添加规则(永久生效)
sudo firewall-cmd --permanent --add-port=1521/tcp
# 重新加载防火墙
sudo firewall-cmd --reload
远程连接的具体步骤如下图所示:
# 从本机测试
sqlplus sys/password@localhost:1521/FREE as sysdba
# 从其他机器测试
sqlplus sys/password@192.168.125.199:1521/FREEPDB1 as sysdba
使用 PL/SQL Developer 工具连接到数据库时,需要先安装 Oracle 客户端或 Oracle Instant Client,因为 PL/SQL Developer 依赖于 Oracle Call Interface (OCI)。
Oracle Client 的下载地址为:
https://download.oracle.com/otn_software/nt/instantclient/2326000/instantclient-basic-windows.x64-23.26.0.0.0.zip
配置 PL/SQL Developer 工具的方法如下:
登录界面示例如下:
True Cache 是 Oracle Database 23ai(含 Oracle AI Database Free 版本)中引入的一种内存缓存技术,旨在无需修改应用代码的情况下,显著提升对数据库的查询速度,特别是对于高频率、重复或热点数据的查询。
配置步骤如下:
/opt/oracle/product/26ai/dbhomeFree/dbs/orapwFREE 到 True Cache 节点的临时位置 /opt/oracle/tmp。# 链接数据库
-- 以 sysdba 登录
sqlplus / as sysdba
-- 查看归档模式
SQL> ARCHIVE LOG LIST
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /opt/oracle/product/26ai/dbhomeFree/dbs/arch
Oldest online log sequence 1
Current log sequence 1
-- 1. 关闭数据库
SHUTDOWN IMMEDIATE;
-- 2. 启动到 MOUNT 状态(不打开)
STARTUP MOUNT;
-- 3. 启用归档模式
ALTER DATABASE ARCHIVELOG;
-- 4. 打开数据库
ALTER DATABASE OPEN;
-- 5. 验证
SQL> ARCHIVE LOG LIST;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /opt/oracle/product/26ai/dbhomeFree/dbs/arch
Oldest online log sequence 1
Next log sequence to archive 1
Current log sequence 1
# 必须使用oracle账户去创建和移动
mkdir /opt/oracle/tmp
cp /opt/oracle/product/26ai/dbhomeFree/dbs/orapwFREE /opt/oracle/tmp/
# 创建 True Cache命令 确保db_unique_name值不为FREE。
./dbca -silent -createTrueCache
\-gdbName <FREE>
\-sourceDBConnectionString <primary.example.com:1521>/<FREE.example.com>
\-passwordFileFromSourceDB /opt/oracle/tmp/orapwFREE
\-dbUniqueName <db_unique_name for True Cache>
# 查看全局名 就是gdbName 对应的值
SQL> SELECT * FROM GLOBAL_NAME;
GLOBAL_NAME
--------------------------------------------------------------------------------
FREE
# primary.example.com 数据库的ip地址
# FREE.example.com 可插拔数据库的SID
# 然后就可以使用这个命令创建True Cache
./dbca -silent -createTrueCache \
-gdbName FREETC \
-sourceDBConnectionString 192.168.125.199:1521/FREE \
-passwordFileFromSourceDB /opt/oracle/tmp/orapwFREE \
-dbUniqueName FREETC
对于 Oracle Free 版本,Integrated True Cache(集成模式)默认启用,无需额外配置。
# 创建一个名为 tc_test 的数据库用户;密码为 test
CREATE USER tc_test IDENTIFIED BY test;
# 授予 tc_test 用户两个预定义的角色(roles):CONNECT: 和 RESOURCE。
# 允许用户 连接到数据库(包含 CREATE SESSION 权限)
# 允许用户 创建表、索引、序列等对象(包含 CREATE TABLE, CREATE SEQUENCE 等)
GRANT CONNECT, RESOURCE TO tc_test;
#允许用户 tc_test 在 USERS 表空间中无限使用存储空间。
ALTER USER tc_test QUOTA UNLIMITED ON USERS;
# 这是 SQL*Plus 的客户端命令(不是 SQL 语句);开启后,每次执行 SQL 语句时,会自动显示该语句的执行耗时。
SET TIMING ON
# 统计表 large_table 的总行数(你之前创建的 10 万行测试表);
# 这是一个全表扫描操作,通常较慢(尤其数据量大时)。
#这是 Oracle 的 优化器提示(Optimizer Hint) /*+ USE_TRUE_CACHE */ 明确告诉数据库:“请尝试使用 True Cache 来加速这个查询”
SELECT /*+ USE_TRUE_CACHE */ COUNT(*) FROM large_table;
SELECT /*+ USE_TRUE_CACHE */ COUNT(*) FROM large_table;
-- 如果 True Cache 生效,耗时应大幅下降(如 0.01 秒)
如果第二次明显更快,说明结果被缓存了 → True Cache 已工作。
以下是 Oracle AI Database Free 版本中各个文件和目录的目的概述:
/opt/oracle
/opt/oracle/product/26ai/dbhomeFreeOracle Home. 这个位置是安装Oracle AI Database Free的目录。它包括了Oracle AI Database Free的可执行文件和网络文件的目录。
/opt/oracle/oradata/FREE
数据库文件
/opt/oracle/diag
子目录
诊断日志。数据库警报日志
/opt/oracle/diag/rdbms/free/FREE/trace/alert_FREE.log
/opt/oracle/cfgtoollogs/dbca/FREE
数据库创建日志。“FREE.log”文件记录了数据库创建脚本执行的结果。
FREE.log
/etc/sysconfig/oracle-free-26ai.conf
配置默认参数
/etc/init.d/oracle-free-26ai
配置和服务脚本
配置文件说明
/etc/sysconfig/oracle-free-26ai.conf 配置文件说明
LISTENER_PORT
: 数据库监听器的有效数字端口值。不指定任何值以实现自动端口分配。
CHARSET
: 数据库的字符集。这被设置为国际标准的UTF-8字符集。
AL32UTF8
DBFILE_DEST
数据库文件目录。默认情况下,数据库文件存储在Oracle base的/opt/Oracle/oradata子目录中。您也可以创建自己的数据库文件目录。但是,该文件路径的权限应归“oracle”用户所有。
/opt/oracle/oradata
oracle
: 跳过内存和磁盘空间的验证。默认值为“false”。
SKIP_VALIDATIONS
false
: 设置以配置透明数据加密(TDE)。默认值为“false”。
CONFIGURE_TDE
CONFIGURE_TDE=true
: 对于用户表空间,留此值为空。设置此值为“ALL”以加密所有表空间。对于特定的表空间,使用相应的设置。默认值为空。
ENCRYPT_TABLESPACES
ALL
SYSTEM:true,SYSAUX:false
SYSTEM:true,SYSAUX:false
卸载Oracle Database
删除所有Oracle AI Database Free的数据文件、监听器和配置文件。此操作后,仅留下日志和Oracle主软件。
/etc/init.d/oracle-free-26ai delete
此命令用于删除软件。操作完成后,Oracle base/opt/Oracle下的某些内容将被保留,您可以手动删除这些内容。
yum remove oracle-ai-database-free-26ai
(可选)如果您仅在系统上安装了Oracle AI Database Free,而未安装其他Oracle AI Database软件,您还可以删除Oracle AI Database预安装RPM:
yum remove oracle-ai-database-preinstall-26ai要移除已下载的RPM文件:
rm oracle-ai-database-preinstall-26ai*
rm oracle-ai-database-free-26ai*
问题描述:
oracle.net.ca.IllegalEndpointException: 没有返回有效的IP地址给主机leisure。
根本原因在于我在/etc/hosts文件中将leisure主机名映射到了127.0.0.1,这导致Oracle无法获取正确的IP地址。
解决方案:
移除/etc/hosts文件中对leisure主机名的错误映射即可解决问题。
之后,重新运行配置文件命令:/etc/init.d/oracle-free-26ai configure,即可完成修复。
扫码加好友,拉您进群



收藏
