0

Installer SAP IQ 16.1 en tant que service sur Red Hat 8

twitterlinkedinmail

Hello à toutes et tous, un petit post rapide pour indiquer brièvement l’enregistrement de SAP IQ en tant que service sous Red Hat / systemd. Dans la mesure où la doc ne l’indique pas et l’assistant d’installation ne le permet pas non plus, il a fallu défricher un peu avant d’arriver à une automatisation de l’arrêt et du démarrage d’un serveur IQ sur Linux. La version d’IQ utilisée dans l’exemple :

1> select @@version
2> go
 @@version
 --------------------------------------------------------------------------------------------------
 SAP IQ/16.1.040.1549/14760/P/SP04.08/Linux/Linux64 - x86_64 - 3.10.0-327/64bit/2020-11-24 00:59:00

Mise en place des paramètres runtime dans un fichier de configuration centralisé:

Ce sera plus pratique pour les adapter ensuite:

$ vi /opt/sybase/IQ-16_1/scripts/MONSERVEURIQ.cfg
# default.cfg

# ----------------------------------------------------------------------
# This file contains the default IQ startup parameters.  All servers
# started will default to these parameters, unless overriden by contents
# of parameter list.
# ----------------------------------------------------------------------
# Must be in the format: One parameter [and value] per line
# ----------------------------------------------------------------------

-n MONSERVEURIQ
-iqmc 153600
-iqtc 92160
-c  48m
-gc 20
-gd all
-gl all
-gm 200
-gp 4096
-ti 4400
-gn 300
-x  tcpip{port=2638}

Création du fichier de config du service:

En tant que root évidemment:

$ vi /usr/lib/systemd/system/MONSERVEURIQ.service
(...)
[Unit]
Description=SAP IQ Server for MONSERVEURIQ 
After=network.target

[Service]
Environment=SYBASE=/opt/sybase
Environment=IQDIR16=/opt/sybase/IQ-16_1
ExecStart=/opt/sybase/IQ-16_1/bin64/start_iq @/opt/sybase/IQ-16_1/scripts/MONSERVEURIQ.cfg /iqdata/MONSERVEURIQ/MONSERVEURIQ.db
RemainAfterExit=yes
OOMScoreAdjust=-1000
Restart=no
User=sybase
SuccessExitStatus=0

[Install]
WantedBy=multi-user.target

On retiendra surtout ExecStart qui contient la commande de démarrage du serveur. Si on n’indique pas de ligne ExecStop, un SIGTERM sera envoyé au processus suivi d’un SIGKILL si le process ne s’est pas arrêté dans les 90 secondes.
On pourra noter aussi la présence des variables d’environnement $SYBASE et $IQDIR16 qui doivent être valorisées avant le démarrage, ainsi que OOMScoreAdjust=-1000 qui permet d’exclure le processus iqsrv16 de la liste des processus qui peuvent être stoppés par un oom-killer. Voir d’ailleurs l’excellent article d’Emmanuel sur ce sujet.

Il ne reste plus qu’à activer le service pour qu’il soit intégré à la base des services gérés par systemd:

$ systemctl enable MONSERVEURIQ.service
Created symlink /etc/systemd/system/multi-user.target.wants/MONSERVEURIQ.service → /usr/lib/systemd/system/MONSERVEURIQ.service.

Tests arrêts / démarrages:

Et enfin tester tout ça proprement:

  • Démarrage et statut:

$ systemctl start MONSERVEURIQ.service

$ systemctl status MONSERVEURIQ.service
● MONSERVEURIQ.service - SAP IQ Server for MONSERVEURIQ 
   Loaded: loaded (/usr/lib/systemd/system/MONSERVEURIQ.service; enabled; vendor preset: disabled)
   Active: active (exited) since Thu 2021-04-08 17:31:04 CEST; 23s ago
  Process: 1968946 ExecStart=/opt/sybase/IQ-16_1/bin64/start_iq @/opt/sybase/IQ-16_1/scripts/MONSERVEURIQ.cfg /iqdata/MONSERVEURIQ/MONSERVEURIQ.db (code=exited, status=0/SUCCESS)
 Main PID: 1968946 (code=exited, status=0/SUCCESS)
    Tasks: 1105 (limit: 1649007)
   Memory: 2.4G
   CGroup: /system.slice/MONSERVEURIQ.service
           └─1969066 /opt/sybase/IQ-16_1/bin64/iqsrv16 @/opt/sybase/IQ-16_1/scripts/MONSERVEURIQ.cfg /iqdata/MONSERVEURIQ/MONSERVEURIQ.db -o /opt/sybase/IQ-16_1/logfiles/MONSERVEURIQ.0008.srvlog -hn 6

Apr 08 17:31:09 MONSERVEURIQ.capdata-osmozium.com SQLAnywhere(MONSERVEURIQ)[1969066]: Starting on port 2638
Apr 08 17:31:09 MONSERVEURIQ.capdata-osmozium.com start_iq[1968946]: Starting on port 2638
Apr 08 17:31:14 MONSERVEURIQ.capdata-osmozium.com SQLAnywhere(MONSERVEURIQ)[1969066]:     TCPIP link started successfully
Apr 08 17:31:14 MONSERVEURIQ.capdata-osmozium.com start_iq[1968946]: I. 04/08 17:31:14.875112     TCPIP link started successfully
Apr 08 17:31:14 MONSERVEURIQ.capdata-osmozium.com start_iq[1968946]:     TCPIP link started successfully
Apr 08 17:31:14 MONSERVEURIQ.capdata-osmozium.com start_iq[1968946]: I. 04/08 17:31:14.875975 Now accepting requests
Apr 08 17:31:14 MONSERVEURIQ.capdata-osmozium.com SQLAnywhere(MONSERVEURIQ)[1969066]: Now accepting requests
Apr 08 17:31:14 MONSERVEURIQ.capdata-osmozium.com start_iq[1968946]: Now accepting requests
Apr 08 17:31:15 MONSERVEURIQ.capdata-osmozium.com start_iq[1968946]: New process id is 1969066
Apr 08 17:31:16 MONSERVEURIQ.capdata-osmozium.com start_iq[1968946]: Server started successfully
  • Arrêt et statut:
$ systemctl stop MONSERVEURIQ.service 

$ systemctl status MONSERVEURIQ.service
● MONSERVEURIQ.service - SAP IQ Server for MONSERVEURIQ 
   Loaded: loaded (/usr/lib/systemd/system/MONSERVEURIQ.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Thu 2021-04-08 17:32:49 CEST; 38s ago
  Process: 1968946 ExecStart=/opt/sybase/IQ-16_1/bin64/start_iq @/opt/sybase/IQ-16_1/scripts/MONSERVEURIQ.cfg /iqdata/MONSERVEURIQ/MONSERVEURIQ.db (code=exited, status=0/SUCCESS)
 Main PID: 1968946 (code=exited, status=0/SUCCESS)

Apr 08 17:32:44 MONSERVEURIQ.capdata-osmozium.com SQLAnywhere(MONSERVEURIQ)[1969066]: Starting shutdown of database "MONSERVEURIQ" (MONSERVEURIQ.db) at Thu Apr 08 2021 17:32
Apr 08 17:32:44 MONSERVEURIQ.capdata-osmozium.com SQLAnywhere(MONSERVEURIQ)[1969066]: Starting checkpoint of "MONSERVEURIQ" (MONSERVEURIQ.db) at Thu Apr 08 2021 17:32
Apr 08 17:32:44 MONSERVEURIQ.capdata-osmozium.com SQLAnywhere(MONSERVEURIQ)[1969066]: Finished checkpoint of "MONSERVEURIQ" (MONSERVEURIQ.db) at Thu Apr 08 2021 17:32
Apr 08 17:32:44 MONSERVEURIQ.capdata-osmozium.com SQLAnywhere(MONSERVEURIQ)[1969066]: TCPIP listener on IP address 0.0.0.0:2638 is exiting
Apr 08 17:32:44 MONSERVEURIQ.capdata-osmozium.com SQLAnywhere(MONSERVEURIQ)[1969066]: TCPIP listener on IP address (::):2638 is exiting
Apr 08 17:32:45 MONSERVEURIQ.capdata-osmozium.com SQLAnywhere(MONSERVEURIQ)[1969066]: Database "MONSERVEURIQ" (MONSERVEURIQ.db) stopped at Thu Apr 08 2021 17:32
Apr 08 17:32:45 MONSERVEURIQ.capdata-osmozium.com SQLAnywhere(MONSERVEURIQ)[1969066]: Completing server shutdown
Apr 08 17:32:46 MONSERVEURIQ.capdata-osmozium.com SQLAnywhere(MONSERVEURIQ)[1969066]: Database server stopped at Thu Apr 08 2021 17:32
Apr 08 17:32:49 MONSERVEURIQ.capdata-osmozium.com systemd[1]: MONSERVEURIQ.service: Succeeded.
Apr 08 17:32:49 MONSERVEURIQ.capdata-osmozium.com systemd[1]: Stopped SAP IQ Server for MONSERVEURIQ .

C’est tout pour aujourd’hui , à bientôt sur le tech blog et n’oubliez pas de nous suivre sur LinkedIn !

~David

Continuez votre lecture sur le blog :

twitterlinkedinmail

David Baffaleuf

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.