A technical troubleshooting blog about Oracle with other Databases & Cloud Technologies.

Step by Step Oracle Database 23ai Installation on Oracle Linux 8.10 !!

10 min read

Oracle Database 23ai is the next long-term support release of Oracle Database. It includes over 300 new features with a focus on artificial intelligence (AI) and developer productivity.

Oracle Database 23ai also uses AI to optimize many of the key database functions to make more accurate estimates on timings and resource costings.

Oracle Database Free is a free version of the world’s most advanced database. Oracle Database Free is easy to install, easy to manage, and easy to develop with. With Oracle Database Free, you use an intuitive, browser-based interface to administer the database, create tables, views, and other database objects, import, export, and view table data, run queries and SQL scripts, and generate reports.

Installing Oracle Database 23ai on Oracle Linux 8.10 over VirtualBox:

  1. Download Oracle Database 23ai Software
  2. Create a Virtual Machine in VirtualBox
  3. Configure Virtual Machine Settings
  4. Install Linux Operating system 8.10 – https://yum.oracle.com/oracle-linux-isos.html
  5. Start the Virtual Machine.
  6. Download and Install rpms of Database.

System Requirements:

RequirementValue
Operating systemThe minimum operating system requirements for each x86-64 Linux platform.
Network protocolThe following protocols are supported:
IPC
UDP
TCP/IP
TCP/IP with SSL
RAM1 GB RAM minimum. 2 GB RAM recommended.
Disk space10 GB minimum.

Swap Space Requirements:

For Oracle Database Free, Oracle recommends a minimum swap space of 2 GB or twice the size of RAM, whichever is lesser.

Server Component Kernel Parameter Requirements:

The Oracle Database Preinstallation RPM checks your system for kernel parameter settings. If the kernel parameter values of your system are less than the values listed in this table, then the Oracle Database Preinstallation RPM sets the recommended minimum kernel parameter values for you.

Kernel ParameterSetting
semmsl250
semmns32000
semopm100
semmni128
shmmax4398046511104
shmmni4096
shmall1073741824
file-max6815744
aio-max-nr1048576
ip_local_port_range9000–65500
panic_on_oops1
rmem_default262144
rmem_max4194304
wmem_default262144
wmem_max1048576

Oracle Database Free RAM Limitation:

The maximum amount of RAM for Oracle Database Free cannot exceed 2 GB, even if more is available.

Oracle Database Free User Data Limitations:

The maximum amount of user data in Oracle Database Free cannot exceed 12 GB. If the user data grows beyond this limit, then the system displays an ORA-12954: The request exceeds the maximum allowed database size of 12 GB error.

Check current OS Version :

[root@localhost ~]# cat /etc/system-release
Oracle Linux Server release 8.10

[root@localhost ~]# uname -r
5.15.0-206.153.7.1.el8uek.x86_64

[root@localhost ~]# hostname
localhost.localdomain
 
date[root@localhost ~]# date
Wed Aug 14 19:01:17 IST 2024
[root@localhost ~]# 

Installing Oracle Database Free RPM:

Download it from : https://www.oracle.com/in/database/free/get-started/

Go to the oracle yum site: https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/

Download the latest 23ai Oracle Database Preinstallation RPM.
For example, oracle-database-preinstall-23ai-1.0-2.el8.x86_64.rpm . Install the latest Preinstallation RPM.

## This command will install and enable the developer option for Oracle Linux 8.

[root@localhost ~]# dnf install -y oraclelinux-developer-release-el8
Oracle Linux 8 BaseOS Latest (x86_64)                                                          2.8 MB/s |  79 MB     00:28    
Oracle Linux 8 Application Stream (x86_64)                                                     1.1 MB/s |  62 MB     00:57    
Latest Unbreakable Enterprise Kernel Release 7 for Oracle Linux 8 (x86_64)                     1.1 MB/s |  39 MB     00:35    
Last metadata expiration check: 0:00:22 ago on Wed 14 Aug 2024 04:33:25 PM IST.
Dependencies resolved.
==================================================================================================================================================
 Package                                            Architecture            Version                      Repository                          Size
==================================================================================================================================================
Installing:
 oraclelinux-developer-release-el8                  x86_64                  1.0-7.el8                    ol8_baseos_latest                   16 k

Transaction Summary
==================================================================================================================================================
Install  1 Package

Total download size: 16 k
Installed size: 18 k
Downloading Packages:
oraclelinux-developer-release-el8-1.0-7.el8.x86_64.rpm                                                             37 kB/s |  16 kB     00:00    
--------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                              36 kB/s |  16 kB     00:00     
Oracle Linux 8 BaseOS Latest (x86_64)                                                                             2.2 MB/s | 3.1 kB     00:00    
Importing GPG key 0xAD986DA3:
 Userid     : "Oracle OSS group (Open Source Software group) <build@oss.oracle.com>"
 Fingerprint: 76FD 3DB1 3AB6 7410 B89D B10E 8256 2EA9 AD98 6DA3
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                          1/1 
  Installing       : oraclelinux-developer-release-el8-1.0-7.el8.x86_64                                                                       1/1 
  Verifying        : oraclelinux-developer-release-el8-1.0-7.el8.x86_64                                                                       1/1 

Installed:
  oraclelinux-developer-release-el8-1.0-7.el8.x86_64                                                                                              

Complete!

dnf -y install oracle-database-preinstall-23ai

dnf -y install oracle-database-preinstall-23ai-1.0-2.el8.x86_64.rpm
[root@localhost ~]# dnf -y install oracle-database-preinstall-23c
Last metadata expiration check: 0:04:39 ago on Wed 14 Aug 2024 04:35:26 PM IST.
Dependencies resolved.
==================================================================================================================================================
 Package                                         Architecture           Version                               Repository                     Size
==================================================================================================================================================
Installing:
 oracle-database-preinstall-23ai                 x86_64                 1.0-2.el8                             ol8_appstream                  30 k
Installing dependencies:
 compat-openssl10                                x86_64                 1:1.0.2o-4.el8_6                      ol8_appstream                 1.1 M
 ksh                                             x86_64                 20120801-267.0.1.el8                  ol8_appstream                 923 k

Transaction Summary
==================================================================================================================================================
Install  3 Packages

Total download size: 2.1 M
Installed size: 6.2 M
Downloading Packages:
(1/3): oracle-database-preinstall-23ai-1.0-2.el8.x86_64.rpm                                                        24 kB/s |  30 kB     00:01    
(2/3): compat-openssl10-1.0.2o-4.el8_6.x86_64.rpm                                                                 285 kB/s | 1.1 MB     00:04    
(3/3): ksh-20120801-267.0.1.el8.x86_64.rpm                                                                        202 kB/s | 923 kB     00:04    
--------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                             448 kB/s | 2.1 MB     00:04     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                          1/1 
  Installing       : ksh-20120801-267.0.1.el8.x86_64                                                                                          1/3 
  Running scriptlet: ksh-20120801-267.0.1.el8.x86_64                                                                                          1/3 
  Installing       : compat-openssl10-1:1.0.2o-4.el8_6.x86_64                                                                                 2/3 
  Running scriptlet: compat-openssl10-1:1.0.2o-4.el8_6.x86_64                                                                                 2/3 
  Installing       : oracle-database-preinstall-23ai-1.0-2.el8.x86_64                                                                         3/3 
  Running scriptlet: oracle-database-preinstall-23ai-1.0-2.el8.x86_64                                                                         3/3 
  Verifying        : compat-openssl10-1:1.0.2o-4.el8_6.x86_64                                                                                 1/3 
  Verifying        : ksh-20120801-267.0.1.el8.x86_64                                                                                          2/3 
  Verifying        : oracle-database-preinstall-23ai-1.0-2.el8.x86_64                                                                         3/3 

Installed:
  compat-openssl10-1:1.0.2o-4.el8_6.x86_64        ksh-20120801-267.0.1.el8.x86_64        oracle-database-preinstall-23ai-1.0-2.el8.x86_64       

Complete!

[root@localhost asrblg]# dnf install -y oracle-database-free*
Last metadata expiration check: 0:50:41 ago on Wed 14 Aug 2024 04:35:26 PM IST.
Dependencies resolved.
==================================================================================================================================================
 Package                                        Architecture                Version                       Repository                         Size
==================================================================================================================================================
Installing:
 oracle-database-free-23ai                      x86_64                      1.0-1                         @commandline                      1.3 G

Transaction Summary
==================================================================================================================================================
Install  1 Package

Total size: 1.3 G
Installed size: 3.5 G
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction

  Preparing        :                                                                                                                          1/1 
  Running scriptlet: oracle-database-free-23ai-1.0-1.x86_64                                                                                   1/1 
  Installing       : oracle-database-free-23ai-1.0-1.x86_64                                                                                   1/1 
  Running scriptlet: oracle-database-free-23ai-1.0-1.x86_64                                                                                   1/1 
[INFO] Executing post installation scripts...
[INFO] Oracle home installed successfully and ready to be configured.
To configure Oracle Database Free, optionally modify the parameters in '/etc/sysconfig/oracle-free-23ai.conf' and then run '/etc/init.d/oracle-free-23ai configure' as root.

  Verifying        : oracle-database-free-23ai-1.0-1.x86_64                                                                                   1/1 

Installed:
  oracle-database-free-23ai-1.0-1.x86_64                                                                                                          

Complete!
[root@localhost asrblg]# 
[root@localhost asrblg]# 

[root@localhost asrblg]# cat /etc/sysctl.conf | grep -v "#"

fs.file-max = 6815744

kernel.sem = 250 32000 100 128

kernel.shmmni = 4096

kernel.shmall = 1073741824

kernel.shmmax = 4398046511104

kernel.panic_on_oops = 1

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

net.ipv4.conf.all.rp_filter = 2

net.ipv4.conf.default.rp_filter = 2

fs.aio-max-nr = 1048576

net.ipv4.ip_local_port_range = 9000 65535

kernel.panic = 10

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

[root@localhost asrblg]# cat /etc/passwd | grep -i oracle
oracle:x:54321:54321::/home/oracle:/bin/bash

[root@localhost asrblg]# cat /etc/group | egrep -i "oinstall|dba"
oinstall:x:54321:oracle
dba:x:54322:oracle
backupdba:x:54324:oracle
dgdba:x:54325:oracle
kmdba:x:54326:oracle
racdba:x:54330:oracle
[root@localhost asrblg]# 

[root@localhost]# cd /opt/oracle/product/23ai/dbhomeFree

[root@localhost dbhomeFree]# ll
total 80
drwxr-xr-x.  2 oracle oinstall   102 Aug 14 17:37 addnode
drwxr-xr-x. 10 oracle oinstall   107 Aug 14 17:34 assistants
drwxr-xr-x.  2 oracle oinstall  8192 Aug 14 17:37 bin
drwxrwx---.  3 oracle oinstall    17 Aug 14 17:38 cfgtoollogs
drwxr-xr-x.  4 oracle oinstall    87 Aug 14 17:37 clone
drwxr-xr-x.  6 oracle oinstall    55 Aug 14 17:35 crs
drwxr-xr-x.  4 oracle oinstall    31 Aug 14 17:35 crypto
drwxr-xr-x.  3 oracle oinstall    18 Aug 14 17:35 css
drwxr-xr-x. 11 oracle oinstall   119 Aug 14 17:35 ctx
drwxr-xr-x.  7 oracle oinstall    71 Aug 14 17:35 cv
drwxr-xr-x.  3 oracle oinstall    20 Aug 14 17:35 data
drwxr-xr-x.  2 oracle oinstall    22 Aug 14 17:37 dbs
drwxr-xr-x.  5 oracle oinstall   173 Aug 14 17:37 deinstall
drwxr-xr-x.  3 oracle oinstall    20 Aug 14 17:35 demo
drwxr-xr-x.  3 oracle oinstall    20 Aug 14 17:35 diagnostics
drwxr-xr-x.  3 oracle oinstall    19 Aug 14 17:35 dv
-rw-r--r--.  1 oracle oinstall   852 Aug 18  2015 env.ora
drwxr-xr-x.  3 oracle oinstall    18 Aug 14 17:35 has
drwxr-xr-x.  5 oracle oinstall    41 Aug 14 17:35 hs
drwxrwx---. 11 oracle oinstall  4096 Aug 14 17:38 install
drwxr-xr-x.  2 oracle oinstall    29 Aug 14 17:37 instantclient
drwxr-x---. 12 oracle oinstall  4096 Aug 14 17:37 inventory
drwxr-xr-x.  9 oracle oinstall    94 Aug 14 17:35 javavm
drwxr-xr-x.  3 oracle oinstall    17 Aug 14 17:35 jdbc
drwxr-xr-x.  6 oracle oinstall    68 Aug 14 17:37 jdk
drwxr-xr-x.  2 oracle oinstall  4096 Aug 14 17:37 jlib
drwxr-xr-x. 10 oracle oinstall   112 Aug 14 17:35 ldap
drwxr-xr-x.  3 oracle oinstall 12288 Aug 14 17:37 lib
-rwxrwxr-x.  1 oracle oinstall  5780 Jul 19 04:46 LICENSE
drwxrwxr-x.  2 oracle oinstall     6 Jul 19 04:46 log
drwxr-xr-x.  5 oracle oinstall    42 Aug 14 17:36 md
drwxr-xr-x.  4 oracle oinstall    31 Aug 14 17:36 mgw
drwxr-xr-x. 10 oracle oinstall   106 Aug 14 17:36 network
drwxr-xr-x.  5 oracle oinstall    46 Aug 14 17:36 nls
drwxr-xr-x.  8 oracle oinstall   133 Aug 14 17:37 odbc
drwxr-xr-x.  5 oracle oinstall    42 Aug 14 17:36 olap
drwxr-xr-x.  4 oracle oinstall    35 Aug 14 17:36 oml4py
drwxr-xr-x. 13 oracle oinstall  4096 Aug 14 17:37 OPatch
drwxr-xr-x.  7 oracle oinstall    65 Aug 14 17:36 opmn
drwxr-xr-x.  5 oracle oinstall    45 Aug 14 17:36 oracore
-rw-r-----.  1 oracle oinstall   130 Aug 14 17:38 oraInst.loc
drwxr-xr-x.  4 oracle oinstall    29 Aug 14 17:36 ord
drwxr-xr-x.  3 oracle oinstall    19 Aug 14 17:36 oss
drwxr-xr-x.  8 oracle oinstall  4096 Aug 14 17:37 oui
drwxr-xr-x.  5 oracle oinstall    39 Aug 14 17:36 perl
drwxr-xr-x.  6 oracle oinstall   106 Aug 14 17:37 plsql
drwxr-xr-x.  7 oracle oinstall    88 Aug 14 17:37 precomp
drwxr-xr-x.  5 oracle oinstall    39 Aug 14 17:36 python
drwxr-xr-x.  2 oracle oinstall    26 Aug 14 17:37 QOpatch
drwxr-xr-x.  5 oracle oinstall    52 Aug 14 17:34 R
drwxr-xr-x.  4 oracle oinstall    29 Aug 14 17:36 racg
drwxr-xr-x. 13 oracle oinstall   140 Aug 14 17:37 rdbms
drwxr-xr-x.  3 oracle oinstall    21 Aug 14 17:37 relnotes
-rwx------.  1 oracle oinstall   525 Jul 19 04:46 root.sh
-rwxr-x---.  1 oracle oinstall  2957 Jun  7 14:40 runInstaller
-rw-r--r--.  1 oracle oinstall  2927 Jul 20  2020 schagent.conf
drwxr-xr-x.  5 oracle oinstall   119 Aug 14 17:37 sdk
drwxr-xr-x.  3 oracle oinstall    18 Aug 14 17:37 slax
drwxr-xr-x.  4 oracle oinstall    28 Aug 14 17:37 sqlcl
drwxr-xr-x.  3 oracle oinstall    17 Aug 14 17:37 sqlj
drwxr-xr-x.  3 oracle oinstall  4096 Aug 14 17:37 sqlpatch
drwxr-xr-x.  6 oracle oinstall    53 Aug 14 17:37 sqlplus
drwxr-xr-x.  6 oracle oinstall    54 Aug 14 17:37 srvm
drwxr-xr-x.  3 oracle oinstall    17 Aug 14 17:37 ucp
drwxr-xr-x.  4 oracle oinstall    31 Aug 14 17:37 usm
drwxr-xr-x.  2 oracle oinstall    33 Aug 14 17:37 utl
drwxr-x---.  7 oracle oinstall    69 Aug 14 17:37 xdk

Creating and Configuring an Oracle Database:

The configuration script creates a container database (FREE) with one pluggable database (FREEPDB1) and configures the listener at the default port (1521).

Installing Oracle Database Free Using RPM Packages:

Perform the following steps to install and configure Oracle Database Free using RPM packages.

Before you install Oracle Database 23ai Free, uninstall any existing Oracle Database XE or Oracle Database Free or database with the SID XE or FREE from the target system.

Oracle Database Free installation uses approximately 9 GB disk space under /opt

You can modify the configuration parameters by editing the /etc/init.d/oracle-free-23ai file.

At the command prompt, specify a password for the SYSSYSTEM, and PDBADMIN administrative user accounts. Oracle recommends that your password should be at least 8 characters in length, contain at least 1 upper case character, 1 lower case character and, 1 digit [0-9].

[root@localhost dbhomeFree]# /etc/init.d/oracle-free-23ai configure
Specify a password to be used for database accounts. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. Note that the same password will be used for SYS, SYSTEM and PDBADMIN accounts:
Confirm the password:
Configuring Oracle Listener.
Listener configuration succeeded.
Configuring Oracle Database FREE.
Enter SYS user password: 
******
Enter SYSTEM user password: 
********
Enter PDBADMIN User Password: 
******
Prepare for db operation
7% complete
Copying database files
29% complete
Creating and starting Oracle instance
30% complete
33% complete
36% complete
39% complete
43% complete
Completing Database Creation
47% complete
49% complete
50% complete
Creating Pluggable Databases
54% complete
71% complete
Executing Post Configuration Actions
93% complete
Running Custom Scripts
100% complete
Database creation complete. For details check the logfiles at:
 /opt/oracle/cfgtoollogs/dbca/FREE.
Database Information:
Global Database Name:FREE
System Identifier(SID):FREE
Look at the log file "/opt/oracle/cfgtoollogs/dbca/FREE/FREE.log" for further details.

Connect to Oracle Database using one of the connect strings:
     Pluggable database: localhost.localdomain/FREEPDB1
     Multitenant container database: localhost.localdomain
[root@localhost dbhomeFree]# 

File Name and LocationPurpose
/opt/oracleOracle base. This is the root of the Oracle Database Free directory tree.
/opt/oracle/product/23ai/dbhomeFreeOracle home. This home is where the Oracle Database Free is installed. It contains the directories of the Oracle Database Free executables and network files.
/opt/oracle/oradata/FREEDatabase files.
/opt/oracle/diag subdirectoriesDiagnostic logs. The database alert log is /opt/oracle/diag/rdbms/free/FREE/trace/alert_FREE.log
/opt/oracle/cfgtoollogs/dbca/FREEDatabase creation logs. The FREE.log file contains the results of the database creation script execution.
/etc/sysconfig/oracle-free-23ai.confConfiguration default parameters.
/etc/init.d/oracle-free-23aiConfiguration and services script.

Now you can validate by connecting locally to 23ai Database using sqlplus prompt :

When you install Oracle Database Free, the oracle user is granted SYSDBA privileges. You can use the following commands to connect to the database.

[root@localhost dbhomeFree]# su - oracle
[oracle@localhost ~]$ 
[oracle@localhost ~]$ ps -ef|grep pmon
oracle     80388   13635  0 19:01 ?        00:00:00 db_pmon_FREE
oracle     81516   81464  0 19:09 pts/3    00:00:00 grep --color=auto pmon
[oracle@localhost ~]$ 
[oracle@localhost ~]$ . oraenv
ORACLE_SID = [oracle] ? FREE
The Oracle base has been set to /opt/oracle
[oracle@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems on Wed Aug 14 19:09:42 2024
Version 23.5.0.24.07

Copyright (c) 1982, 2024, Oracle.  All rights reserved.


Connected to:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.5.0.24.07

SQL> show pdbs;

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 FREEPDB1			  READ WRITE NO
SQL> 

The Net Services database listener for Oracle Database Free allows you to connect to the database over TCP/IP from the same machine or other machines on the network. 

[oracle@localhost bin]$ pwd
/opt/oracle/product/23ai/dbhomeFree/bin
[oracle@localhost bin]$ 
[oracle@localhost bin]$ lsnrctl status

LSNRCTL for Linux: Version 23.0.0.0.0 - for Oracle Cloud and Engineered Systems on 14-AUG-2024 19:48:37

Copyright (c) 1991, 2024, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 23.0.0.0.0 - for Oracle Cloud and Engineered Systems
Start Date                14-AUG-2024 18:50:40
Uptime                    0 days 0 hr. 57 min. 57 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Default Service           FREE
Listener Parameter File   /opt/oracle/product/23ai/dbhomeFree/network/admin/listener.ora
Listener Log File         /opt/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "1fa5c10c16793b00e065000000000001" has 1 instance(s).
  Instance "FREE", status READY, has 1 handler(s) for this service...
Service "FREE" has 1 instance(s).
  Instance "FREE", status READY, has 1 handler(s) for this service...
Service "FREEXDB" has 1 instance(s).
  Instance "FREE", status READY, has 1 handler(s) for this service...
Service "freepdb1" has 1 instance(s).
  Instance "FREE", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@localhost bin]$ 

Shutting Down and Starting Up Using the Configuration Services Script:

After you configure the listener, you can run the Configuration Services Script to check the status of the database and listener.

[root@localhost ~]#  /etc/init.d/oracle-free-23ai status
Status of the Oracle FREE 23ai service:

LISTENER status: RUNNING
FREE Database status:   RUNNING
[root@localhost ~]# 

To start the listener and the database:

[root@localhost ~]# # systemctl start oracle-free-23ai
[root@localhost ~]# 

To stop the database and the listener:

[root@localhost ~]# systemctl stop oracle-free-23ai

To stop and start the listener and the database:

[root@localhost ~]# systemctl restart oracle-free-23ai

Hope it helped !! 🙂