Freigeben über


Grundlagen zur SQL Server-Verfügbarkeit für Linux-Bereitstellungen

Gilt für:SQL Server unter Linux

Ab SQL Server 2017 (14.x) wird SQL Server sowohl unter Linux als auch Windows unterstützt. Ebenso wie bei Windows-basierten SQL Server-Bereitstellungen müssen auch SQL Server-Datenbanken und -Instanzen unter Linux hochverfügbar sein.

In diesem Artikel werden die technischen Aspekte der Planung und Bereitstellung von hochverwendigen Linux-basierten SQL Server-Instanzen und -Datenbanken behandelt und wichtige Unterschiede von Windows-basierten Installationen erläutert. Da sql Server oder Linux ihnen möglicherweise noch nicht vertraut sind, werden in diesem Artikel konzepte erläutert, die Ihnen bereits vertraut sind.

SQL Server-Verfügbarkeitsoptionen für Linux-Bereitstellungen

Neben der Sicherung und Wiederherstellung sind die folgenden drei Features sowohl für Linux als auch für Windows-basierte Bereitstellungen verfügbar:

Unter Windows ist für Failoverclusterinstanzen immer ein Windows Server-Failovercluster (WSFC) erforderlich. Abhängig vom Bereitstellungsszenario ist für eine Verfügbarkeitsgruppe in der Regel ein WSFC notwendig. Eine Ausnahme bildet die neue Variante „None“ (Keine) in SQL Server 2017 (14.x). Unter Linux gibt es keinen WSFC. Die Clusteringimplementierung in Linux wird unter Pacemaker für Verfügbarkeitsgruppen und Failoverclusterinstanzen unter Linux erläutert.

Linux-Grundlagen

Einige Linux-Installationen enthalten zwar eine Schnittstelle, die meisten jedoch nicht. Sie verwenden die Befehlszeile für fast alles auf der Betriebssystemebene. Der häufige Begriff für diese Befehlszeile in der Linux-Welt ist eine Shell, die am häufigsten ist bash.

In Linux benötigen Sie erhöhte Berechtigungen, um viele Befehle auszuführen, ähnlich wie die Notwendigkeit von Administratorrechten in Windows Server. Sie können Befehle mit erhöhten Rechten auf zwei Arten ausführen:

  1. Führen Sie den Befehl als richtigen Benutzer aus. Verwenden Sie den su Befehl, um zu einem anderen Benutzer zu wechseln. Wenn Sie su ohne Benutzernamen ausführen, gelangen Sie in eine Shell als root , wenn Sie das Kennwort kennen.

  2. Verwenden Sie sudo vor dem Befehl. Diese Methode ist häufiger und sicherer. Viele Beispiele in diesem Artikel verwenden sudo.

Im Folgenden finden Sie einige allgemeine Befehle. Jeder Befehl verfügt über verschiedene Schalter und Optionen, die Sie online recherchieren können.

  • cd – ändert das Verzeichnis
  • chmod – ändert die Berechtigungen für eine Datei oder ein Verzeichnis
  • chown – ändert den Eigentümer einer Datei oder eines Verzeichnisses
  • ls – zeigt den Inhalt eines Verzeichnisses an
  • mkdir – erstellt einen Ordner (Verzeichnis) auf einem Laufwerk
  • mv – verschiebt eine Datei von einem Ort zu einem anderen
  • ps – zeigt alle Arbeitsprozesse an
  • rm – löscht eine Datei lokal auf einem Server
  • rmdir – löscht einen Ordner (Verzeichnis)
  • systemctl – startet, stoppt oder aktiviert Dienste
  • Text-Editor-Befehle. Unter Linux gibt es verschiedene Text-Editoren, z. B. vi und emacs.

Übliche Aufgaben bei Verfügbarkeitskonfigurationen von SQL Server unter Linux

In diesem Abschnitt werden Aufgaben beschrieben, die für alle Linux-basierten SQL Server-Bereitstellungen üblicherweise anfallen.

Stellen Sie sicher, dass Sie Dateien kopieren können

Jeder, der SQL Server unter Linux verwaltet, sollte Dateien von einem Server auf einen anderen kopieren können. Diese Aufgabe ist für AG-Konfigurationen unerlässlich.

Berechtigungsprobleme können sowohl auf Linux- als auch auf Windows-basierten Installationen auftreten. Windows-Benutzer, die mit dem Kopieren von Dateien vom Server auf den Server vertraut sind, sind möglicherweise nicht mit der Vorgehensweise unter Linux vertraut. Eine gängige Methode besteht darin, das Befehlszeilenprogramm scpzu verwenden, das für sichere Kopie steht. Im Hintergrund verwendet scp OpenSSH SSH steht für sichere Shell. Abhängig von der Linux-Distribution ist OpenSSH möglicherweise nicht installiert. Wenn dies nicht der Fall ist, müssen Sie OpenSSH installieren.

Weitere Informationen zum Konfigurieren von OpenSSH für Ihre Linux-Verteilung finden Sie unter:

Hinweis

Ab SQL Server 2025 (17.x) wird SUSE Linux Enterprise Server (SLES) nicht unterstützt.

Bei der Verwendung von scp müssen Sie die Anmeldeinformationen des Servers angeben, wenn dieser weder die Quelle noch das Ziel darstellt. Mit dem folgenden Befehl wird die Datei MyAGCert.cer beispielsweise in den ordner kopiert, der auf dem anderen Server angegeben ist:

scp MyAGCert.cer username@servername:/folder/subfolder

Sie müssen über Berechtigungen und möglicherweise den Besitz der Datei verfügen, um sie zu kopieren. Daher müssen Sie möglicherweise vor dem Kopieren verwenden chown . Auch auf dem Zielserver muss der richtige Benutzer auf die Datei zugreifen können, um sie zu ändern. Wenn der mssql-Benutzer beispielsweise die Zertifikatdatei wiederherstellen möchte, muss er auf sie zugreifen können.

Auch mit Samba, der Linux-Variante von Server Message Block (SMB), können Freigaben erstellt werden, auf die über UNC-Pfade wie \\SERVERNAME\SHARE zugegriffen werden kann. Weitere Informationen zum Konfigurieren von Samba finden Sie unter den folgenden Links für verschiedene Distributionen:

Hinweis

Ab SQL Server 2025 (17.x) wird SUSE Linux Enterprise Server (SLES) nicht unterstützt.

Sie können auch Windows-basierte SMB-Freigaben verwenden. SMB-Freigaben müssen nicht linuxbasiert sein, solange der Clientteil von Samba auf dem Linux-Server, auf dem SQL Server gehostet wird, ordnungsgemäß konfiguriert ist und die Freigabe über den richtigen Zugriff verfügt. Mit diesem Ansatz können Sie für Kunden in einer gemischten Umgebung vorhandene Infrastruktur für Linux-basierte SQL Server-Bereitstellungen verwenden.

Die version von Samba, die Sie bereitstellen, sollte SMB 3.0 kompatibel sein. Seit der Einführung der SMB-Unterstützung in SQL Server 2012 (11.x) müssen alle Freigaben SMB 3.0 unterstützen. Wenn Sie Samba für die Freigabe und nicht für Windows Server verwenden, sollte die Samba-basierte Freigabe Samba 4.0 oder höher und idealerweise 4.3 oder höher verwenden, die SMB 3.1.1 unterstützt. Viele hilfreiche Informationen zu SMB und Linux finden Sie unter SMB3 in Samba (SMB 3.0 für Samba).

Eine weitere Option ist eine NFS-Freigabe (Network File System). Sie können NFS nicht für Windows-basierte Bereitstellungen von SQL Server verwenden, und sie kann nur für Linux-basierte Bereitstellungen verwendet werden.

Konfigurieren der Firewall

Linux-Distributionen verfügen ähnlich wie Windows über eine integrierte Firewall. Wenn Ihre Organisation eine externe Firewall für die Server verwendet, können Sie die Firewalls unter Linux möglicherweise deaktivieren. Unabhängig davon, wo Sie die Firewall aktivieren, müssen Sie jedoch Ports öffnen. In der folgenden Tabelle sind die allgemeinen Ports aufgeführt, die für hoch verfügbare SQL Server-Bereitstellungen unter Linux erforderlich sind.

Portnummer Typ Beschreibung
111 TCP/UDP NFS: rpcbind/sunrpc
135 TCP Samba (falls verwendet) – Endpoint Mapper
137 UDP Samba (falls verwendet): NetBIOS-Namensdienst
138 UDP Samba (falls verwendet): NetBIOS-Datagramm
139 TCP Samba (falls verwendet): NetBIOS-Sitzung
445 TCP Samba (falls verwendet): SMB über TCP
1433 TCP SQL Server: Standardport; kann bei Bedarf mit mssql-conf set network.tcpport <portnumber> geändert werden
2049 TCP, UDP NFS (falls verwendet)
2224 TCP Pacemaker: wird von pcsd verwendet
3121 TCP Pacemaker: erforderlich, wenn Pacemaker Remote-Knoten vorhanden sind
3260 TCP iSCSI-Initiator (falls verwendet): kann in /etc/iscsi/iscsid.config geändert werden (RHEL); der Port sollte jedoch mit dem des iSCSI-Ziels übereinstimmen
5022 TCP SQL Server: Standardport für den Endpunkt einer Verfügbarkeitsgruppe; kann bei der Erstellung des Endpunkts geändert werden
5403 TCP Pacemaker
5404 UDP Pacemaker: für Corosync erforderlich, wenn Multicast-UDP verwendet wird
5405 UDP Pacemaker: für Corosync erforderlich
21064 TCP Pacemaker: für Ressourcen erforderlich, die DLM verwenden
Variable TCP Endpunktport der Verfügbarkeitsgruppe; der Standardport ist 5022
Variable TCP NFS: Port für LOCKD_TCPPORT (befindet sich unter RHEL in /etc/sysconfig/nfs)
Variable UDP NFS: Port für LOCKD_UDPPORT (befindet sich unter RHEL in /etc/sysconfig/nfs)
Variable TCP/UDP NFS: Port für MOUNTD_PORT (befindet sich unter RHEL in /etc/sysconfig/nfs)
Variable TCP/UDP NFS: Port für STATD_PORT (befindet sich unter RHEL in /etc/sysconfig/nfs)

Weitere Ports, die Samba verwendet, finden Sie unter Samba Port Usage.

Umgekehrt können Sie den Namen des Diensts unter Linux als Ausnahme anstelle des Ports hinzufügen. Verwenden Sie z. B high-availability . für Pacemaker. Wenden Sie sich an Ihre Distribution für die korrekten Namen. Auf RHEL lautet der Befehl zum Hinzufügen eines Elements in Pacemaker beispielsweise:

sudo firewall-cmd --permanent --add-service=high-availability

Firewalldokumentation

Hinweis

Ab SQL Server 2025 (17.x) wird SUSE Linux Enterprise Server (SLES) nicht unterstützt.

Installieren von SQL Server-Verfügbarkeitspaketen

Bei einer einfachen Windows-basierten Installation von SQL Server werden neben der Engine noch einige zusätzliche Komponenten installiert. Unter Linux wird hingegen nur die SQL Server-Engine installiert. Weitere Komponenten sind optional. Für hochverfügbare SQL Server-Instanzen unter Linux sollten zwei Pakete mit SQL Server installiert werden:

  • SQL Server-Agent (mssql-server-agent)
  • Hochverfügbarkeitspaket (mssql-server-ha)

Während der SQL Server-Agent technisch optional ist, ist er der Standardplaner für SQL Server-Aufträge und wird vom Protokollversand benötigt, daher wird die Installation empfohlen.

Ab SQL Server 2017 (14.x) mit CU 4 und höheren Versionen ist der SQL Server-Agent im Datenbank-Engine-Paket enthalten, Sie müssen es aber dennoch aktivieren. Bei Windows-basierten Installationen ist der SQL Server-Agent nicht optional.

Hinweis

DER SQL Server-Agent ist der integrierte Auftragsplaner für SQL Server. Es wird verwendet, um Aufgaben wie Sicherungen und Routinewartung zu planen. Unter Windows wird der SQL Server-Agent als separater Dienst ausgeführt. Unter Linux wird sie im Kontext von SQL Server selbst ausgeführt.

Wenn Sie AGs oder FCIs in einer Windows-basierten Konfiguration einrichten, sind sie für den Clusterbetrieb ausgelegt. Das bedeutet, dass SQL Server über bestimmte Ressourcen-DLLs verfügt, die einem WSFC bekannt sind (sqagtres.dll und sqsrvres.dll für Failoverclusterinstanzen, hadrres.dll für Verfügbarkeitsgruppen) und von diesem verwendet werden, um die Clusterfunktionen von SQL Server fehlerfrei auszuführen.

Da das Clustering sowohl außerhalb von SQL Server als auch von Linux selbst stattfindet, musste Microsoft das Äquivalent einer Ressourcen-DLL für Linux-basierte Bereitstellungen von Verfügbarkeitsgruppen und Failoverclusterinstanzen programmieren. Diese Ressource ist das mssql-server-ha Paket, das auch als SQL Server-Ressourcen-Agent für Pacemaker bezeichnet wird. Informationen zum Installieren des Pakets mssql-server-ha finden Sie unter Bereitstellen eines Pacemaker-Clusters für SQL Server für Linux.

Unter Linux sind Full-Text Search (mssql-server-fts) und Integration Services (mssql-server-is) optionale SQL Server-Pakete und sind für eine FCI oder AG nicht erforderlich.

SQL Server: Partner für Hochverfügbarkeit und Notfallwiederherstellung

Es gibt eine große Auswahl an branchenführenden Tools, die die Komponenten „Hochverfügbarkeit“ und „Notfallwiederherstellung“ für Ihre SQL Server-Dienste bereitstellen. In diesem Abschnitt werden Partnerunternehmen von Microsoft aufgelistet, die Hochverfügbarkeits- und Notfallwiederherstellungslösungen für SQL Server anbieten.

Partner Beschreibung
DH2i DxEnterprise ist eine Verfügbarkeitsverwaltungslösung für Windows-, Linux- und Containerumgebungen. Sie unterstützt hohe Verfügbarkeit, reduziert geplante und ungeplante Ausfallzeiten und vereinfacht die Verwaltung physischer und logischer Ressourcen.

- Bereitstellung von Verfügbarkeitsgruppen mit DH2i DxEnterprise auf Kubernetes
- Tutorial: Einrichten einer Always-On-Verfügbarkeitsgruppe mit drei Knoten mit DH2i DxEnterprise
HPE Serviceguard HPE SGLX A.12.20.00 und höher bietet kontextabhängige Überwachungs- und Wiederherstellungsoptionen für Failoverclusterinstanzen sowie Always On-Verfügbarkeitsgruppen. Maximieren Sie die Betriebszeit mit HPE SGLX, ohne die Datenintegrität und Leistung zu beeinträchtigen.

- Tutorial: Einrichten einer Always-On-Verfügbarkeitsgruppe mit drei Knoten mit HPE Serviceguard für Linux.
Pacemaker Pacemaker ist ein Open Source-Ressourcen-Manager für Hochverfügbarkeitscluster. Mit Corosync, einem Open Source-System für die Gruppenkommunikation, kann Pacemaker Komponentenfehler erkennen und die erforderlichen Failoverprozeduren orchestrieren, um Unterbrechungen bei Anwendungen zu minimieren.

- Pacemaker für Verfügbarkeitsgruppen und Failover-Cluster-Instanzen unter Linux
- Bereitstellung eines Pacemaker-Clusters für SQL Server unter Linux