Ultimate Guide: Oracle Database 26ai Free Installation | SQLFlash

If you want a fast, reproducible path to get Oracle AI Database 26ai Free running locally on Oracle Linux—and confirm it’s healthy—this guide is for you. We’ll cover what’s new that actually matters in day‑to‑day operations, then walk through a copy‑paste RPM installation on Oracle Linux 9 (OL9), with an offline/air‑gapped option, post‑install health checks, a minimal VECTOR sanity check, upgrade notes from 23ai → 26ai via RU 23.26.x, and a compact troubleshooting section.

Note on scope and support: As of 2026, Oracle confirmed general availability of 26ai for Linux x86‑64 on‑premises platforms; see the official GA announcement in January 2026 for context and links to downloads. For authoritative product positioning and timelines, refer to the GA blog post in 2026 and the original product announcement in late 2025. See the official guidance in the GA post: GA of Oracle AI Database 26ai for Linux x86‑64 on‑premises.


What’s new and relevant in 26ai (operator‑focused)

You’ll see plenty of marketing elsewhere; here are the bits most operations teams ask about, with authoritative links for deeper reading.

AI Vector Search essentials

High availability and maintenance highlights

  • Rolling maintenance improvements and Data Guard enhancements aimed at reducing switchover friction and standardizing patch flows across fleets. For a concise entry point, see the 26ai HA documentation set: High Availability documentation hub (26).

Developer updates that matter

  • Client drivers surface 26ai data types and performance improvements. Check the ODBC developer guide (26ai) for driver‑level specifics and supported mappings: ODBC Developer’s Guide (26). The New Features guide also summarizes JDBC/ODP.NET changes under 26ai driver sections.

Security and compliance

  • Oracle has communicated security milestones for 26ai, including Common Criteria certification (EAL) and FIPS 140‑3 laboratory testing completed, as well as modern cryptography options relevant to regulated environments. See Oracle’s 2026 security milestone write‑up: Common Criteria and FIPS 140‑3 status update (2026).

System requirements and preflight checks (engineer‑ready)

Supported OS and edition constraints

  • At the time of writing, the documented RPM‑based Free installation targets Oracle Linux 8 and 9; OL9 is the most straightforward choice. OL10 server support for the Free RPM has not been explicitly stated in the Free installation guide—test OL10 at your own risk and prefer OL9 for reliability. See Oracle’s Free landing and Linux install guide for authoritative details: Oracle Database Free page and Free Installation Guide for Linux (26).
  • Free edition limits are enforced: up to 2 CPUs, 2 GB memory (SGA+PGA), and 12 GB of user data. Plan your expectations and demos within those bounds; details are on the Free page referenced above.

Quick preflight script (copy, review, run as root or with sudo)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/env bash
set -euo pipefail
PASS=true

# CPU/RAM/Disk
CPUS=$(nproc)
MEM_GB=$(free -g | awk '/^Mem:/{print $2}')
DISK_GB=$(df -BG / | awk 'NR==2{gsub("G",""); print $4}')

[[ "$CPUS" -ge 2 ]] || { echo "FAIL: Need >=2 vCPU"; PASS=false; }
[[ "$MEM_GB" -ge 4 ]] || { echo "WARN: Free edition enforces 2 GB; allocate >=4 GB system RAM for comfort"; }
[[ "$DISK_GB" -ge 20 ]] || { echo "FAIL: Need >=20 GB free on /"; PASS=false; }

# SELinux / Firewall
getenforce >/dev/null 2>&1 || { echo "WARN: getenforce not found"; }
echo "SELinux: $(getenforce || true)"
firewall-cmd --state >/dev/null 2>&1 && echo "firewalld: active" || echo "firewalld: not active"

# Swap
swapon --show | awk 'NR>1{exit 0} END{if(NR==0) print "WARN: No swap detected; consider enabling (ORA-00845 risk)"}'

# Users/groups set later by preinstall RPM

$PASS && echo "Preflight: PASS" || { echo "Preflight: FAIL"; exit 1; }


Oracle Database 26ai Free installation on Oracle Linux 9 (online path)

This section is the primary “Oracle Database 26ai Free installation” workflow for OL9. Use DNF for dependency resolution—avoid raw rpm -i.

  1. Install the preinstall RPM
1
sudo dnf -y install oracle-ai-database-preinstall-26ai
  • This creates the oracle user and groups, adjusts kernel parameters, and installs base dependencies. Changes are logged under:

    • /var/log/oracle-database-preinstall-26ai/results/orakernel.log
  1. Install the main database RPM
  • Download the 26ai Free RPM for OL9 from Oracle’s downloads hub (use the GA blog for the authoritative path to current downloads referenced earlier). Then install with dnf:
1
sudo dnf -y install ./oracle-ai-database-free-26ai-<version>.el9.x86_64.rpm
  1. Configure the database service
  • The init script ships with the RPM. Run configure and follow prompts (passwords, character set, etc.). Defaults file: /etc/sysconfig/oracle-free-26ai.conf.
1
sudo /etc/init.d/oracle-free-26ai configure
  1. Open the listener port (keep the firewall on)
1
2
sudo firewall-cmd --permanent --add-port=1521/tcp
sudo firewall-cmd --reload
  1. Verify services
1
2
sudo /etc/init.d/oracle-free-26ai status
lsnrctl status
  • Expect the listener to show service registrations for the CDB and its PDB. If you’re unsure of service names, the status output will list them.
  1. Connect with SQL*Plus and check PDB state
1
2
3
4
5
# Replace with the SYS password you set during configure
sudo su - oracle -c "sqlplus sys/<SYS_PASSWORD> as sysdba <<'SQL'
SHOW CON_NAME;
SHOW PDBS;
SQL"
  • You should see one PDB open read write. If not, open it and save state (optional for dev): ALTER PLUGGABLE DATABASE <pdbname> OPEN; ALTER PLUGGABLE DATABASE <pdbname> SAVE STATE;
  1. Find logs with ADRCI (for quick triage)
1
2
3
4
5
sudo su - oracle -c "adrci <<'ADR'
show homes
set home diag/rdbms/<db_unique_name>/<instance_name>
show alert -tail 50
ADR"

Offline/air‑gapped RPM installation

On an online OL9 helper host, mirror the packages and build a local repo. Oracle Linux provides an official method to set up a local mirror; see the 2026 docs: Setting up a Local Yum/DNF Mirror (Oracle Linux).

  1. On the helper host, collect packages
1
2
3
4
5
6
# From a directory you control
sudo dnf -y install yum-utils createrepo_c
# Preinstall RPM and its deps
sudo dnf download --resolve oracle-ai-database-preinstall-26ai
# Main Free RPM (download from Oracle and place here)
# e.g., oracle-ai-database-free-26ai-<version>.el9.x86_64.rpm
  1. Build a local repo (HTTP or file‑based)
1
2
3
4
sudo mkdir -p /var/www/html/yum/local/26ai
sudo cp ./*.rpm /var/www/html/yum/local/26ai/
sudo createrepo_c /var/www/html/yum/local/26ai/
sudo systemctl enable --now httpd
  1. On the offline target host, import the OL9 GPG key and create a repo file
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# Import GPG key for OL9 packages (official URL)
sudo wget https://yum.oracle.com/RPM-GPG-KEY-oracle-ol9 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle-ol9

# Create the repo file
sudo tee /etc/yum.repos.d/oracle-local-26ai.repo >/dev/null <<'EOF'
[local_oracle_26ai]
name=Local Oracle 26ai Free RPMs
baseurl=http://<helper-host>/yum/local/26ai
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle-ol9
EOF

sudo dnf clean all && sudo dnf repolist
  1. Install from the local repo
1
2
3
sudo dnf -y install oracle-ai-database-preinstall-26ai
sudo dnf -y install oracle-ai-database-free-26ai-<version>.el9.x86_64.rpm
sudo /etc/init.d/oracle-free-26ai configure
  1. Verify and open port 1521 as in the online flow

Post‑install validation and a minimal VECTOR sanity check

Service and listener quick check

1
2
sudo /etc/init.d/oracle-free-26ai status
lsnrctl status | sed -n '1,120p'

SQL*Plus basics and PDB state

1
2
3
sudo su - oracle -c "sqlplus sys/<SYS_PASSWORD> as sysdba <<'SQL'
SELECT name, open_mode FROM v$pdbs;
SQL"

Minimal VECTOR table demo (structure only)

  • The goal is simply to confirm that the VECTOR type is available for schema objects in your 26ai Free environment. For end‑to‑end search, use the documented vector similarity operators in the 26ai New Features and AI Vector Search docs linked above.
1
2
3
4
5
6
7
8
-- Run as a developer user in your PDB
CREATE TABLE demo_vectors (
  id NUMBER PRIMARY KEY,
  embedding VECTOR(3)
);
INSERT INTO demo_vectors (id, embedding) VALUES (1, VECTOR('[0.1, 0.2, 0.3]'));
COMMIT;
SELECT id, embedding.dim FROM demo_vectors; -- confirm dimension metadata

Log discovery with ADRCI

1
2
3
4
sudo su - oracle -c "adrci <<'ADR'
show homes
show alert -tail 50
ADR"

Upgrade notes: 23ai → 26ai via RU 23.26.x

Oracle communicated that 26ai capabilities arrive via the Release Update stream on long‑term support tracks, removing the need for a traditional in‑place “version upgrade” between 23ai and 26ai for many deployments. The October 2025 RU (23.26.0) introduced the 26ai baseline, followed by the January 2026 RU (23.26.1). An Oracle upgrades expert summarizes the 23ai→26ai path and the recommendation to rely on the latest AutoUpgrade tool for supported workflows: see the 2025 guidance by Mike Dietrich, Oracle’s upgrade PM: Oracle AI Database 26ai replaces 23ai (RU path).

Practical operator guidance

  • Non‑Free editions: plan RUs with standard patch governance, snapshot/backup, and precheck runs. AutoUpgrade can orchestrate patch mode across fleets. For RAC/Data Guard, prefer rolling where supported in your configuration and version matrix.
  • Free edition: quarterly RU patching isn’t supported; reinstall the Free RPM for a newer build instead of applying RUs, per Oracle’s Free/changes documentation in the official install and support notes. Keep your data externalized for quick redeploys.

Troubleshooting quick reference

SymptomWhere to lookLikely causeWhat to try
rpm/dnf dependency errorsdnf output, /var/log/dnf*Using rpm -i or el8 vs el9 package mismatchAlways use dnf install on the correct el9 build; remove stray el8 RPMs and retry
Listener reachable locally, not remotelyfirewalld configPort 1521 not openedfirewall-cmd –permanent –add-port=1521/tcp && firewall-cmd –reload
ORA‑00845 (MEMORY_TARGET not supported)alert log via ADRCINo swap configuredAdd swap (e.g., fallocate + mkswap + swapon) or adjust memory target parameters
PDB not open on loginSQL*Plus outputPDB opened read only or closedALTER PLUGGABLE DATABASE OPEN; ALTER PLUGGABLE DATABASE SAVE STATE;
Residual XE/Free install conflictsinstall/config logsOld users/homes/dirs clashRemove prior XE/Free packages; ensure clean ORACLE_BASE/HOME; rerun preinstall RPM

Security posture and operational tips

  • Keep SELinux in enforcing or targeted mode when feasible—disable only as a last resort and document why. Validate access with application‑level tests instead of globally weakening policy.
  • Open only the ports you need (typically 1521/tcp for the listener) and confirm from a client host with tnsping or a basic JDBC/ODP.NET connection.
  • For air‑gapped environments, keep your local repo signed and gpgcheck=1 in all repo files. Regularly refresh your mirrored RPMs and regenerate metadata.
  • Treat Free deployments as ephemeral dev/test sandboxes. For anything approaching production, consult the HA documentation hub for 26ai and plan patching and DR appropriately: 26ai High Availability documentation.

Closing notes

  • Availability and scope: Oracle’s January 2026 GA post is the canonical entry point to the current 26ai downloads and collateral: GA of Oracle AI Database 26ai (2026).
  • For feature‑level reading, especially VECTOR and driver capabilities, start with the 26ai New Features guide cited above.
  • For structured upgrade thinking beyond Free (i.e., Enterprise deployments), the RU/AutoUpgrade perspective from Oracle’s upgrade PM team is a reliable compass: 23ai→26ai RU path background (2025).

That’s it—your Oracle Database 26ai Free installation on Oracle Linux is ready to use. Keep this guide handy for the offline flow, health checks, and quick VECTOR schema sanity tests while you experiment.

What is SQLFlash?

SQLFlash is your AI-powered SQL Optimization Partner.

Based on AI models, we accurately identify SQL performance bottlenecks and optimize query performance, freeing you from the cumbersome SQL tuning process so you can fully focus on developing and implementing business logic.

How to use SQLFlash in a database?

Ready to elevate your SQL performance?

Join us and experience the power of SQLFlash today!.