Oracle Database on the Raspberry Pi

Oryza Triznyach
2 min readFeb 17, 2024

--

Oracle has made available the Oracle Database 19c Enterprise Edition for the ARM64 platform in June 2023. The move was welcome by developers sporting trendy Apple notebooks, and also by folks wanting to save a few bucks by running their own Oracle DB server on cheaper ARM cloud compute.

Running the database server on a really budget platform was prevented though by the fact that the distributed binary is compiled for higher-end ARM CPUs. In their words:

Oracle Database 19c Linux for ARM (aarch64) requires a CPU capable of Neoverse N1.

According to my research, in practice this means a CPU implementing the ARMv8.2-A instruction set extension, which has been beyond the reach of the Rasberry Pi — until now. Enter the mighty RPi5, built around the ARMv8.2-A compatible Cortex A76 CPU.

Testing on my brand new Pi5 (with Ubuntu 23.10), everything worked like a charm:

mkdir -p /d/d1/data/oradata && chown 54321:54321 /d/d1/data/oradata

docker run --rm --name orclcdb --detach \
-p 1521:1521 \
--ulimit nofile=1024:65536 --ulimit nproc=2047:16384 \
--ulimit stack=10485760:33554432 --ulimit memlock=3221225472 \
-v /d/d1/data/oradata:/opt/oracle/oradata \
-e ORACLE_PWD="PassWord-123" \
container-registry.oracle.com/database/enterprise:19.19.0.0

On my setup (with /d/d1/data as well as docker’s data_dir being on the external SSD) it took about 10 minutes to get to

#########################
DATABASE IS READY TO USE!
#########################
The following output is now a tail of the alert.log:
ORCLPDB1(3):CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE '/opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf' SIZE 5M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
ORCLPDB1(3):Completed: CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE '/opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf' SIZE 5M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
ORCLPDB1(3):ALTER DATABASE DEFAULT TABLESPACE "USERS"
ORCLPDB1(3):Completed: ALTER DATABASE DEFAULT TABLESPACE "USERS"
2024-02-17T09:25:38.184862+00:00
ALTER SYSTEM SET control_files='/opt/oracle/oradata/ORCLCDB/control01.ctl' SCOPE=SPFILE;
2024-02-17T09:25:38.190853+00:00
ALTER SYSTEM SET local_listener='' SCOPE=BOTH;
ALTER PLUGGABLE DATABASE ORCLPDB1 SAVE STATE
Completed: ALTER PLUGGABLE DATABASE ORCLPDB1 SAVE STATE
2024-02-17T09:35:25.355030+00:00
ORCLPDB1(3):Resize operation completed for file# 10, fname /opt/oracle/oradata/ORCLCDB/ORCLPDB1/sysaux01.dbf, old size 286720K, new size 296960K

(Pulling the 6GB image actually took longer than running the installer)
Testing it from a different host:

$ sqlplus sys/PassWord-123@pi5:1521/ORCLCDB as sysdba

SQL*Plus: Release 21.0.0.0.0 - Production on Sat Feb 17 10:26:31 2024
Version 21.10.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.19.0.0.0

SQL> select * from dual;
D
-
X

SQL> Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.19.0.0.0

Needless to say, the RPi5 is not an officially endorsed or supported platform by Oracle, so you’re on your own here — however that is not a position unfamiliar for the Raspberry Pi enthusiast.

If you give this a go, please share your experience! I have yet to stress test my new humble database server, and I’m really curious what it is capable of!

My Oracle DB Server setup — mounted on a piece of wood for perfect balance

--

--