Viel zu lange hat es gedauert – jetzt ist es soweit. Die Oracle Datenbank 19c steht auch für Oracle Linux 8 auf ARM zur Verfügung! In der aktuellen Oracle Database Insider Ausgabe findet man den Artikel Oracle Announces Oracle Database for Arm Architectures in the Cloud & On-Premises, der die Verfügbarkeit der Datenbank auf ARM verkündet.
Neben der Möglichkeit, die Datenbank auf eigenen Servern zu betreiben, kann man diese selbstverständlich auch in der Oracle Cloud nutzen. Dort stehen Server mit Ampere A1 CPUs zur Verfügung. Sowohl mit der OCI Always Free als auch mit dem speziellen Angebot OCI Arm Accelerator Free Trial kann man sich von der Leistung der ARM Platform überzeugen.
Da die Software schon in der Version 19.19 kommt, braucht man aktuell auch keine Patches einspielen!
Als Apple Mac M2 Benutzer habe ich Oracle Linux 8.8 für ARM in einer VM installiert und danach die Oracle 19c Datenbank für ARM installiert und konfiguriert – hier die Schritte:
- Installation von Oracle Linux 8.8 mit „minimal Installation“ (inkl. Reboot)
- Anmelden als Benutzer root
dnf -y update
dnf -y install oracle-database-preinstall-19c.aarch64
mkdir -p /u01/app/oracle
chown -r oracle:oinstall /u01/app
# die Firewall konfigurieren wir nach der Oracle Installation, bis dahin stoppen wir diese
systemctl stop firewalld
# Optional: Ein Passwort für Benutzer Oracle setzen
passwd oracle
# Optional: Damit auch GUI Tools via VNC genutzt werden können
dnf -y install xterm.aarch64 tigervnc-server.aarch64
- Jetzt die Oracle Datenbank 19c Software für ARM auf die VM kopieren
su - oracle
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
cd /u01/app/oracle/product/19.0.0/dbhome_1
unzip -oq <upload_verzeichnis>/LINUX.ARM64_1919000_db_home.zip
- Oracle Software Installation und Datenbank Erzeugung jeweils im silent mode
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_HOSTNAME=`hostname`
export ORA_INVENTORY=/u01/app/oraInventory
./runInstaller -ignorePrereq -waitforcompletion -silent \
-responseFile ${ORACLE_HOME}/install/response/db_install.rsp \
oracle.install.option=INSTALL_DB_SWONLY \
ORACLE_HOSTNAME=${ORACLE_HOSTNAME} \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=${ORA_INVENTORY} \
SELECTED_LANGUAGES=en,en_GB \
ORACLE_HOME=${ORACLE_HOME} \
ORACLE_BASE=${ORACLE_BASE} \
oracle.install.db.InstallEdition=EE \
oracle.install.db.OSDBA_GROUP=dba \
oracle.install.db.OSBACKUPDBA_GROUP=backupdba \
oracle.install.db.OSDGDBA_GROUP=dgdba \
oracle.install.db.OSKMDBA_GROUP=kmdba \
oracle.install.db.OSRACDBA_GROUP=racdba \
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
DECLINE_SECURITY_UPDATES=true
# Sobald man aufgefordert wird, root.sh und orainstRoot.sh als Benutzer root ausführen
su - root
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.0.0/dbhome_1/root.sh
exit
# wieder als Oracle
$ORACLE_HOME/bin/lsnrctl start
export ORACLE_SID=db19ee
export PDB_NAME=pdb1
export DATA_DIR=$ORACLE_BASE/oradata
mkdir -p $DATA_DIR
$ORACLE_HOME/bin/dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbname ${ORACLE_SID} -sid ${ORACLE_SID} -responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword oracle_4U \
-systemPassword oracle_4U \
-createAsContainerDatabase true \
-numberOfPDBs 1 \
-pdbName ${PDB_NAME} \
-pdbAdminPassword oracle_4U \
-databaseType MULTIPURPOSE \
-memoryMgmtType auto_sga \
-totalMemory 3000 \
-storageType FS \
-datafileDestination "${DATA_DIR}" \
-redoLogFileSize 100 \
-emConfiguration NONE \
-ignorePreReqs
# Datenbank auf OMF umstellen und sicherstellen, dass PDB automatisch geöffnet wird
$ORACLE_HOME/bin/sqlplus / as sysdba <<EOF
alter system set db_create_file_dest='${DATA_DIR}';
alter pluggable database ${PDB_NAME} save state;
exit;
EOF
Damit steht die Oracle 19c Datenbank auf Oracle Linux 8.8 für ARM zur Verfügung. Offene Punkte sind:
- Konfigurieren der Firewall
- Startup Scripts für die Oracle Datenbank schreiben – siehe auch Oracle Startup unter systemd.
Performance auf einem MacBook Pro mit M2 CPU
Natürlich musste ich gleich einen I/O Calibrate durchführen um die I/O Performance meines Macs herauszufinden… Der Parallels VM sind 8 Cores zugewiesen.
Das Ergebnis hat mich mehr wie positiv überrascht:
# filesystemio_options=none (default)
# MAC CPU Usage war bei 800% = alle 8 Cores sind auf Anschlag gelaufen
max_iops = 3768720 das sind 3.77 Millionen IOPS
latency = 0
max_mbps = 102978 das ist ein Durchsatz von 103GB/sec
# filesystemio_options=setall
# MAC CPU Usage war bei ca 500% - somit nur 5 Cores
# Innerhalb der VM im TOP war die Auslastung ca. bei 40%
max_iops = 155995 nur noch 156k IOPS
latency = .463
max_mbps = 27414 sowie 27GB/sec Durchsatz
Währen die I/O Performance Daten ernst zu nehmen (speziell der mit filesystemio_options=none), könnte man Apple Macs mit M2 CPUs als Konkurrenz zu Exadata Lösungen (1/8 oder 1/4 Rack) sehen. Leider kann man die Daten nicht für voll nehmen, da die I/Os natürlich nur im Memory erfolgt sind. Bei filesystemio_options=none im Filesystem Cache der Linux VM und bei filesystemio_options=setall im Filesystemcache vom MacOS (weil die VM alle I/Os durchgereicht hat).
Referenzen
- Oracle Datenbank 19c für ARM Download via OTN
- Oracle Enterprise Linux 8 und Oracle Datenbank 19c Client und weitere Produkte für ARM via Oracle eDelivery
- Oracle Datenbank 19c Installation Guide für Linux – wurde um die Teile für die ARM Linux Installation erweitert.
[…] Can you run Oracle for Arm on Apple’s M2 chipset? (written in German) […]
Hi Chris,
ich hatte es auch am WE probiert und es war echt schnell. Anlage einer CDB war super flott und ich war schwer beeindruckt. Jedoch hat ein datapatch nach dem Einspielen eines älteren 19er Backups sich und die DB komplett zerlegt beim Zurückrollen der darin befindlichen Patches. Hast du ähnliche Dinge beobachtet?
Viele Grüße
Andreas
Welchen Virtualisierungsmanager haben Sie auf Macos verwendet?
Ich habe Parallels version 18.3 genutzt.
Nein, habe ich nicht probiert. Sollte eigentlich nicht sein, da die Rollback Information ja innerhalb der Datenbank gespeichert ist. Werde es bei Gelegenheit einmal probieren.
No, Oracle on ARM is for Oracle/RedHat Linux 8 only. So it runs in a OL8 VM.
Since Virtualbox has a beta for ARM I’m going to give Virtualbox/Vagrant a try on my M2 mac mini that will arrive next week.
Hello! We have tried to install OL8 aarch64 with VirtualBox and failed, because it was not able to boot from iso Image. As we tried with Paralles everything works as designed. Maybe it is booting with an different distribution (RHEL, ….). Please keep me updated!
Tried this on my Daughters macBook Air M1. Same result. That is disappointing. Wonder what the Vbox team is testing with if not Oracle Linux for ARM;-) I notified them, I actually worked for Oracle for +20 years…you can find some of my blog posts still there and some related to how to the use of Vbox and OCI.
This will take a while it looks like, https://forums.virtualbox.org/viewtopic.php?t=107344
I spoke with Oracle PM. Virtualbox for Apple Silicone is still Beta. Problem is known and will be fixed until production (no release dates available, but expected in 6-12 months)
[…] Login as root and do the required steps (steps are mainly taken from here): […]
I tried this on an M1 iPad Pro and it actually worked! Instead of doing an OL8 minimal install I downloaded the Oracle Cloud Linux Image from https://yum.oracle.com/templates/OracleLinux/OL8/u8/aarch64/OL8U8_aarch64-utm-b45.utm.zip
Note that I also used the version of UTM with hypervisor support installed via Trollstore on iOS 15.3.1
I used VMWare Fusion 13.0.2 on my MacBookPro M2. The installation went smoothly and the database runs well.