Oracle 23ai on ARM [ Release 23.0.0.0.0 - Develop, Learn, and Run for Free ]

{ Abhilash Kumar Bhattaram : Follow on LinkedIn } Oracle 23ai - the FREE edition As of date Oracle 23ai is not yet released for On Prem , however the FREE edition is available and is perfect for POC's and testing purposes. If you are looking at nudgning your applications to 23ai , this would a good place to start , especially if you are looking to make best use of ARM processors which is probably a good place to start to develop and power AI powered databases. Where do we start ? If you have Oracle VirtualBox , this is a good starting point. To understand more about ARM , read by older blog here Pre-requisites The Free tier installs will install the Oracle 23ai in /opt/oracle, ensure sufficient space is available , I suggest to create a 50GB mount point so you have enough space to play around when a new database is created. [root@machine1 ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 7.2G 0 7.2G 0% /dev tmpfs 7.3G 0 7.3G 0% /dev/shm tmpfs 7.3G 9.1M 7.3G 1% /run tmpfs 7.3G 0 7.3G 0% /sys/fs/cgroup /dev/mapper/ol-root 19G 12G 7.2G 62% / /dev/mapper/ol-u01 431G 17G 414G 4% /u01 /dev/sda2 1.8G 633M 1.2G 36% /boot /dev/sda1 1.9G 7.2M 1.9G 1% /boot/efi tmpfs 1.5G 16K 1.5G 1% /run/user/42 tmpfs 1.5G 4.0K 1.5G 1% /run/user/0 /dev/mapper/optoracle-optoracle_lv 47G 24K 45G 1% /opt/oracle.

Apr 26, 2025 - 19:47
 0
Oracle 23ai on ARM [ Release 23.0.0.0.0 - Develop, Learn, and Run for Free ]

{ Abhilash Kumar Bhattaram : Follow on LinkedIn }

Oracle 23ai - the FREE edition

As of date Oracle 23ai is not yet released for On Prem , however the FREE edition is available and is perfect for POC's and testing purposes. If you are looking at nudgning your applications to 23ai , this would a good place to start , especially if you are looking to make best use of ARM processors which is probably a good place to start to develop and power AI powered databases.

Where do we start ?

If you have Oracle VirtualBox , this is a good starting point. To understand more about ARM , read by older blog here

Pre-requisites

The Free tier installs will install the Oracle 23ai in /opt/oracle, ensure sufficient space is available , I suggest to create a 50GB mount point so you have enough space to play around when a new database is created.

[root@machine1 ~]# df -h
Filesystem                          Size  Used Avail Use% Mounted on
devtmpfs                            7.2G     0  7.2G   0% /dev
tmpfs                               7.3G     0  7.3G   0% /dev/shm
tmpfs                               7.3G  9.1M  7.3G   1% /run
tmpfs                               7.3G     0  7.3G   0% /sys/fs/cgroup
/dev/mapper/ol-root                  19G   12G  7.2G  62% /
/dev/mapper/ol-u01                  431G   17G  414G   4% /u01
/dev/sda2                           1.8G  633M  1.2G  36% /boot
/dev/sda1                           1.9G  7.2M  1.9G   1% /boot/efi
tmpfs                               1.5G   16K  1.5G   1% /run/user/42
tmpfs                               1.5G  4.0K  1.5G   1% /run/user/0
/dev/mapper/optoracle-optoracle_lv   47G   24K   45G   1% /opt/oracle. <<<<<-- Ensure sufficient space in /opt/oracle

RPM Downloads

The Free RPM downloads can be downloaded here

[root@machine1 oracle]# ls -ltrh *.rpm
-rw-r--r--. 1 oracle oinstall  31K Apr 26 15:52 oracle-database-preinstall-23ai-1.0-4.el8.aarch64.rpm
-rw-r--r--. 1 oracle oinstall 1.2G Apr 26 16:13 oracle-database-free-23ai-1.0-1.el8.aarch64.rpm

Install methods

Installation is straight forward with dnf installs

[root@machine1 oracle]# dnf -y install oracle-database-preinstall-23ai-1.0-4.el8.aarch64.rpm
Oracle Linux 8 BaseOS Latest (aarch64)                                                                                                                                                                                         55 kB/s | 4.3 kB     00:00    
Oracle Linux 8 BaseOS Latest (aarch64)                                                                                                                                                                                         21 MB/s | 131 MB     00:06    
Oracle Linux 8 Application Stream (aarch64)                                                                                                                                                                                   171 kB/s | 4.5 kB     00:00    
Oracle Linux 8 Application Stream (aarch64)                                                                                                                                                                                    21 MB/s |  62 MB     00:02    
Oracle Linux 8 CodeReady Builder (aarch64) - Unsupported                                                                                                                                                                       91 kB/s | 3.8 kB     00:00    
Oracle Linux 8 CodeReady Builder (aarch64) - Unsupported                                                                                                                                                                      2.3 MB/s | 9.5 MB     00:04    
Oracle Linux 8 Distro Builder (aarch64) - Unsupported                                                                                                                                                                         160 kB/s | 3.8 kB     00:00    
Oracle Linux 8.2 BaseOS (aarch64)                                                                                                                                                                                             187 kB/s | 4.2 kB     00:00    
Oracle Linux 8.3 BaseOS (aarch64)                                                                                                                                                                                             181 kB/s | 4.2 kB     00:00    
Oracle Linux 8.4 BaseOS (aarch64)                                                                                                                                                                                             181 kB/s | 4.2 kB     00:00    
Oracle Linux 8.5 BaseOS (aarch64)                                                                                                                                                                                             169 kB/s | 4.2 kB     00:00    
Oracle Linux 8.6 BaseOS (aarch64)                                                                                                                                                                                             187 kB/s | 4.2 kB     00:00    
Oracle Linux 8.7 BaseOS (aarch64)                                                                                                                                                                                             193 kB/s | 4.2 kB     00:00    
Oracle Linux 8.8 BaseOS (aarch64)                                                                                                                                                                                             200 kB/s | 4.2 kB     00:00    
Oracle Linux 8.9 BaseOS (aarch64)                                                                                                                                                                                             110 kB/s | 4.2 kB     00:00    
Oracle Linux 8.10 BaseOS (aarch64)                                                                                                                                                                                            190 kB/s | 4.2 kB     00:00    
Oracle Linux 8 Addons (aarch64)                                                                                                                                                                                                81 kB/s | 3.5 kB     00:00    
Oracle Linux 8 Addons (aarch64)                                                                                                                                                                                                18 MB/s |  31 MB     00:01    
Oracle Linux 8 Update 4 (aarch64) Security Validations                                                                                                                                                                        2.9 kB/s | 3.5 kB     00:01    
Oracle Linux 8 Update 4 (aarch64) Security Validations                                                                                                                                                                        461 kB/s | 1.1 MB     00:02    
Latest Unbreakable Enterprise Kernel Release 7 for Oracle Linux 8 (aarch64)                                                                                                                                                   159 kB/s | 3.5 kB     00:00    
Latest Unbreakable Enterprise Kernel Release 7 for Oracle Linux 8 (aarch64)                                                                                                                                                    21 MB/s |  59 MB     00:02    
Package oracle-database-preinstall-23ai-1.0-4.el8.aarch64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@machine1 oracle]# 

This will create a /etc/init.d./oracle-database-preinstall-19c-firstboot which we will not use for now.

[root@machine1 oracle]# ls -l /etc/init.d/
total 28
-rw-r--r--. 1 root root  1161 Mar 11 17:31 README
-rw-r--r--. 1 root root 18434 Aug 10  2022 functions
-rwx------. 1 root root  1303 Jun 13  2023 oracle-database-preinstall-19c-firstboot

We will now install the free tier as below

[root@machine1 oracle]# dnf -y install oracle-database-free-23ai-1.0-1.el8.aarch64.rpm
Last metadata expiration check: 0:22:58 ago on Sat 26 Apr 2025 05:08:19 PM IST.
Dependencies resolved.
==============================================================================================================================================================================================================================================================
 Package                                                                   Architecture                                            Version                                                 Repository                                                    Size
==============================================================================================================================================================================================================================================================
Installing:
 oracle-database-free-23ai                                                 aarch64                                                 1.0-1                                                   @commandline                                                 1.2 G

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

Total size: 1.2 G
Installed size: 3.0 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.aarch64                                                                                                                                                                                              1/1 
  Installing       : oracle-database-free-23ai-1.0-1.aarch64                                                                                                                                                                                              1/1 
  Running scriptlet: oracle-database-free-23ai-1.0-1.aarch64                                                                                                                                                                                              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.aarch64                                                                                                                                                                                              1/1 

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

Complete!
[root@machine1 oracle]# 

At this point a file called /etc/init.d/oracle-free-23ai is created , this will be used the configure the free tier database.

[root@machine1 oracle]# ls -l /etc/init.d/oracle-free-23ai
-r-xr-xr-x. 1 root root 20518 Feb 28 08:32 /etc/init.d/oracle-free-23ai

Configuring the FREE tier database

A simple command /etc/init.d/oracle-free-23ai configure is needed , 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@machine1 oracle]# /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: machine1.nabhaas.com/FREEPDB1
     Multitenant container database: machine1.nabhaas.com
[root@machine1 oracle]# 

Now I see my 23ai is created

[root@machine1 oracle]# ps -ef|grep pmon
oracle      5563       1  0 17:38 ?        00:00:00 db_pmon_FREE
root        6007    2297  0 17:41 pts/0    00:00:00 grep --color=auto pmon
[root@machine1 oracle]# su - oracle

Peeping around on what my 23ai is about

The forst thing I would like to see what version is installed , it clearly self explanatory , It's Develop, Learn, and Run for Free

FREE> select banner from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Elapsed: 00:00:00.00
FREE> 


My basic database details

18:19:01 SQL> select instance_name, status, host_name, version, startup_time from gv$instance;

INSTANCE_NAME   |STATUS         |HOST_NAME                                                       |VERSION          |STARTUP_TIME
----------------|---------------|----------------------------------------------------------------|-----------------|--------------------
FREE            |OPEN           |machine1.nabhaas.com                                            |23.0.0.0.0       |26-APR-2025 17:38:50

18:19:01 SQL> select dbid, name, db_unique_name,flashback_on,force_logging,log_mode, open_mode, database_role, sysdate from gv$database;

      DBID|NAME     |DB_UNIQUE_NAME                |FLASHBACK_ON   |FORCE_LOGGING  |LOG_MODE       |OPEN_MODE           |DATABASE_ROLE       |SYSDATE
----------|---------|------------------------------|---------------|---------------|---------------|--------------------|--------------------|--------------------
1471524940|FREE     |FREE                          |NO             |NO             |NOARCHIVELOG   |READ WRITE          |PRIMARY             |26-APR-2025 18:19:01

Checking DIagnostic Details


18:19:01 SQL> show parameter control_management_pack_access

NAME                                |TYPE       |VALUE
------------------------------------|-----------|------------------------------
control_management_pack_access      |string     |DIAGNOSTIC+TUNING
18:19:01 SQL> show parameter diag

NAME                                |TYPE       |VALUE
------------------------------------|-----------|------------------------------
diagnostic_dest                     |string     |/opt/oracle
diagnostics_control                 |string     |IGNORE
18:19:01 SQL> show parameter background

NAME                                |TYPE       |VALUE
------------------------------------|-----------|------------------------------
background_core_dump                |string     |partial
background_dump_dest                |string     |/opt/oracle/product/23ai/dbhom
                                    |           |eFree/rdbms/log

Checking Recovery related parameter details


18:19:01 SQL> show parameter reco

NAME                                |TYPE       |VALUE
------------------------------------|-----------|------------------------------
allow_legacy_reco_protocol          |boolean    |TRUE
control_file_record_keep_time       |integer    |7
db_recovery_auto_rekey              |string     |ON
db_recovery_file_dest               |string     |
db_recovery_file_dest_size          |big integer|0
db_unrecoverable_scn_tracking       |boolean    |TRUE
recovery_parallelism                |integer    |0
remote_recovery_file_dest           |string     |
transaction_recovery                |string     |ENABLED
18:19:01 SQL> set lines 200 pages 200
18:19:01 SQL> col db_link format a40
18:19:01 SQL> select inst_id,resource_name, current_utilization, max_utilization from gv$resource_limit where resource_name in ('processes','sessions');

   INST_ID|RESOURCE_N|CURRENT_UTILIZATION|MAX_UTILIZATION
----------|----------|-------------------|---------------
         1|processes |                 71|             76
         1|sessions  |                 90|             96

Now I am starting to see the new features , I see a new parameter called resource_manager_cpu_scope , it's only for Exadata Systems apparently , more documentation anout it is here

INST_ID|NAME                                    |DEFAULT_VALUE                 |VALUE
-------|----------------------------------------|------------------------------|------------------------------
      1|cpu_count                               |0                             |2
      1|cpu_min_count                           |                              |2
      1|parallel_threads_per_cpu                |1                             |1
      1|resource_manager_cpu_scope              |INSTANCE_ONLY                 |INSTANCE_ONLY
      1|resource_manager_cpu_allocation         |0                             |0
       |                                        |                              |------------------------------

There are several more things to play around in 23ai , this is the first of my many 23ai blogs. More to come. !!!