Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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:
- Verfügbarkeitsgruppen für SQL Server unter Linux
- Failover Cluster-Instanzen – SQL Server unter Linux
- Erste Schritte mit dem Protokollversand unter Linux
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:
Führen Sie den Befehl als richtigen Benutzer aus. Verwenden Sie den
suBefehl, um zu einem anderen Benutzer zu wechseln. Wenn Siesuohne Benutzernamen ausführen, gelangen Sie in eine Shell alsroot, wenn Sie das Kennwort kennen.Verwenden Sie
sudovor dem Befehl. Diese Methode ist häufiger und sicherer. Viele Beispiele in diesem Artikel verwendensudo.
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 |