Table of Contents
Introduction
L’édition express de SAP HANA est préparée pour ceux qui souhaitent essayer d’utiliser tout d’abord la base de données en mémoire de SAP HANA. Il peut être installé sur un PC avec jusqu’à 32 Go de RAM, et il n’y a pas de période d’essai spéciale.
Sur un anterieur article nous avons vue un peu de Podman. Alors maintenant, le but de cet article est d’ajouter l’édition express de HANA mais pas avec Docker sinon ce dernier en suivant cette article. ( Installation de SAP HANA, édition express avec Docker ).
Instalation
Dans le Hub de docker nous pouvons retrouver deux possible conteneurs:
- SAP HANA, édition express (services de base de données)
- SAP HANA, édition express (base de données et services applicatifs)
Dans cet article, nous appliquerons la premiere option “SAP HANA, édition express (services de base de données)”.
Modification du fichier /etc/sysctl.conf
Pour répondre aux spécifications requises par HANA express édition, il sera nécessaire d’ajouter dans le /etc/sysctl .conf les paramétrages.
# SAP HANA express
fs.file-max=20000000
fs.aio-max-nr=262144
vm.memory_failure_early_kill=1
vm.max_map_count=135217728
net.ipv4.ip_local_port_range=40000 60999
Comme il s’agit d’un fichier que seul le user root peut modifier, nous devons faire l’édition avec sudo ou en mode root.
$ sudo vi /etc/sysctl.conf
Après avoir fini la sauvegarde, nous mettons en effect ce changement.
$ sudo /sbin/sysctl -p
Modification du fichier /etc/hosts
Bien qu’il existe une étape pour définir l’adresse IP du conteneur avec “hxehost”, comme je ne connais pas l’adresse IP donnée au conteneur pour le moment.
Paramètre de mot de passe initial pour HANA express edition
Ensuite, définissez le mot de passe initial pour HANA express édition dans un fichier au format json. Commencez par créer le répertoire ‘/data/hana’ comme emplacement de partage de fichiers visible du côté du conteneur lors de la construction.
$ sudo mkdir -p /data/hana
Ensuite, créez un fichier password.json dans le répertoire ‘/data/hana’, spécifiez le mot de passe initial et enregistrez.
$ sudo vi /data/hana/password.json
Voici un exemple de configuration possible selon l’instruction.
{
"master_password" : "HXEHana1"
}
Définissez les autorisations de manière appropriée afin que l’utilisateur puisse le voir.
sudo chmod 755 /data/hana/password.json
sudo chown 12000:79 /data/hana/password.json
Création d’un pod et conteneur
Tout d’abort nous devons nous logue a DockerHub avec Podman.
$ sudo podman login docker.io u <user Dockerhub> -p <Mot de passe>
Nous allons faire un pull de la dernière image de Docker Hub.
$ sudo podman pull store/saplabs/hanaexpress:2.00.045.00.20200121.1
Ensuite créer un pod avec un host alias “hxehost” pour le “127.0.0.1’ et l’exposition des ports nécessaires.
$ sudo podman pod create --name saphana --add-host hxehost:127.0.0.1 -p 39013:39013 -p 39017:39017 -p 39041-39045:39041-39045 -p 1128-1129:1128-1129 -p 59013-59014:59013-59014
Utilisez l’image SAP HANA, Éditions express pour créer un conteneur avec les particularités suivantes.
Pour la valeur de kernel.shmmni, nous devons adapter selon le contenu dans le fichier “/proc/sys/kernel/shmmni”. Pour plus d’info lien
Ajouter “–dont-exit-on-error”: C’est une spécification pour arrêter (mais pas pour terminer) le script lorsqu’une erreur se produit. Sans cette spécification, le conteneur se terminera lorsqu’une erreur ou un autre problème se produira, vous ne pourrez donc pas voir le journal.
sudo podman run --pod saphana -v /data/hana:/hana/mounts \
--ulimit nofile=1048576:1048576 \
--sysctl kernel.shmmax=1073741824 \
--sysctl net.ipv4.ip_local_port_range='40000 60999' \
--sysctl kernel.shmmni=4096 \
--sysctl kernel.shmall=8388608 \
--name hanaexpress \
store/saplabs/hanaexpress:2.00.045.00.20200121.1 \
--passwords-url file:///hana/mounts/password.json \
--agree-to-sap-license --dont-exit-on-error
Vérifiez le conteneur
Depuis une autre console il est possible d’accéder au conteneur Sap hanaexpress.
$ sudo podman exec -ti hanaexpress /bin/bash
Ensuite, vous pouvez vérifier l’état d’exécution du processus lié à HANA en exécutant la commande “HDB info”.
Connectez-vous à la base de données
Sans sortir du conteneur, continuez à vous connecter à la base de données système.
$ hdbsql -i 90 -d SystemDB -u SYSTEM-p HXEHana1
Il est possible de faire une vérification avec une requête SQL.
SELECT DATABASE_NAME , ACTIVE_STATUS , RESTART_MODE FROM M_DATABASES ORDER BY 1 ;
Pour sortir du sql avec /q.
Parfait :)
Conteneur SQLpad
Nous pouvons dans le même pod ajouter le conteneur sqlpad.
$ sudo podman run --pod saphana sqlpad
Accéder depuis votre navigateur à l’adresse.
http://localhost:3000
Faire le signup du SQLPad avec les credential avec un user “admin@email” et mot de Passe.
Ensuite repeter les credentials.
Créer une nouvelle connexion avec votre SAP Hana.
Vous devriez voir les schémas sur le panneau latéral gauche indiquant que la connexion a été réussie.
Thank you for the initial photo.
Photo by mostafa meraji on Unsplash