Oracle 23ai RPM包仅1.3GB,但安装后实际占用6–8GB,因其解压后包含4.2GB AI二进制、1.8GB数据库文件及500MB默认PDB;Docker镜像超4GB亦因内置向量引擎、定制JDK21、嵌入式Python3.11等AI组件全编译进ORACLE_HOME,无模块化裁剪。
oracle-database-free-23ai RPM 包约 1.3GB,Docker 镜像解压后常超 4GB——这不是 bug,是 AI 功能集成带来的必然体积增长。
为什么 oracle-database-free-23ai 镜像比 21c/19c 大一倍以上?
核心原因是 oracle 把 ai 能力直接编译进数据库二进制,不是插件或外部服务。23ai 内置了向量引擎、json relational duality 引擎、llm 推理运行时(基于 onnx runtime)、内置 python 环境(含 numpy、scikit-learn)、以及增强的 jvm 和 jvm-based ml 库。这些组件全被打包进 oracle_home,没做按需加载或模块化裁剪。
-
ORACLE_HOME/lib/libai.so单文件就占 320MB+,负责向量索引与相似度计算 -
ORACLE_HOME/jdk/jre是定制 JDK 21,比 19c 的 JDK 8 大近 2 倍 -
ORACLE_HOME/python目录含完整嵌入式 CPython 3.11 + 科学计算栈,非仅 pip 可装的轻量版 - Docker 镜像还额外打包了
FREEPDB1初始化模板(含预建向量表、AI 模型元数据表),首次启动不依赖网络下载
docker pull 下载慢 / 失败,真不是你网络问题
官方镜像 container-registry.oracle.com/database/free 在国内直连大概率失败,错误通常是 TLS handshake timeout 或 401 Unauthorized——Oracle 未对大陆 IP 开放匿名拉取权限,和代理、DNS、Docker 配置无关。
- 临时办法:加
export all_proxy=http://127.0.0.1:9910(需本地运行有效代理) - 稳妥做法:用海外服务器拉取 →
docker save -o oracle23ai.tar image-id→ SCP 回本地 →docker load -i oracle23ai.tar - 别试
docker pull oracle/database-free:Docker Hub 上没有官方镜像,全是第三方非受信构建,可能缺 AI 运行时或含后门
RPM 安装后 /opt/oracle 占用远超 1.3GB?
RPM 包本身 1.3GB 是压缩体积;安装后解压 + 初始化 + 创建默认 PDB,实际磁盘占用常达 6–8GB。这不是冗余,而是必须的运行态结构。
-
/opt/oracle/product/23ai/dbhomeFree:解压后约 4.2GB(含所有 AI 二进制、JDK、Python) -
/opt/oracle/oradata/FREE:初始数据库文件(SYSTEM、SYSAUX、UNDOTBS1)约 1.8GB -
/opt/oracle/oradata/FREEPDB1:默认可插拔数据库,含向量元数据表和 sample embeddings,约 500MB -
/tmp/OraInstall*:安装过程临时目录,安装完不自动清理,需手动rm -rf /tmp/OraInstall*
想减小体积?只能放弃部分 AI 功能
Oracle 没提供“精简版”安装选项。所谓“减小体积”,本质是绕过官方路径,但代价明确:
- 删
libai.so→ 向量搜索、VECTOR_DISTANCE函数、AI_VECTOR_SEARCH索引全部失效 - 删
python目录 →DBMS_AI包中所有 Python UDF、模型训练接口不可用 - 跳过
/etc/init.d/oracle-free-23ai configure→ 数据库实例能启动,但监听没配、FREEPDB1不自动 open,连接会报ORA-12514 - 用
docker commit保存运行中容器 → 极易触发The container size (xG) is greater than the threshold (25G)错误,因日志、trace、临时段全被固化进镜像层
真正可控的压缩点只有两个:确保 /tmp 和 /dev/shm 有足够空间避免安装过程写满;安装完立即清理 /tmp/OraInstall* 和 $ORACLE_HOME/cfgtoollogs 中的旧日志。











