Oracle 19c für Linux ARM ist da!

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:

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.

Comments

  1. […] Can you run Oracle for Arm on Apple’s M2 chipset? (written in German) […]

  2. Andreas

    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

  3. Peter Gram

    Welchen Virtualisierungsmanager haben Sie auf Macos verwendet?

  4. Christian Pfundtner

    Ich habe Parallels version 18.3 genutzt.

  5. Christian Pfundtner

    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.

  6. Christian Pfundtner

    No, Oracle on ARM is for Oracle/RedHat Linux 8 only. So it runs in a OL8 VM.

  7. Mikael Fransson

    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.

  8. Christian Pfundtner

    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!

  9. Mikael Fransson

    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.

  10. Mikael Fransson

    This will take a while it looks like, https://forums.virtualbox.org/viewtopic.php?t=107344

  11. Christian Pfundtner

    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)

  12. […] Login as root and do the required steps (steps are mainly taken from here): […]

  13. Hunt

    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

  14. Peter de Vaal

    I used VMWare Fusion 13.0.2 on my MacBookPro M2. The installation went smoothly and the database runs well.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

This site uses Akismet to reduce spam. Learn how your comment data is processed.