This is my documentation of an RPM install and configuration of Oracle 26ai Database Free and TrueCache node on 2 VirtualBox VM’s running Oracle Linux 9.7.
Steps
- Downloaded and ran Pre-install package from Oracle
- Downloaded and installed 26ai RPM
dnf -y install oracle-ai-database-free-26ai-23.26.0-1.el9.x86_64.rpm

Ran the config script:
The configuration script creates a container database (
sudo /etc/init.d/oracle-free-26ai configureThe configuration script creates a container database (
FREE) with one pluggable database (FREEPDB1) and configures the listener at the default port (1521). It must be run as root to execute successfully.Just set the password and let the script run.

Set Environment Variables
export ORACLE_SID=FREE
export ORAENV_ASK=NO
. /opt/oracle/product/26ai/dbhomeFree/bin/oraenvThat concludes Primary Database configuration.
Configuring TrueCache
TrueCache is a read-only cache database on a separate node from the primary that offloads reads from the primary. It stays continually synchronized withe the database using redo apply.
Setup
Download the same database software, but don’t create the full database.
I used SCP to copy the 26ai rpm to the TrueCache node, rather than waiting on it to download again:
scp ./oracle-ai-database-free-26ai-23.26.1-1.el9.x86_64.rpm user@xxx.xxx.xxx.xxx:~To configure TrueCache the primary must be in
ARCHIVELOG mode.Check what mode you’re in:
SELECT log_mode FROM v$database;To switch modes run the following:
Log in as SYSDBA:
sqlplus / as sysdbaSHUTDOWN IMMEDIATE;STARTUP MOUNT;ALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;You have to run the same
dnf install command used on the primary, but don’t configure the full database.I used the following DBCA command to configure the TrueCache instance:
./dbca -silent -createTrueCacheInstance -sourceDBConnectionString xxx.xxx.xxx.xxx:1521/FREE -passwordFileFromSourceDB /opt/oracle/tmp/orapwFREE -dbUniqueName TRUECACHE -sid FREE -gdbName FREE -pgaAggregateTargetInMB 1500 -sgaTargetInMB 500 -remoteDBSYSPassword xxxxxxGetting the config to work took a lot of trial and error (switching users, copying files, changing file permissions, etc.)
The password file
orapwFREE has to be copied over from the primary DB under $ORACLE_HOME/dbs/orapwFREE .The final step was to fun DBCA on the primary database to configure the TrueCache connection.
dbca -configureDatabase -configureTrueCacheInstanceService -sourceDB FREE -trueCacheConnectString xxx.xxx.xxx.xxx:1521/TRUECACHE -trueCacheServiceName TRUECACHE -serviceName app_ro -pdbName freepdb1 -silent