DBAtlas · Atlas für Datenbankbetrieb

SQL Server Always On Availability Group (Linux, Pacemaker)

SQL ServerStufe: FortgeschrittenDauer: 120–180 min

Richtet aus drei Linux-Servern (RHEL 9 oder Ubuntu 22.04) mit installiertem SQL Server 2022 eine von Pacemaker verwaltete Always On AG ein: mssql-server-ha, hadr.hadrenabled, per Zertifikat authentifizierte Datenbankspiegelungs-Endpunkte, eine AG mit CLUSTER_TYPE = EXTERNAL (3 synchrone Replicas oder 2 synchrone + configuration-only), automatisches Seeding, Pacemaker/Corosync/pcs-Cluster, Fencing (STONITH), die Ressource ocf:mssql:ag, die Listener-IP-Ressource und Constraints sowie Tests für Listener und geplanten Failover. Am Ende hast du eine AG, bei der Pacemaker automatisch einen Failover ausführt, wenn der Primary ausfällt, und die Listener-IP mit dem Primary wandert.

Installiere zuerst jeden Node mit der SQL-Server-Installation unter Linux. Für Windows und WSFC siehe Always On AG (Windows); für den täglichen Betrieb und Störungen einer bestehenden AG siehe AG-Betrieb.

Topologie: 3 Linux-Nodes: 3 synchrone Replicas oder 2 synchrone + eine configuration-only Replica

Vor dem Start

  • Auf allen drei Nodes ist SQL Server 2022 in derselben Version und demselben CU installiert (Installation unter Linux)…; auf dem configuration-only Node darf auch Express laufen…, und … ist sysadmin. Passwort: read -rsp 'Passwort: ' SQLCMDPASSWORD; export SQLCMDPASSWORD und sudo --preserve-env=SQLCMDPASSWORD bash <skript>.sh.
  • Auf jedem Node stimmt die Ausgabe von hostname exakt mit @@SERVERNAME in SQL Server und mit dem Namen in der Node-Liste überein. Andernfalls findet die Pacemaker-Ressource die Replica nicht (RESOLVING).
  • Die Nodes lösen sich gegenseitig per Name auf (DNS oder /etc/hosts), und diese Ports sind offen: SQL …/tcp, Endpunkt …/tcp, Pacemaker 2224/tcp, 3121/tcp, 5403/tcp, 21064/tcp, 5404–5405/udp. Die Listener-IP (…) ist nicht in Verwendung.
  • Auf jedem Node sind das RHEL-Abonnement und das High Availability Add-On aktiv (Repository rhel-9-for-x86_64-highavailability-rpms).
  • Die Uhren der Nodes sind per NTP synchronisiert (chronyd / systemd-timesyncd); Corosync und Zertifikate reagieren empfindlich auf Zeitabweichungen.
  • …Die BMC-Adresse (iLO/iDRAC/IPMI) jedes Nodes ist von den Nodes aus erreichbar; der Fencing-Benutzer darf aus- und einschalten.…vCenter (…) ist von den Nodes über 443/tcp erreichbar; das Fencing-Konto darf auf diesen VMs Energieoperationen ausführen.… Red Hat unterstützt nur unterstützte Fencing-Methoden (für dieselbe Virtualisierungsplattform).
  • Die Passwörter liegen bereit und im Tresor: SQL Master Key, Sicherung des privaten Zertifikatschlüssels, Login …, Benutzer hacluster…, Fencing-Konto…. Die Schritte fragen Passwörter ab, ohne sie anzuzeigen.
  • Wartungsfenster: Die SQL-Server-Dienste werden einmal neu gestartet (hadr.hadrenabled), und der Failover-Test unterbricht den Listener für einige Sekunden.

Phasen der Anleitung

  • Nodes vorbereiten — Node-Namen in die hosts-Datei eintragen · SQL-, Endpunkt- und Pacemaker-Ports in der Firewall öffnen
  • SQL Server: HA-Agent, Always On und Endpunkte — SQL-Server-HA-Agent installieren (mssql-server-ha) · Always On aktivieren und SQL Server neu starten · Sitzung AlwaysOn_health beim Start ausführen · SQL-Server-Login und Passwortdatei für Pacemaker anlegen · Endpunkt-Zertifikat erstellen und sichern (Node 1) · Zertifikatsdateien auf die anderen Nodes kopieren (Node 1) …
  • Availability Group (CLUSTER_TYPE = EXTERNAL) — AG anlegen (Node 1) · Secondary der AG hinzufügen: … · Datenbank auf FULL-Wiederherstellung umstellen, sichern und der AG hinzufügen (Node 1) · Automatisches Seeding und Synchronisierung überwachen (Node 1)
  • Pacemaker-Cluster — Pacemaker, Corosync und pcs installieren · Passwort für hacluster setzen und pcsd starten · Standard-Clusterkonfiguration von Ubuntu entfernen · Cluster anlegen und starten (Node 1) · Fencing (STONITH) konfigurieren (Node 1) · Cluster-Eigenschaften setzen (Node 1) …
  • Listener — Listener anlegen (Node 1) · Verbindung über den Listener testen
  • Verifizierung und Failover-Test — Zustand der AG prüfen · Geplanter Failover-Test: … zum Primary machen · Failback: … wieder zum Primary machen
  • Nach der Installation — Logins, Jobs und Serverobjekte abgleichen · Sicherungen und Überwachung einrichten
Schritt-für-Schritt-Plan für Ihre Umgebung öffnen →