How To: SAP HANA Express Installation in der eigenen Cloud
Veröffentlicht am 26. Januar 2021 von | SAP HANA |
Vorsicht bei Ionos
Ich habe ganz kurzfristig (29.7.2024) eine Nachricht erhalten, dass mein Server am 31.8.2024 abgeschaltet wird. Das passiert also mit genau 1 Monat Vorankündigung und mitten in den Sommerferien, wo niemand Zeit hat, sich darum zu kümmern.
- Die Frist ist viel zu kurz - für einen Hoster ist das völlig unprofessionell
- Die Kommunikation ist wirklich übel: "Wir bedanken uns für Ihr Vertrauen und entschuldigen uns für eventuelle Unannehmlichkeiten."
- Nein, Vertrauen habe ich keines mehr in dieses Unternehmen.
- Jeder betroffene Kunden wird große Unannehmlichkeiten damit haben.
Der Support kann nichts machen, das ist halt so. Netter Mensch, der aber daran nichts ändern kann.
Dann doch lieber bei Amazon auf AWS gehen. Die sind wenigstens von der Kommunikation und Zuverlässigkeit besser.
Die eigene HANA Express Installation ist die einfachste Option, nach dem die SAP Ihre HANA Express (HXE) Images für die Hyperscaler nicht mehr bereitstellt. Ich habe mir selber eine HXE Installation (database server only) auf einem virtuellen Server bei IONOS erstellt. Das dauert zwar länger, ist aber gerade für einen Server, den man rund um die Uhr laufen lassen will, mit 200-300€ p.a. eigentlich viel günstiger.
Wichtig: Nur Binärinstallation von HANA Express, database server only
Hier beschreibe ich nur die Variante der Binärinstallation von HANA Express, database server only. D.h. es "fehlen" der Applikationsserver XS Advanced und Anwendungen wie z.B. Web IDE und SAP HANA Cockpit. Für das Lernen von SQLScript und dem Arbeiten mit dem System mit Eclipse ist das völlig ausreichend. Wer Web-Applikationen entwickeln will, der muss an der entsprechenden Stelle mehr Dateien installieren. Und Die Variante der VM-Installation ist etwas einfacher.1
Diese Anleitung lädt alle zum Nachmachen ein, die keine Lust haben, sich mit allen Details selber auseinanderzusetzen. Da ich kein Basis-Administrator oder Linux Experte bin, kann ich nicht garantieren, dass mein Vorgehen das Beste ist, dass das System optimal konfiguriert ist und das ich beim günstigsten Hoster bin. Was ich aber mit Sicherheit sagen kann: Wenn man sich an die Beschreibung hält, dann bekommt man mit wenig Zeitaufwand eine lauffähige SAP HANA Datenbank.
Das ist der Weg... zur eignen HANA Express Installation
Ich beschreibe nur, was ich gemacht habe. Dabei werde ich nicht auf alle anderen möglichen Szenarien und Konstellationen eingehen. Dadurch wird die Anleitung schlanker und lässt sich 1:1 reproduzieren. Ob das für Sie und Ihr Szenario passt, können Sie ganz leicht an der folgenden List ablesen. Hier sind die wichtigsten Eckpfeiler der Anleitung beschrieben.
- Virtuellen Server buchen: Warum bin ich bei IONOS und nicht bei einem der Hyperscalern
- Einspielen eines OpenSuse Leap 15 Linux Images
- Installation der notwendigen Voraussetzungen (Java, Bibliotheken)
- Vergabe einer Sub-Domain, so dass der Server beispielsweise unter hana.brandeis.de erreichbar ist
- Installation und Aufruf des HANA Downloaders
- Installation der HANA Express (database server only)
- Notwendige Portfreigaben der Firewall
- Einrichtung des Systems in Eclipse
- Starten und Beenden des Systems
Es werden keine Linux Details besprochen, d.h. wenn man davon abweicht, dann sollte man wissen was man macht. Die notwendige Doku habe ich an jeder Stelle verlinkt, das ist aber dann nicht mehr mein Weg.
Voraussetzungen und Software
- Grundlegende Kenntnisse in Linux und der Bedienung von FTP-Client und SSH Terminal
- 1 Server, Anforderungen siehe unten
- SSH Terminal, z.B. PuTTY
- FTP Programm, z.B. FileZilla
Warum ein klassicher Webhoster und kein Hyperscaler?
Zunächst möchte ich mein Anforderungsprofil beschreiben.
- Die SAP HANA soll rund um die Uhr erreichbar sein. Als ich noch ganz alleine meine Schulungen gemacht habe, war das egal. Ich konnte einfach schnell das System in der CAL starten und nach dem Kaffeholen loslegen. Wenn man zu dritt ist, geht das nicht mehr so einfach. Also soll die Kiste rund um die Uhr laufen.
- Der Zugang sollte in erster Linie mit Eclipse erfolgen. D.h. mir reicht die SQL-Konsole und die reinen XSC Calculation Views. Das ist für BW-Berater ausreichend. Trotzdem soll auf dem System grundsätzlich XSA laufen, damit man mal die WebIDE zeigen kann.
- Bei Schulungen sollen bis zu 20 Teilnehmer gleichzeitig arbeiten können, allerdings mit sehr überschaubarem Datenvolumen: Dem Demo Datenmodell zum Buch SQLScript für SAP HANA. Der Zugang hierbei erfolgt nur über die SQL-Konsole.
- Ein regelmäßiges Backup ist nicht notwendig. Vielleicht aber das Sichern von einzelnen Systemzuständen in Images, um vor Schulungen immer den gleichen Zustand herzustellen.
- Das System soll nicht physisch in meinem Büro stehen. Ich möchte nicht noch mehr Blech da rumstehen haben. Und da meine Schulungsteilnehmer darauf zugreifen, soll die Internetanbindung maximal schnell sein
In 2020 hatte ich bereits einen virtuellen Server für ein Konferenzsystem bei IONOS betrieben und war damit sehr zufrieden. Darum hatte ich mich bei der neuen Heimat für meine HXE auch dort umgesehen. Soweit ich die Preislisten von Google Cloud Platform (GCP), Amazon AWS und Microsoft Azure verstehe, sind sie nicht günstiger2
Für eine HANA Express Installation nur mit Datenbank und ohne XSA Applications empfiehlt die SAP ein Minimum von 2 Cores und 8 GB Ram. Für das etwas grössere Paket VPS XL RAM mit 6 vCores, 18 GB Ram und 160GB SSD verlangt IONOS im ersten Jahr 162€ und für jedes weitere Jahr 288€. Das erscheint mir relativ günstig. Aber ich bin mir sicher, dass auch andere Hoster preiswerte virtuelle Server in dieser Größenordnung haben. Natürlich hätte ich den Server auch eine Nummer kleiner nehmen können, aber bei Schulungen soll er nicht in die Knie gehen.
Ein anderer Aspekt für die Entscheidung für einen "kleineren" Hoster3
Das Linux Image einspielen
Wenn man einen vServer bucht, dann kann man dort ganz einfach unterschiedliche Betriebssysteme installieren. Ich wähle OpenSuse Leap 15. Das steht zwar nicht auf der Liste der empfohlenen Linux-Varianten, ist aber bei meinem Hoster verfügbar und ich muss nicht selber Linux installieren.
Backup Agent stelle ich aus, weil das zusätzliche Kosten verursacht. Für mich ist ein sauberes Image nach der Installation wichtiger als ein permanentes Backup. Es wird ein Pop-Up mit dem Kennwort des Servers angezeigt. Unnötig zu erwähnen, dass man sich dieses wirklich gut merken muss. Ansonsten kommt man nicht mehr auf die Maschine.
Vorbereiten des Betriebssystems
Nach der Installation des Betriebssystems müssen wir uns mit der Konsole als Root verbinden und dort ein paar Dinge installieren. Dafür verwende ich den kostenlosen SSH-Client PuTTY 4. Die Verbindungsparameter finde ich auf der Serverübersicht:
Also starten wir PuTTY und verbinden uns mit der IP Adresse:
Dort melden wir uns mit dem Benutzernamen root und dem Kennwort ein:
Ein Hinweis zur Konsole
Die meisten werden es schon wissen, aber in der Konsole steht links immer ein Prompt. Der enthält viele wertvolle Hinweise über den Kontext. Das ist gerade bei einer Anleitung wie dieser sehr wichtig.
Beispielsweise sagt der Prompt localhost:~ #
das folgende: Du bist am Server mit dem Namen localhost
mit einem privilegierten User (#) angemeldet und befindest dich im Home-Verzeichnis dieses Users.
Weiter unten kommt z.B. der Prompt hana:/hana #
. Das System hat also jetzt den Namen hana
und wir befinden uns im Verzeichnis /hana
.
Installation von Java und ein paar Bibliotheken
Wenn wir verbunden sind, dann werden jetzt die notwendigen Komponenten installiert. Das machen wir mit dem Paketmanager ZYPPER. Die folgenden Zeilen bitte einzeln, nacheinander in der Konsole eingeben. Alle Fragen, die dabei gestellt werden, müssen mit Y bestätigt werden.
localhost:~ # zypper install java-11-openjdk
localhost:~ # zypper install insserv
localhost:~ # zypper install libatomic1
localhost:~ # zypper install libnuma1
localhost:~ # zypper install numactl
localhost:~ # zypper install libltdl7
oder alle zusammen auf einmal:
localhost:~ # zypper install java-11-openjdk insserv libatomic1 libnuma1 numactl
Wenn hier etwas vergessen wird, dann wird das im Anschluss bei der Installation der HANA Express zu Fehlern führen, die man sich mühsam aus den Logs raussuchen muss.
Vergabe von Hostname und Domain
Dieser Schritt ist optional. Wer ihn überspringt kann nur per IP-Adresse auf seine SAP HANA Express Installation zugreifen.
Da ich meinen Server über einen festen Hostname wie z.B. hana.brandeis.de muss ich noch ein paar extra Schritte unternehmen. Zunächst muss ich meiner Domain brandeis.de mit dem folgenden A-Record in den DNS Einstellungen eine Sub-Domain zuweisen:
Und jetzt muss ich dem Server noch mitteilen, dass er auf den Namen hana.brandeis.de
hört. Dazu muss ich zwei Änderungen in Konfigurationsdateien machen. In die Datei
/etc/hostname
muss der neue Hostnamehana
reingeschrieben werden. Und in/etc/hosts
muss einen Eintrag für hana.brandeis.de eingefügt werden:
212.227.215.128 hana.brandeis.de hana
Da ich aber mit den Linux Konsolen Texteditoren nicht so gerne arbeite, lade ich die Dateien per FTP runter und wieder hoch. Dazu verbinde ich mich per IP mit dem Benutzernamen root
und meinem Passwort per FTP mit dem Server. Als FTP-Client verwende ich den kostenlosen FileZilla5 :
So kann ich die Dateien bequem in meinem gewohnten Notepad++ (oder dem normalen Notepad) bearbeiten und wieder speichern.
Nach dem Editieren müssen die Dateien jeweils gespeichert, geschlossen und hochgeladen werden. Damit die beiden Einstellungen greiffen, muss der Server jetzt neu gestartet werden. Das erreichen wir in der Konsolemit der Eingabe von
reboot
Installation und Aufruf des HANA Download Managers
Zum Download des HANA Download Manager müssen Sie sich zunächst auf dieser Seite https://www.sap.com/cmp/td/sap-hana-express-edition.html registrieren. Danach können Sie den Download Manager runterladen. Ich habe mich für die Platform-Independent Variante entschieden:
Per FTP habe ich dann den DM in das Verzeichnis /root
hochgeladen:
Dananch wieder mit PuTTY neu verbinden. Jetzt sollte auch der neue Hostname (bei mir hana
)angezeigt werden:Wichtig ist, dass wir im Verzeichnis /root sind. Dort wird zunächst noch ein neues Verzeichnis /root/Downloads angelegt und dann der DM mit den passenden Parametern gestartet:
hana:~ # mkdir Downloads
hana:~ # java -jar HXEDownloadManager.jar linuxx86_64 installer Getting_Started_HANAexpress_Binary_Installer.pdf hxe.tgz
Konsole nach dem erfolgreichen Download
Starten der HANA Express Installation
Navigieren ins Hauptverzeichnis und Anlegen eines neuen Unterverzeichnis /hana
:
hana:~ # cd ..
hana:/ # mkdir hana
hana:/ # cd hana
Dort dann die Dateien Entpacken:
hana:/hana # tar -xvzf /root/Downloads/hxe.tgz
Und jetzt wird installiert:
hana:/hana # ./setup_hxe.sh
Dabei werden uns allerlei Fragen gestellt, deren Standardwerte wir mit Enter
einfach übernehmen können oder nach unserem Gusto anpassen. Ich mache hier die folgenden Änderungen:
- Als System-ID wähle ich DEV, damit ich das System von anderen HANA Express Systemen in Eclipse unterscheiden kann.
- Als Instance Number wähle ich 00. Das spiegelt sich später in den Ports wieder, wo die 2. und 3. Stelle die Instanz Nummer sind.
- Das Passwort müssen wir uns wieder gut merken, denn das wird auch für die HANA Default User verwendet.
hana:/hana # ./setup_hxe.sh
Enter HANA, express edition installer root directory:
Hint: <extracted_path>/HANA_EXPRESS_20
HANA, express edition installer root directory [/hana/HANA_EXPRESS_20]:
The SAP HANA system ID (SID) is three uppercase alphanumeric characters to identify the SAP HANA system.
Enter SAP HANA system ID [HXE]: DEV
An instance number is a two-digit numeric identifier for the SAP HANA instance.
Enter instance number [90]: 00
Enter local host name [hana.brandeis.training]:
Password must be at least 8 characters in length. It must contain at least
1 uppercase letter, 1 lowercase letter, and 1 number. Special characters
are allowed, except (backslash), ' (single quote), " (double quotes),
` (backtick), and $ (dollar sign).
Enter HDB master password:
Confirm "HDB master" password:
##############################################################################
# Summary before execution #
##############################################################################
HANA, express edition installer : /hana/HANA_EXPRESS_20
Component(s) to install : HANA server, Application Function Library, SAP HANA EPM-MDS
Host name : hana.brandeis.training
HANA system ID : DEV
HANA instance number : 00
Master password : ********
Log file : /var/tmp/setup_hxe_2021-01-26_11.10.33.log
Proceed with installation? (Y/N) : Y
Notwendige Portfreigaben der Firewall
Während die Installation läuft, können wir uns um die Portfreigabe kümmern. Die notwendigen HANA-spezifischen Ports sind:
- 3\<NN>15 - SQL/MDX Zugang für die erste Tenant Datenbank
- 3\<NN>13 - SQL/MDX Zugang zur Systemdatenbank
- 5\<NN>13 bis 5<\NN>14 - Instance Agent
In dieser Liste steht \<NN\>
für die Instanz Nummer. In meinem Beispiel 00
, es wird aber auch gerne der Standardwert 90
gewählt. Alle Ports zur SAP HANA finden Sie auf dieser Seite, wo Sie noch auf das Produkt SAP HANA Platform einschränken sollten.
Bei IONOS sieht die Portkonfiguration dann so aus:
Es dauert übrigens ein paar Minuten bis bei IONOS die Ports dann wirklich zugänglich sind. Dazu bitte den Status beachten: Erst wenn statt "Wird Konfiguriert" dort "Aktiv" steht, dann ist das fertig.
Einrichtung des Systems in Eclipse
Wenn die Installation durch ist und die Ports freigegeben wurden, dann können wir uns mit Eclipse verbinden. Die Installationsprozedur hat uns schon eine Tennant-Datenbank mit dem Namen der System-ID angelegt. In meinem Fall also DEV:
Starten und Beenden des Systems
Das System ist dafür ausgelegt, das es rund um die Uhr läuft. Sollte es z.B. für ein offline-Backup mal angehalten werden oder nach dem Serverneustart hochgefahren werden, so müssen wir uns dafür mit den Benutzer \<sid\>adm
anmelden, also bei mir mit devadm
. Um das System zu starten, geben wir HDB start
ein:
Und zum Stoppen entsprechend HDB stop
.
Nach dem alles läuft, empfehle ich die Erstellung eines Images. Damit kann man immer wieder den gleichen Systemstand nach der Installation herstellen.
Änderungen für die XSA Installation
Falls man die XSA mit installieren will, benötigt man mehr Pakete und mehr Speicher. Notfalls den SWAP erhöhen, siehe nächsten Abschnitt.
localhost:~ # java -jar HXEDownloadManager.jar linuxx86_64 installer hxe.tgz hxexsa.tgz shine.tgz eml.tgz apl.tgz sdi.tgz dpagent_linux_x86_64.tgz
Nachtrag, falls der Speicher nicht reicht
Die SAP empfiehlt bei der XSA Version, dass man mit weniger als 24 GB RAM noch zusätzlich den Swap Bereich auf 32 GB erweitert. Das geht relativ einfach, solange man eine Swap-Datei verwendet.
hana:~ # swapon --show
NAME TYPE SIZE USED PRIO
/dev/dm-0 partition 2G 0B -2
hana:~ # sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 160G 0 disk
├─sda1 8:1 0 512M 0 part /boot
└─sda2 8:2 0 159.5G 0 part
├─vgopensuse-lvswap 254:0 0 2G 0 lvm [SWAP]
└─vgopensuse-lvroot 254:1 0 157.5G 0 lvm /
sr0 11:0 1 1024M 0 rom
hana:~ # free -m
total used free shared buff/cache available
Mem: 17962 6045 10160 117 1755 11517
Swap: 2047 0 2047
hana:~ # sudo fallocate -l 32G /swap_file
hana:/ # chmod 600 /swap_file
hana:/ # mkswap /swap_file
Setting up swapspace version 1, size = 32 GiB (34359734272 bytes)
no label, UUID=39e55ea6-95b4-433c-9596-2180c4474487
hana:/ # swapon /swap_file
hana:/ # swapon -s
Filename Type Size Used Priority
/dev/dm-0 partition 2097148 0 -2
/swap_file file 33554428 0 -
3
hana:/ # swapon --show
NAME TYPE SIZE USED PRIO
/dev/dm-0 partition 2G 0B -2
/swap_file file 32G 0B -3
Dazu muss noch die Datei /etc/fstab
erweitert werden:
LABEL=swapfile /swap_file swap swap 0 0
Falls der Festplattenspeicher irgendwann voll ist
In der Konsole sehen wir mit der Anweisung df
direkt, wie viel Speicherplatz noch frei ist:
hxe:~ # df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 4096 0 4096 0% /dev
tmpfs 32778968 0 32778968 0% /dev/shm
tmpfs 13111588 1254832 11856756 10% /run
tmpfs 4096 0 4096 0% /sys/fs/cgroup
/dev/nvme0n1p2 455285760 453984768 128 100% /
/dev/nvme0n1p2 455285760 453984768 128 100% /.snapshots
/dev/nvme0n1p2 455285760 453984768 128 100% /boot/grub2/i386-pc
/dev/nvme0n1p2 455285760 453984768 128 100% /boot/grub2/x86_64-efi
/dev/nvme0n1p2 455285760 453984768 128 100% /home
/dev/nvme0n1p2 455285760 453984768 128 100% /opt
/dev/nvme0n1p2 455285760 453984768 128 100% /root
/dev/nvme0n1p2 455285760 453984768 128 100% /srv
/dev/nvme0n1p2 455285760 453984768 128 100% /tmp
/dev/nvme0n1p2 455285760 453984768 128 100% /usr/local
/dev/nvme0n1p2 455285760 453984768 128 100% /var
/dev/nvme0n1p1 523248 5104 518144 1% /boot/efi
tmpfs 6555792 0 6555792 0% /run/user/1001
tmpfs 6555792 0 6555792 0% /run/user/472
tmpfs 6555792 0 6555792 0% /run/user/0
Wenn 100% in Verwendung sind, müssen wir wieder etwas freigeben. Sonst geht garnichts mehr auf dem System. Der Server ist dann ständig am hyperventilieren. Um den Speicherverbrauch von Verzeichnissen zu ermitteln, gibt es die Anweisung du
. Wenn man nur die Summe des Speicherverbrauchs des aktuellen Verzeichnis wissen will, hilft `du -sh
. Wenn man sich so etwas umschaut, findet man schnell das backup
Verzeichnis:
hxeadm@hxe:/hana/shared/HXE/HDB00/backup/log/DB_HXE> du -sh
326G .
Eine wirksame Maßnahme, die ich nur auf Spielsystemen empfehlen kann, ist das löschen aller Backup-Logs. Echte DB-Admins würden die Logs wahrscheinlich vorher irgendwo sichern.
Nur auf Spielsystemen machen! Alle Dateien in einem Verzeichnis löschen geht so:
hxeadm@hxe:/hana/shared/HXE/HDB00/backup/log/DB_HXE> rm *
Fazit
Die SAP HANA Express Installation in der eigenen Cloud ist nicht so schwer und geht auch relativ schnell. Damit macht man sich unabhängig von der SAP. Ich bin gespannt, wie sich das System auf Dauer verhält. Falls ich hier noch etwas nachjustieren muss, werde ich es natürlich auf dieser Seite veröffentlichen.
- Die unterschiedlichen Installationsmöglichkeiten sind hier beschrieben↩
- OK, von vollständigem Verstehen kann nicht die Rede sein. Da man für Speicher, CPU und Netzwerk separat zahlt, ist am Ende die Rechnung oft wieder höher als erwartet. Und welches der 3000 unterschiedlichen Maschinengrößen man braucht, das versteht kein Mensch. Aber ich habe zumindest einen Vergleich versucht.↩
- IONOS gehört zu United Internet, das ist ein Konzern mit über 5 Mrd. € Umsatz. Das ist natürlich nur im Vergleich zu den Hyperscalern klein. Immerhin haben sie den Sitz noch in Deutschland und zahlen hoffentlich auch hier die Steuern. war für mich, dass ich seit längerem vermeide, bei Amazon und Co. einzukaufen. Deren Geschäftsgebaren ist in vielerlei Hinsicht unethisch und ich möchte ihnen deshalb nach Möglichkeit kein Geld überweisen. Bislang war es bequem zu sagen: Die SAP bietet nur Images an für die großen drei, also kann ich gar nicht anders. Nach dem das jetzt auch nicht mehr der Fall ist, fällt diese Ausrede weg.↩
- PuTTY kann man kostenlos runterladen unter https://www.putty.org↩
- Filezilla kann man unter https://filezilla-project.org/download.php kostenlos downloaden↩