SQL Server Always On Availability Group (Linux, Pacemaker)
SQL ServerNiveau: AvancéDurée: 120–180 minMet en place, à partir de trois serveurs Linux (RHEL 9 ou Ubuntu 22.04) sur lesquels SQL Server 2022 est installé, un AG Always On géré par Pacemaker : mssql-server-ha, hadr.hadrenabled, points de terminaison de mise en miroir authentifiés par certificat, AG CLUSTER_TYPE = EXTERNAL (3 réplicas synchrones ou 2 synchrones + configuration-only), automatic seeding, cluster pacemaker/corosync/pcs, fencing (STONITH), ressource ocf:mssql:ag, ressource IP du listener et contraintes, tests du listener et d'un failover planifié. Vous obtenez un AG dans lequel Pacemaker effectue un failover automatique quand le primary tombe et où l'IP du listener suit le primary.
Installez d'abord chaque nœud avec Installation de SQL Server sous Linux. Pour Windows et WSFC, voir Always On AG (Windows) ; pour l'exploitation courante et les incidents d'un AG existant, voir Exploitation de l'AG.
Topologie: 3 nœuds Linux : 3 réplicas synchrones ou 2 synchrones + un réplica configuration-only
Avant de commencer
- SQL Server 2022 est installé sur les trois nœuds avec la même version et le même CU (installation sous Linux)… ; le nœud configuration-only peut aussi être en Express…, et … est sysadmin. Mot de passe : read -rsp 'Mot de passe : ' SQLCMDPASSWORD; export SQLCMDPASSWORD puis sudo --preserve-env=SQLCMDPASSWORD bash <script>.sh.
- Sur chaque nœud, la sortie de hostname est identique à @@SERVERNAME dans SQL Server et correspond au nom de la liste des nœuds. Sinon, la ressource Pacemaker ne trouve pas le réplica (RESOLVING).
- Les nœuds se résolvent mutuellement par leur nom (DNS ou /etc/hosts) et les ports suivants sont ouverts : SQL …/tcp, point de terminaison …/tcp, Pacemaker 2224/tcp, 3121/tcp, 5403/tcp, 21064/tcp, 5404–5405/udp. L'IP du listener (…) n'est pas utilisée.
- L'abonnement RHEL et le High Availability Add-On sont activés sur chaque nœud (dépôt rhel-9-for-x86_64-highavailability-rpms).
- Les horloges des nœuds sont synchronisées par NTP (chronyd / systemd-timesyncd) ; corosync et les certificats sont sensibles aux écarts d'horloge.
- …L'adresse BMC (iLO/iDRAC/IPMI) de chaque nœud est joignable depuis les nœuds ; l'utilisateur de fencing a le droit d'éteindre/démarrer.…vCenter (…) est joignable depuis les nœuds en 443/tcp ; le compte de fencing a les droits d'opérations d'alimentation sur ces VM.… Red Hat ne supporte que les méthodes de fencing prises en charge (pour la même plateforme de virtualisation).
- Les mots de passe sont prêts et rangés dans le coffre : master key SQL, sauvegarde de la clé privée du certificat, login …, utilisateur hacluster…, compte de fencing…. Les étapes demandent les mots de passe sans les afficher.
- Fenêtre de maintenance : les services SQL Server sont redémarrés une fois (hadr.hadrenabled) et le test de failover coupe le listener quelques secondes.
Phases du guide
- Préparer les nœuds — Ajouter les noms des nœuds au fichier hosts · Ouvrir les ports SQL, du point de terminaison et de Pacemaker dans le pare-feu
- SQL Server : agent HA, Always On et points de terminaison — Installer l'agent HA de SQL Server (mssql-server-ha) · Activer Always On et redémarrer SQL Server · Démarrer la session AlwaysOn_health au démarrage du serveur · Créer le login SQL Server et le fichier de mot de passe pour Pacemaker · Créer et sauvegarder le certificat du point de terminaison (nœud 1) · Copier les fichiers du certificat sur les autres nœuds (nœud 1) …
- Availability Group (CLUSTER_TYPE = EXTERNAL) — Créer l'AG (nœud 1) · Joindre le secondary à l'AG : … · Passer la base en récupération FULL, la sauvegarder et l'ajouter à l'AG (nœud 1) · Surveiller l'automatic seeding et la synchronisation (nœud 1)
- Cluster Pacemaker — Installer Pacemaker, corosync et pcs · Définir le mot de passe hacluster et démarrer pcsd · Supprimer la configuration de cluster par défaut d'Ubuntu · Créer et démarrer le cluster (nœud 1) · Configurer le fencing (STONITH) (nœud 1) · Définir les propriétés du cluster (nœud 1) …
- Listener — Créer le listener (nœud 1) · Tester la connexion via le listener
- Vérification et test de failover — Contrôler la santé de l'AG · Test de failover planifié : faire de … le primary · Revenir en arrière : refaire de … le primary
- Après l'installation — Synchroniser les logins, les jobs et les objets serveur · Mettre en place les sauvegardes et la supervision