SapHana express avec Podman

 · 4 mins read

Table of Contents

Introduccion

Instalation


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