Blog

Installation von MS SQL 2022 auf RedHat 8.7

Attila
IT–Consultant

Einleitung

Seit November 2022 ist das neue MS SQL Server Release draußen. In unserem vorherigen Artikel haben wir bereits über das erste Update der neusten SQL Server Version berichtet. In diesem Artikel führt Sie unser Experte Attila durch die Installation von MS SQL 2022 auf RedHat 8.7

1. MSSQL 2022 Installation

In diesem Artikel installieren wir MSSQL 2022 auf RedHat 8.7 mit den SQL Server command line tools.

Folgende Mindestanforderungen für MS SQL auf Linux sind von Nöten:

  • 2 GB Arbeitsspeicher
  • XFS oder EXT4 Filesystem
  • 6 GB Diskspeicher mindestens
  • CPU mit 2 GHz und 2 Cores (nur x64)

Die Installation des MSSQL Paketes benötigt ein gültiges Abonnement auf Redhat.com. Mit dem Subscription Manager können wir unser System im RedHat Network registrieren.

subscription-manager register

Da das RHEL 8 Repository von Microsoft noch gewisse Probleme hat, müssen wir den direkten Link des Paketes benutzen:

yum install https://packages.microsoft.com/rhel/8/mssql-server-2022/mssql-server-16.0.1000.6-26.x86_64.rpm

Bei der Installation werden wir nun aufgefordert, die Konfiguration für MSSQL zu starten

+--------------------------------------------------------------+
Please run 'sudo /opt/mssql/bin/mssql-conf setup'
to complete the setup of Microsoft SQL Server
+--------------------------------------------------------------+

Folgenden Befehl führen wir dann nach der Paketinstallation aus und wählen im Anschluss die gewünschte MSSQL Edtion aus:

/opt/mssql/bin/mssql-conf setup

Choose an edition of SQL Server:

  1. Evaluation (free, no production use rights, 180-day limit)
  2. Developer (free, no production use rights)
  3. Express (free)
  4. Web (PAID)
  5. Standard (PAID)
  6. Enterprise (PAID) - CPU core utilization restricted to 20 physical/40 hyperthreaded
  7. Enterprise Core (PAID) - CPU core utilization up to Operating System Maximum
  8. I bought a license through a retail sales channel and have a product key to enter.
  9. Standard (Billed through Azure) - Use pay-as-you-go billing through Azure.
  10. Enterprise Core (Billed through Azure) - Use pay-as-you-go billing through Azure.

Wir entscheiden uns für die Developer Edition (Nr. 2) mit folgendem Befehl:

Enter your edition(1-10): 2

Wir bestätigen, dass wir die Lizenzbedingungen akzeptieren

Do you accept the license terms? [Yes/No]:Yes

Hat der Installer seine Arbeit beendet, prüfen wir anschließend mit folgendem Befehl, ob der Service läuft:

systemctl status mssql-server

Der Befehl sollte folgendes Ergebnis zeigen:

mssql-server.service - Microsoft SQL Server Database Engine
Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2023-01-05 14:15:37 CET; 16s ago
Docs: Overview of SQL Server on Linux - SQL Server
Main PID: 42170 (sqlservr)
Tasks: 171
Memory: 665.9M
CGroup: /system.slice/mssql-server.service
├─42170 /opt/mssql/bin/sqlservr
└─42197 /opt/mssql/bin/sqlservr

Jan 05 14:15:40 rhtest sqlservr[42197]: [104B blob data]
Jan 05 14:15:40 rhtest sqlservr[42197]: [97B blob data]
Jan 05 14:15:40 rhtest sqlservr[42197]: [97B blob data]
Jan 05 14:15:40 rhtest sqlservr[42197]: [95B blob data]
Jan 05 14:15:40 rhtest sqlservr[42197]: [101B blob data]
Jan 05 14:15:40 rhtest sqlservr[42197]: [122B blob data]
Jan 05 14:15:40 rhtest sqlservr[42197]: [95B blob data]
Jan 05 14:15:40 rhtest sqlservr[42197]: [101B blob data]
Jan 05 14:15:40 rhtest sqlservr[42197]: [124B blob data]
Jan 05 14:15:40 rhtest sqlservr[42197]: [145B blob data]

Um einen Zugriff auf die eingerichtete Instanz zu ermöglichen, schalten wir den gewünschten Port für MSSQL Server frei (hier im Beispiel wird der Standard-Port 1433 verwendet):

firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload

Um eine Datenbank lokal zu erstellen oder SQL Befehle Lokal ausführen zu können, brauchen wir das Tool Paket von MSSQL. Dazu müssen wir die Redhat Repository Konfigurationsdatei herunterladen.

curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo

Anschließend installieren wir das MSSQL Tools Paket inklusive all seiner Abhängigkeiten

yum install -y mssql-tools unixODBC-devel

Anschließend wechseln wir auf den User mssql, welcher automatisch vom Installer erstellt wurde.

Der User mssql wurde von dem MSSQL Installer mit dem Home Verzeichnis “/var/opt/mssql/” erstellt

su - mssql

Um uns das Leben etwas zu erleichtern, fügen wir den Pfad des Toolkits in unserem .bash_profile hinzu, um die Toolkit Binaries ohne Pfadangabe aufrufen zu können.

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

2. Demo Datenbank erstellen

Die von Microsoft bereitgestellte Demo Datenbank AdventureWorks2019 können wir entweder lokal auf dem Linux Server oder mit dem SQL Server Management Studio von einem Windows Client aus installieren.

2.1 Lokale Installation auf dem Linux Server

Falls nicht schon geschehen, wechseln wir auf den User mssql

su - mssql

Laden wir die Demo Datenbank Backup Datei in das data Verzeichnis unter dem MSSQL Home.

wget https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorks2019.bak -P /var/opt/mssql/data

Mit folgendem Befehl starten wir die sqlcmd Konsole.

Achtung: In diesem Dokument wird zur Vereinfachung der sa-User verwendet. In einer produktiven Instanz sollte der sa-User gesperrt sein und administrative Tätigkeiten von entsprechend berechtigten Usern mit persönlichen (AD)-Logins erfolgen.

sqlcmd -S localhost -U sa

Mit sqlcmd können wir nun eine neue DB aus der heruntergeladenen Backup Datei erstellen. Die Zeilen 3 und 4 des folgenden Scripts starten mit AdventureWorks2017 - das ist aber kein Tippfehler - sondern Microsoft benutzt hier noch die Logical Names der alten Demo DB.

RESTORE DATABASE AdventureWorks2019
FROM DISK = '/var/opt/mssql/data/AdventureWorks2019.bak'
WITH MOVE 'AdventureWorks2017' to '/var/opt/mssql/data/AdventureWorks2019.mdf',
MOVE 'AdventureWorks2017_Log' to '/var/opt/mssql/data/AdventureWorks2019_log.ldf'
GO

Die Installation und die Einrichtung der Demo-Datenbank sind damit abgeschlossen. Wir können diese nach dem Auswählen dann verwenden (use-Statement).

1> use AdventureWorks2019
2> SELECT DB_NAME() AS [Current Database];
3> go
Changed database context to 'AdventureWorks2019'.
Current Database
--------------------------------------------------------------------------------------------------------------------------------
AdventureWorks2019

(1 row affected)

2.2 Installation mit SSMS von einem Windows Client

SQL Server Management Studio - kurz SSMS - ist eine integrierte Umgebung für Zugriff, Konfiguration, Verwaltung und Entwicklung aller Komponenten von SQL Server.

Vor der Installation müssen wir die Demo Datenbank von Microsoft auf den Server herunterladen. Dazu wechseln wir auf den User mssql.

su - mssql

An dieser Stelle gehen wir davon aus, dass die Beispieldatenbank bereits, wie oben beschrieben, in das Verzeichnis /var/opt/mssql/data des Linux Servers heruntergeladen wurde.

Starten wir auf unserem Windows Client den SSMS und klicken auf den Connect Object Explorer unter File Menu

Verbinden wir uns mit dem System Administrator user sa auf unsere Datenbank:

  • Server type: Database Engine
  • Server name: IP oder Hostname des Servers
  • Authentication: SQL Server Authentication
  • Login: Benutzername
  • Password: Passwort des Benutzers

Nach erfolgreicher Verbindung kann man im Object Explorer den Inhalt und den Objektbaum unseres Servers sehen.

Mit Rechtsklick auf Databases können wir Restore Database … auswählen um die Demo Datenbank einzurichten.

Im nächsten Fenster wählen wir Device anstatt Database aus und klicken auf die drei Punkte. Anschließend im Select backup devices Fenster auf Add drücken.

Das Dataverzeichnis wird als default benutzt, sodass wir die Backup Datei direkt auswählen und auf OK klicken können.

Anschließend bestätigen wir unsere Auswahl wieder mit OK.

Der Datenbankname wird automatisch aus der Datei entnommen und die neue Datenbank AdventureWorks2019 wird nach Bestätigung des OK-Buttons installiert.

Unter Destination kann man auch eine vorhandene Datenbank als Ziel angeben um diese zu überschreiben.

Damit haben wir eine komplette Beispieldatenbank installiert und mit SSMS können wir unter New Query auch schon unsere erste Abfrage starten.

3. Fazit

In dieser Anleitung haben wir Ihnen die Verfügbarkeit und den Umgang mit einer SQL Server Instanz unter Linux vorgestellt. Gerade hinsichtlich eventueller Migrationen von Windows nach Linux ist dies ein hilfreicher Tipp.
Bei weiterführenden Fragen unterstützen Sie unsere Expert:innen gerne. Kontaktieren Sie uns dafür ganz unverbindlich über unser Kontaktformular. Wir freuen uns von Ihnen zu hören!

Interesse geweckt?
Vielen Dank! Wir haben Ihre Anfrage erhalten!
Oops! Beim Senden ist etwas schiefgegangen, versuche es erneut.