Oracle 19c ARM64 silent installation with VirtualBox on MacOS Apple Silicon M1 MacBook Pro
Recently on August 14 2025, VirtualBox 7.2 was released with native ARM64 support on MacOS with Apple Silicon M processor. This significantly improves the performance with ARM64 guest hosts running on MacOS.
Due to license issues with RedHat Linux, the binary compatible Almalinux 9 ARM64 is used in this setup. Do not use the AlmaxLinux 8 ARM64, which does not boot correctly in virtualbox. Other redhat compatible distributions like Oracle Linux or Rocky Linux should work as well.
Be careful: CentOS used to be a drop-in replacement for RedHat Enterprise, but it is not anymore!
Oracle 19c ARM ist only compatible with Redhat 8 not Redhat 9.
Setup
virtualbox virtual machine with the default NAT and one additional Host-only Network.
two cores and 4GB ram and 80GB disk with default partitioning.
OEL8 with minimal Installation and only create the root user.
Database name ERP.oracle.dbatlas.org (upper or lowercase?) SID ist ERP
Use OEL8 not OEL9, which does not support Oracle 19c ARM. Download OEL8.10: https://yum.oracle.com/oracle-linux-isos.html
OLE8.10 installation
settings:
keyboard: German
language: EN
Time/date: EU/Berlin
Installation source: local
Software: minimal install
Install destination: automatic partition
Network: enable both NAT enp0s8 and Host-only adapter enp0s9 (the host-only is not automatically enabled after installation)
Hostname: d101.dbatlas.org
root user: create with root password
Preparation
Prepare OS with root user
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
mkdir /u01 && chown oracle:oinstall /u01
install dependencies
yum install -y bc binutils elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libXrender libX11 libXau libXi libXtst libgcc libnsl librdmacm libstdc++ libstdc++-devel libxcb libibverbs make smartmontools sysstat unzip tree gcc tar
Prepare oracle user
put the following into .bashrc file
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19c/db
export ORACLE_SID=ERP
export PATH=$ORACLE_HOME/bin:$PATH
now logout and login again to make the env vars effective.
Prepare the installation file
Goto oracle website and download the ZIP file of oracle home binary. You need to register an oracle account to be able to download the file to the host machine, i.e. MacOS.
Now switch to the guest OS in VirtualBox:
mkdir /u01/installfiles
copy the downloaded ZIP file from MacOS into this folder in AlmaLinux.
mkdir -p $ORACLE_HOME
cd /u01/installfiles
unzip -q LINUX.ARM64_1919000_db_home.zip -d $ORACLE_HOME
prepare the response file
vi /u01/installfiles/db_install.rsp
paste the following content into the rsp file
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/19c/db
oracle.install.db.InstallEdition=EE
DECLINE_SECURITY_UPDATES=true
oracle.install.db.BACKUPDBA_GROUP=dba
oracle.install.db.DBA_GROUP=dba
oracle.install.db.DGDBA_GROUP=dba
oracle.install.db.KMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
Silent installation
export CV_ASSUME_DISTID=OEL7.8
cd $ORACLE_HOME
# the software installation takes about 10s to finish
yes | ./runInstaller -silent -ignorePrereq -waitforcompletion -responseFile /u01/installfiles/db_install.rsp
# run root scripts
# create db (20min on x86-64 linux and 3min on arm64 VM!!)
# with -silent no GUI will be startet
dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname ERP.oracle.dbatlas.org -sid ERP -sysPassword DBAtlas123 -systemPassword DBAtlas123 -automaticMemoryManagement FALSE
Remarks
The maximum length of oracle sid used to be 8 in 11g. Since 12c it is possible to use up to 64; however oracle does not recommend to use long service IDs. So keep it short and meaningful.
Add the oracle
user the dba
group to grant the oracle user admin previlige without using a password locally just the OS authentication. Running the cmd sqlplus / as sysdba
will not require any password.
OEL8 does not auto connect the hostonly network, to enable auto connect:
nmcli c modify enp0s9 connection.autoconnect yes
The ssh-copy-id can be used to copy the public key to the remote system. It takes care of the files modes of both .ssh
folder and the authorized_keys
file.
sh-copy-id -i .ssh/id_rsa.pub root@192.168.56.5
to delete the database and test again the create database with different parameters:
dbca -silent -deleteDatabase -sourceDB ERP
you need to provide the SYS user password
The difference between SYS and SYSTEM user: without giving the username and with OS auth, the default SYS user is used to login and it's the superuser. SYSTEM has lower priv and cannot be used to manage the data dictionary. Both have SYSTEM as the default tablespace.