Praxistipps für den Betrieb von Microsoft-Datenbankservern mit Linux SQL Server und Linux in der Praxis

Autor / Redakteur: Thomas Joos / Dr. Jürgen Ehneß

Microsoft SQL Server 2019 lässt sich auch auf Linux-Systemen installieren. Wir zeigen in diesem Beitrag einige Tipps zur Konfiguration und zum Betrieb. In Zukunft ist keine Installation mehr in Containern möglich: Microsoft konzentriert sich voll auf Windows- und Linux-Installationen von SQL Server 2019 und dessen Nachfolgern.

SQL Server 2019 läuft auch unter Linux. So fuktioniert’s in der Praxis.
SQL Server 2019 läuft auch unter Linux. So fuktioniert’s in der Praxis.
(Bild: gemeinfrei / Pixabay )

Wir haben uns bereits im Beitrag „SQL Server 2019 mit Linux betreiben“ mit der Installation von Microsofts SQL Server auf Linux beschäftigt.

SQL Server 2019 und das Windows-Subsystem für Linux 2.0 nutzen

Im folgenden Beitrag gehen wir näher auf diese Möglichkeiten ein. In Zukunft spielt die Installation von SQL Servern auf Linux eine noch wichtigere Rolle als bisher. Microsoft stellt die Installationsmöglichkeiten von SQL Servern in Containern ein. Der Fokus gilt in Zukunft vor allem der Installation auf Windows-Servern und auf Computern mit Linux.

Bildergalerie
Bildergalerie mit 5 Bildern

Es ist mit dem Windows-Subsystem für Linux 2.0 möglich, SQL Server 2019 als Linux-Installation auf einem Windows-Server zu installieren. Sinnvoll ist das zum Beispiel für Entwicklungs- und Testumgebungen. Die Vorgehensweise dazu entspricht der Installation von SQL Server 2019 auf einem Linux-Server. Nach der Installation der Linux-Distribution in WSL können Admins auf diesem Weg in der Linux-Shell auf dem Windows-Server auch SQL Server 2019 installieren.

In diesem Zusammenhang ist der Beitrag „Ubuntu 21.04 mit Active Directory und SQL-Server betreiben“ interessant, da Linux-Server sich auch in Active Directory integrieren lassen, was für den Betrieb von SQL-Servern im Rahmen der Berechtigungsstruktur natürlich eine wichtige Rolle spielt.

Systemdienste von SQL Server im Griff behalten

Den aktuellen Status des SQL-Servers auf dem Linux-Server können Administratoren mit dem Befehl „systemctl status mssql-server“ abfragen. Hier ist zu sehen, ob die Dienste auf dem Server laufen. Natürlich lassen sich die Dienste auch beenden:

sudo systemctl stop mssql-server

Weiterhin ist ein Neustart im Terminal möglich:

sudo systemctl start mssql-server

Sollen die Systemdienste nach dem Beenden auch deaktiviert werden, helfen folgende Befehle:

sudo systemctl stop mssql-serversudo systemctl disable mssql-server

Auf dem gleichen Weg lassen sich die Systemdienste auch wieder aktivieren und gleich starten:

sudo systemctl enable mssql-serversudo systemctl start mssql-server

Systemauslastung im Linux-Terminal anzeigen

Beim Betrieb von Microsoft-SQL-Servern spielt natürlich auch die Auslastung des Servers eine wichtige Rolle. Mit dem Befehl „top“ zeigt der Linux-Server die aktuelle Auslastung an. Hier ist außerdem zu sehen, ob die CPUs auf dem Server aktuell überlastet sind.

Mit „htop“ wird die Übersicht etwas übersichtlicher dargestellt. Damit htop zur Verfügung steht, muss das Tool am Beispiel von Ubuntu zunächst mit „sudo apt install htop“ installiert werden. Danach lässt sich „htop“ im Terminal starten.

Um auch die Disk I/O zu testen, kann das Tool „sysstat“ helfen. Die Installation des Tools kann mit „sudo apt-get install sysstat“ erfolgen. Um die aktuelle Auslastung der Festplatten anzuzeigen, kann der folgende Befehl verwendet werden:

iostat –d 4

Dieser Befehl zeigt aber nur ein Beispiel. Wenn „iostat“ mit dem Parameter „-x“ ausgeführt wird, zeigt es erweiterte Statistiken. Ein weiteres Tool in diesem Bereich ist „iotop“. Dieses kann mit dem folgenden Befehl installiert werden:

sudo apt install iotop

Um den freien und belegten Festplattenplatz zu überprüfen, stehen verschiedene Bordmittel auf Linux-Servern zur Verfügung. Mit den Befehlen „ls“ und ls -lh“ lassen sich die Größen der Datenbankdateien überprüfen. Ebenfalls hilfreich ist der Befehl „df“ mit dem Parameter „-h“. Auch „du“ kann dabei helfen, die Größe der Datenbankdateien und den freien Speicherplatz zu überprüfen.

Sicherung von Microsoft SQL Server mit Linux über Bordmittel automatisieren

Um die Sicherung mit Bordmitteln zu automatisieren, kann zum Beispiel „sqlcmd“ zum Einsatz kommen. Das Tool wird über die MSSQL-Tools installiert. Wie die Tools auf den Linux-SQL-Server kommen, haben wir im Beitrag „SQL Server 2019 mit Linux betreiben“ gezeigt. Um „sqlcmd“ zu suchen, kann zum Beispiel der Befehl „whereis sqlcmd“ genutzt werden. Eine Sicherung kann beispielsweise mit folgendem Befehl durchgeführt werden:

sqlcmd -S localhost -U SA -Q "BACKUP DATABASE [demodb] TO DISK = N'/var/opt/mssql/data/demodb.bak' WITH NOFORMAT, NOINIT, NAME = 'demodb-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"

Transaktionsprotokolle lassen sich wiederum mit folgendem Befehl sichern:

sqlcmd -S localhost -U SA -Q "BACKUP LOG [demodb] TO DISK = N'/var/opt/mssql/data/demodb_LogBackup.bak' WITH NOFORMAT, NOINIT, NAME = N'demodb_LogBackup', NOSKIP, NOREWIND, NOUNLOAD, STATS = 5"

Um Datenbanken auf diese Art und Weise wiederherzustellen, wird folgender Befehl genutzt:

sqlcmd -S localhost -U SA -Q „RESTORE DATABASE [demodb] FROM DISK = N‘/var/opt/mssql/data/demodb.bak‘ WITH FILE = 1, NOUNLOAD, REPLACE, NORECOVERY, STATS = 5“

Mehr Möglichkeiten dazu sind auf der Seite „Sichern und Wiederherstellen von SQL Server-Datenbanken für Linux“ in der Microsoft-Dokumentation zu finden.

Einstellungen von SQL-Servern unter Linux anpassen

Um auf Linux-Servern den SQL-Server anzupassen, steht das Tool „mssql-conf“ zur Verfügung. Alle Einstellungen lassen sich mit dem folgenden Befehl anzeigen:

sudo /opt/mssql/bin/mssql-conf

Eine Liste aller zur Verfügung stehenden Befehle zeigt das Terminal mit dem folgenden Befehl an:

sudo /opt/mssql/bin/mssql-conf list

Um Optionen anzupassen, gilt folgende Syntax:

mssql-conf set [Option] [Option Wert]mssql-conf unset [Option]

Soll zum Beispiel der SQL-Port angepasst werden, wird folgender Befehl genutzt:

mssql-conf set network.tcpport 1200

Der Befehl lässt sich wieder rückgängig machen:

mssql-conf unset network.tcpport
Bildergalerie
Bildergalerie mit 5 Bildern

(ID:47729775)