Scénario de gestion
En tant qu'administrateur de base de données SAP HANA, vous êtes responsable des systèmes SAP ERP et SAP Business Warehouse (BW) de votre entreprise. Vous devez comprendre le cadre de démarrage SAP HANA et la manière dont la base de données SAP HANA gère les erreurs matérielles et logicielles.
Redémarrage automatique du service
En cas d'échec du logiciel qui désactive l'un des services SAP HANA configurés (serveur d'index, serveur de noms, etc.), le service défaillant est redémarré par la fonction de surveillance Redémarrage automatique du service SAP HANA, qui détecte automatiquement l'échec et redémarre le processus de service arrêté. Au redémarrage, le service charge les données dans la mémoire et reprend sa fonction. Bien que toutes les données restent sûres (OPR = 0), la récupération du service prend un certain temps.
Le redémarrage des services SAP HANA défaillants est géré par le service démon SAP HANA. L'une des tâches de ce service est de surveiller les autres services hdb* et de les redémarrer si nécessaire. Le démon SAP HANA lui-même est lancé par le framework de démarrage SAP HANA. Ce framework ressemble au cadre de démarrage de SAP NetWeaver et est illustré dans la figure Structure de démarrage SAP HANA.

Lorsqu'un serveur Linux démarre, le processus de démarrage passe par plusieurs étapes qui sont exécutées par différents composants :
- Le BIOS/UEFI
Après avoir allumé l'ordinateur, le BIOS ou l'UEFI initialise les différents composants matériels de base, tels que l'écran et le clavier, et teste la mémoire principale. Dès que le premier disque dur amorçable est identifié, le BIOS/UEFI passe le contrôle au chargeur de démarrage.
- Le chargeur de démarrage
- Situé sur le premier secteur de données du premier disque dur, l'enregistrement de démarrage principal est chargé dans la mémoire principale. Sur les systèmes Linux, ce chargeur de démarrage est généralement GRUB 2. Lorsque le chargeur de démarrage est terminé, il passe le contrôle au système d'exploitation.
- Le système d'exploitation
- Lorsque le chargeur de démarrage passe le contrôle au système d'exploitation, le noyau Linux et le système de fichiers initial basé sur RAM (initramfs) sont chargés dans la mémoire.
- Le processus initial
- À partir des initramfs, l'exécutable init est lancé, puis il monte le système de fichiers racine. Lorsque le système de fichiers racine est correctement monté, le contrôle est transmis au démon système. Le système de fichiers initramfs est effacé.
- Le démon système
Le démon systemd s'occupe du démarrage du reste du système d'exploitation. Le démon système monte tous les systèmes de fichiers définis et lance les services requis. Lorsque cela est terminé, le système d'exploitation Linux est disponible pour l'utilisateur.
Lorsqu'un serveur Linux démarre, comme décrit dans les étapes précédentes, le démon système identifie dans quelle « cible » (anciennement appelée « runlevel » dans le système V) le serveur doit être démarré. Lorsque le runlevel cible est identifié, le démon système lance les programmes requis appartenant à ce runlevel cible.
Une vue d'ensemble des runlevels cibles disponibles sur le serveur peut être générée avec la commande systemctl list-units --type=target.
Dans les différents runlevel cibles, seuls les scripts de démarrage, programmes ou démons requis sont lancés. L'un de ces scripts de démarrage est le script sapinit trouvé dans le dossier /etc/init.d. Le script sapinit est installé sur le serveur pendant l'installation de SAP HANA. Les étapes suivantes sont exécutées lors du lancement :
Le script sapinit lit le fichier /usr/sap/sapservices et lance le démon sapstartsrv.
sapstartsrv lit ensuite le profil d'instance SAP HANA et lance l'exécutable sapstart.
Le programme sapstart lit également le profil d'instance SAP HANA pour voir si la base de données SAP HANA doit être lancée automatiquement.

À partir du cockpit SAP HANA 2.0 dans l'application Gestion des services, tous les services SAP HANA en cours d'exécution sont affichés. La colonne ID de processus est très intéressante ici car elle affiche l'ID de processus (PID) des services SAP HANA. Le PID du processus démon est également affiché. Ce PID se trouve également au niveau du système d'exploitation Linux. De cette façon, vous pouvez facilement identifier les services SAP HANA au niveau du système d'exploitation.

La liste des processus peut également être affichée au niveau du système d'exploitation Linux. L'affichage des processus sous Linux peut se faire de plusieurs façons, par exemple, à l'aide de la commande ps fx -o ppid,pid,args --sort=ppid.
Cette commande affiche non seulement les PID de tous les services SAP HANA, mais aussi leur ordre de départ et leur hiérarchie. Dans la figure précédente, Synthèse des processus du système d'exploitation, il est clairement visible que le processus d'initialisation démarre le sapstart.
Le processus sapstart lance à son tour le processus démon SAP HANA. Dans la synthèse des processus du système d'exploitation, ce processus n'est pas appelé démon, mais en regardant le PID, vous pouvez voir qu'il s'agit bien du démon SAP HANA.
Le démon SAP HANA, souvent appelé hdbdaemon dans la documentation, est chargé de lancer tous les autres services SAP HANA tels que :
hdbnameserver
hdbcompileserver
hdbpreprocessor
hdbindexserver
hdbxsengine
hdbwebdispatcher
Cette liste précédente n'est pas fixe car elle dépend de la version de SAP HANA et de la configuration du locataire SAP HANA.
Démarrage automatique SAP HANA
La base de données SAP HANA peut être démarrée, arrêtée et redémarrée au niveau du système d'exploitation Linux. Cela est souvent nécessaire pour automatiser les tâches. Les scripts ont besoin des informations contenues dans le profil de démarrage.
Le profil de démarrage se trouve à l'emplacement /usr/sap/<SID>/SYS/profile. Le profil de démarrage répertorie SAPSYSTEMNAME, SAPSYSTEM, INSTANCE_NAME et SAPLOCALHOST, mais aucun de ces paramètres ne doit être modifié.

La seule exception est le paramètre Démarrage automatique. Ce paramètre pilote le lancement automatique de la base de données SAP HANA par le processus sapstart. Il peut avoir les valeurs suivantes :
Si Autostart=0, la base de données SAP HANA ne démarre pas automatiquement au démarrage du système d'exploitation.
Cela peut s'avérer très utile si plusieurs bases de données SAP HANA (telles que la formation de l'utilisateur final et le test) sont installées sur un serveur et doivent être arrêtées manuellement et lancées selon les besoins par l'administrateur système.
Si Autostart=1, la base de données SAP HANA démarre automatiquement au démarrage du système d'exploitation.
Cela peut s'avérer très utile pour un système de production qui doit être disponible dès que possible après une panne matérielle ou pour une base de données SAP HANA qui doit être automatiquement disponible après le déploiement d'une nouvelle image virtuelle par script.
Basculement automatique de l'hôte
L'auto-basculement de l'hôte est une solution locale de récupération des pannes "N+m" (m est souvent 1) qui peut être utilisée comme mesure supplémentaire ou alternative à la solution de réplication du système décrite précédemment. Un (ou plusieurs) hôte(s) de secours sont ajoutés à un système SAP HANA et configurés pour fonctionner en mode de secours. Tant qu'elles sont en mode veille, les bases de données sur ces hôtes ne contiennent aucune donnée et n'acceptent pas les requêtes.

Lorsqu'un hôte actif (worker) échoue, un hôte de secours prend automatiquement sa place. Comme l'hôte de secours peut reprendre l'opération de n'importe quel hôte principal, il a besoin d'accéder à tous les volumes de la base de données. Pour ce faire, il est possible d'utiliser un serveur de stockage partagé et en réseau, un système de fichiers distribué ou des solutions spécifiques au fournisseur qui utilisent une interface programmatique SAP HANA (l'API Storage Connector) pour détacher et attacher (monter) dynamiquement le stockage en réseau (par exemple, à l'aide du stockage par blocs sur Fiber Channel) lors du basculement.