Microsoft SQL Server als Containerlösung nutzen – Einstieg, Installation und Verwaltung

SQL Server in der Linux-Welt

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

Microsoft SQL Server lässt sich auch in einer Containerumgebung einsetzen.
Microsoft SQL Server lässt sich auch in einer Containerumgebung einsetzen. (Bild: © Kalyakan - stock.adobe.com)

Microsoft stellt seinen Datenbank-Server auch für die Installation in einer Containerumgebung bereit. Wir zeigen die Möglichkeiten, die dabei bestehen, und wie der Server verwaltet wird.

Unternehmen, die auf Microsoft SQL Server setzen, haben mittlerweile verschiedene Installationsvarianten. Neben der Installation auf einem Windows Server kann SQL Server auch in Linux installiert werden, allerdings mit Einschränkungen. Auch die Installation ein einem Container ist möglich. Die Basis für die Containerinstallation von SQL Server ist die Linux-Installation. Es muss also mit Einschränkungen gerechnet werden. Die Basis von SQL Server ist Docker. Die Verwaltung kann wiederum mit Kubernetes erfolgen.

Das erlaubt den Betrieb von Microservices-Umgebungen mit Microsoft SQL Server. Natürlich lassen sich zwischen den Containern auch Verbindungen herstellen. Die Verwaltung von Microsoft SQL Server in Containern erfolgt mit den gleichen Tools wie bei herkömmlichen Installationen. Für den Betrieb von SQL Server in einem Container ist kein Produktschlüssel notwendig.

Einschränkungen von SQL Servern als Container

Wer SQL Server 2017/2019 auf Linux bereitstellt, muss mit Einschränkungen rechnen. Diese gelten auch für den Betrieb von SQL Server 2017/2019 als Container. Als Basis für den Betrieb sollten Red Hat, SUSE und Ubuntu genutzt werden. Wer SQL Server als Container installiert, kann das Basis-Linux-System bei der Angabe von docker pull steuern.

Die Datenbankreplikation von SQL Server kann zwischen verschiedenen Servern und Containern erfolgen, auch zwischen Linux- und Windows-Servern sowie zwischen Containern. Einige Funktionen, die in SQL Server 2017 für Windows zur Verfügung stehen, lassen sich in der Linux-Installation nicht nutzen. Dazu gehören in SQL Server 2017 DB Mail, Alerts, Filetables, Strech DB, Polybase, Erweiterungen von Drittanbietern, XPs, Datenbankspiegelung und VSS-Snapshots.

Außerdem sind Analysis Services, Reporting Services, Integration Services, R Services, Master Data Services und Data Quality Servers derzeit nicht auf SQL-Servern verfügbar, die auf Linux installiert werden und damit auch nicht in Containern. Es ist zu erwarten, dass mit SQL Server 2019 hier weitere Optionen auch in Linux verfügbar sein werden.

Armseliger Start, große Zukunft

Die Geschichte des Flash-Speichers – Teil 1

Armseliger Start, große Zukunft

04.09.19 - Zum Auftakt unserer neuen Rubrik „Im Fokus: Flash-Storage“ wirft unser Autor Dr. Dietmar Müller mehr als nur einen flüchtigen Blick zurück auf die Anfänge der Speichertechnologie, die den ehemals allenthalben rotierenden HDDs seit Jahren ernstzunehmende Konkurrenz macht. Teil 2 unserer Flash-Historie beschäftigt sich dann mit dem gegenwärtigen Stand. lesen

SQL Server als Container bereitstellen

Um SQL Server 2017 als Container auf Basis von Linux mit Docker bereitzustellen, kann das neueste Image mit dem folgenden Befehl heruntergeladen und in Docker integriert werden:

docker pull mcr.microsoft.com/mssql/server:2017-latest-ubuntu

Auch SQL Server 2019 kann heruntergeladen und integriert werden:

docker pull mcr.microsoft.com/mssql/server:2019-CTP3.2-ubuntu

Download eines Images für SQL Server 2019 für den Betrieb als Container.
Download eines Images für SQL Server 2019 für den Betrieb als Container. (Bild: Joos/Microsoft)

Nach dem Download steht das entsprechende Image zur Verfügung und kann auf dem Server eingebunden werden. Die Vorgehensweise für den Betrieb beschreiben Microsoft und Docker auf der Image-Seite für Microsoft SQL Server.

Microsoft beschreibt die Installation und Einrichtung auch genauer auf der Seite „Quickstart: Run SQL Server container images with Docker“. Nach dem Download des Images kann die Bereitstellung zum Beispiel mit dem folgenden Befehl erfolgen:

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=test" -p 1433:1433 --name sql1 -d mcr.microsoft.com/mssql/server:2019-CTP3.2-ubuntu

Weitere Optionen sind auf der Seite „Quickstart: Run SQL Server container images with Docker“. Ob der Container gestartet ist, kann mit docker ps -a getestet werden.

Betreiben von SQL Server als Container.
Betreiben von SQL Server als Container. (Bild: Joos/Microsoft)

Wenn der Container gestartet ist, kann mit dem folgenden Befehl eine Bash in dem Container gestartet werden:

docker exec -it <Name> "bash"

Danach kann mit der Bash im Container gearbeitet werden. Um eine Verbindung mit SQLCMD aufzubauen, kann anschließend der folgende Befehl eingegeben werden:

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<Kennwort>"

Öffnen einer Bash in einer Container-Bereitstellung von SQL Server 2019.
Öffnen einer Bash in einer Container-Bereitstellung von SQL Server 2019. (Bild: Joos/Microsoft)

SQL Server 2017 mit Docker Desktop und Kubernetes für Entwickler

Der Betrieb von SQL Server 2017 als Docker-Image kann auch in Windows 10 erfolgen, wenn Docker Desktop mit Kubernetes im Einsatz ist. Sinnvoll ist das zum Beispiel für Entwickler, die eigene SQL-Container auf ihrem PC betreiben wollen. Auch hier kann über docker pull das entsprechende Image heruntergeladen werden. Microsoft stellt natürlich mehrere Images zur Verfügung. Eine Liste ist auf der Seite „Microsoft SQL Server“ im Docker Hub zu finden.

Lizenzierung von SQL Server 2017/2019 als Container

Um SQL Server 2017/2019 als Container bereitzustellen, ist kein Produktschlüssel bei der Installation notwendig. Das Image reicht aus. Indem der Wert „Y“ an die Umgebungsvariable ACCEPT_EULA übergeben wird, machen Administratoren klar, dass eine gültige und bestehende Lizenz für die Edition und Version von SQL Server zur Verfügung steht, die als Container verwendet wird. Gleichzeitig wird bestätigt, dass die Verwendung von SQL Server in einem Docker-Container-Image den Bedingungen der SQL-Server-Lizenz unterliegt.

Um die Edition anzugeben, die im Container genutzt wird, lässt sich die Umgebungsvariable MSSQL_PID verwenden. Diese unterstützt die Werte für folgende Editionen:

  • Developer,
  • Express,
  • Standard,
  • Enterprise,
  • EnterpriseCore.

Mit der SQL Server Developer Edition können Entwickler jede Art von Anwendung auf SQL Server aufbauen. Die Edition enthält alle Funktionen der Enterprise Edition, ist aber für den Einsatz als Entwicklungs- und Testsystem lizenziert, nicht als Produktionsserver. SQL Server Developer Edition darf nicht in einer Produktionsumgebung verwendet werden.

Ähnlich wie das Per-Core-Lizenzmodell auf physischen Servern werden alle virtuellen Kerne (v-cores), die Container unterstützen, für die Lizenzierung berücksichtigt. Laufende Instanzen von SQL Server 2017 müssen entsprechend lizenziert werden. Um einzelne Container mit dem Per-Core-Modell zu lizenzieren, muss für jeden vcore (oder jeden virtuellen Prozessor, jede virtuelle CPU, jeden virtuellen Thread), der dem Container zugeordnet ist, eine Core-Lizenz vorhanden sein.

„Früher zweitrangig, jetzt strategisch relevant“

Strategische Aspekte von Flash-Storage

„Früher zweitrangig, jetzt strategisch relevant“

10.09.19 - Das Datenwachstum ist nicht aufzuhalten, zugleich ist die Geschwindigkeit beim Storage wichtiger denn je. SSDs gelten im Verbund mit NVMe als zukunftsweisende Technologie, doch genügt es nicht, Festplattensysteme zu ersetzen. Güner Aksoy von Pure Storage beschreibt strategische Überlegungen, die hinter der Suche nach einer geeigneten Lösung stehen. lesen

Die Lizenzierung einzelner Container ist die einzige für SQL Server 2017 Standard verfügbare Lizenzierungsoption. Um einzelne Container mit dem Modell Server+CAL zu lizenzieren, muss eine Serverlizenz für jeder Container verfügbar sein, in dem die SQL Server ausgeführt wird, unabhängig von der Anzahl der virtuellen Prozessoren, die der Container nutzt.

Jeder Benutzer oder jedes Gerät, der oder das auf SQL Server 2017 zugreifen, unabhängig von einer virtuellen oder physischen Bereitstellung, erfordert einen SQL Server 2017-CAL. Mit SQL Server 2017 Enterprise Edition können Unternehmen, die alle physischen Kerne auf dem Server lizenziert haben, eine Anzahl von Containern ausführen, die der Anzahl der dem Server zugeordneten Kernlizenzen entspricht. Ein Vierprozessorserver mit vier Kernen pro Prozessor, der vollständig mit sechzehn Kernlizenzen lizenziert ist, kann SQL Server ausführen. Jede zusätzliche Kernlizenz ermöglicht die Bereitstellung von SQL Server in einem zusätzlichen Container.

Kommentare werden geladen....

Was meinen Sie zu diesem Thema?

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 46103101 / Allgemein)