Step by Step Oracle Database 23ai Installation on Oracle Linux 8.10 !!
10 min readOracle 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:
- Download Oracle Database 23ai Software
- Create a Virtual Machine in VirtualBox
- Configure Virtual Machine Settings
- Install Linux Operating system 8.10 – https://yum.oracle.com/oracle-linux-isos.html
- Start the Virtual Machine.
- Download and Install rpms of Database.
System Requirements:
Requirement | Value |
---|---|
Operating system | The minimum operating system requirements for each x86-64 Linux platform. |
Network protocol | The following protocols are supported: IPC UDP TCP/IP TCP/IP with SSL |
RAM | 1 GB RAM minimum. 2 GB RAM recommended. |
Disk space | 10 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 Parameter | Setting |
---|---|
semmsl | 250 |
semmns | 32000 |
semopm | 100 |
semmni | 128 |
shmmax | 4398046511104 |
shmmni | 4096 |
shmall | 1073741824 |
file-max | 6815744 |
aio-max-nr | 1048576 |
ip_local_port_range | 9000–65500 |
panic_on_oops | 1 |
rmem_default | 262144 |
rmem_max | 4194304 |
wmem_default | 262144 |
wmem_max | 1048576 |
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 SYS
, SYSTEM
, 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 Location | Purpose |
---|---|
/opt/oracle | Oracle base. This is the root of the Oracle Database Free directory tree. |
/opt/oracle/product/23ai/dbhomeFree | Oracle 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/FREE | Database files. |
/opt/oracle/diag subdirectories | Diagnostic logs. The database alert log is /opt/oracle/diag/rdbms/free/FREE/trace/alert_FREE.log |
/opt/oracle/cfgtoollogs/dbca/FREE | Database creation logs. The FREE.log file contains the results of the database creation script execution. |
/etc/sysconfig/oracle-free-23ai.conf | Configuration default parameters. |
/etc/init.d/oracle-free-23ai | Configuration 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 !! 🙂