• Allgemein
  • MSSQL auf Linux: Ein umfassender Guide zur Installation und Konfiguration

MSSQL auf Linux: Ein umfassender Guide zur Installation und Konfiguration

Voraussetzungen für die Installation

Bevor du MSSQL auf Linux installierst, solltest du sicherstellen, dass dein System die folgenden Anforderungen erfüllt:

Betriebssystem

  • Unterstützte Linux-Distributionen:
    • Red Hat Enterprise Linux (RHEL) 7.x und 8.x
    • CentOS 7.x und 8.x
    • Ubuntu 16.04 LTS und höher
    • Debian 9.x und höher
  • Kernel-Version: 3.10 oder höher

Hardware

  • Prozessor: 2 GHz oder schneller Dual-Core-Prozessor empfohlen
  • Arbeitsspeicher (RAM): Mindestens 4 GB empfohlen
  • Festplattenspeicherplatz: Mindestens 10 GB freier Speicherplatz empfohlen

Sonstige Anforderungen

  • Root-Zugriff oder die Möglichkeit, sudo zu verwenden
  • Internetverbindung zum Herunterladen der Installationsprogramme
  • Optionale Komponenten:
    • libunwind: Für die Fehlersuche und Absturzanalyse
    • python3-pip: Für die Installation von Python-Paketen
    • xclip: Zum Kopieren von Verbindungsinformationen in die Zwischenablage

Download und Installation von MSSQL

Systemvoraussetzungen

Bevor du MSSQL auf Linux installierst, überprüfe, ob dein System die folgenden Mindestanforderungen erfüllt:

  • Red Hat Enterprise Linux (RHEL) 7.6 oder höher
  • CentOS 7.6 oder höher
  • Debian 9 oder höher
  • Ubuntu 16.04 oder höher
  • SUSE Linux Enterprise Server (SLES) 12 SP3 oder höher

MSSQL-Repository hinzufügen

Als Nächstes fügst du das offizielle MSSQL-Repository deinem System hinzu.

Für Debian/Ubuntu:

wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | apt-key add -
add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-$(lsb_release -cs)-prod focal/prod"

Für RHEL/CentOS:

wget -q https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
sudo yum install -y packages-microsoft-prod.rpm

Für SLES:

wget -q https://packages.microsoft.com/config/sles/12/packages-microsoft-prod.rpm
sudo zypper install -y packages-microsoft-prod.rpm

MSSQL-Paket installieren

Aktualisiere die Paketliste deines Systems und installiere das MSSQL-Serverpaket:

sudo apt-get update
sudo apt-get install mssql-server

Hinweis: Wenn du eine bestimmte Version von MSSQL installieren möchtest, verwende den folgenden Befehl:

sudo apt-get install mssql-server=<version>

Optionen während der Installation

Während der Installation wirst du aufgefordert, einige Optionen zu konfigurieren:

  • Edition: Wähle die gewünschte MSSQL-Edition (Developer, Express, Standard oder Enterprise).
  • Benutzername und Passwort: Lege einen Benutzernamen und ein Passwort für den ’sa‘-Benutzer fest.
  • TCP-Port: Wähle den TCP-Port, den MSSQL verwenden soll (standardmäßig Port 1433).

Starten des MSSQL-Dienstes

Sobald die Installation abgeschlossen ist, starte den MSSQL-Dienst:

sudo service mssql-server start

Überprüfung der Installation

Überprüfe, ob MSSQL erfolgreich installiert wurde, indem du dich mit dem Server verbindest:

sudo mssql-cli -U sa -P <dein-passwort>

Wenn du erfolgreich eine Verbindung herstellen kannst, wurde MSSQL korrekt installiert.

Konfiguration der MSSQL-Dienste

Aktivierung der Dienste

Nach der Installation musst du die MSSQL-Dienste aktivieren. Dazu kannst du den folgenden Befehl ausführen:

sudo systemctl enable mssql-server

Dieser Befehl erstellt einen Symlink von /etc/systemd/system/multi-user.target.wants/ zum Unit-File von MSSQL, wodurch sichergestellt wird, dass der Dienst beim Booten des Systems automatisch gestartet wird.

Starte anschließend den MSSQL-Dienst mit dem folgenden Befehl:

sudo systemctl start mssql-server

Du kannst den Status des Dienstes mit dem Befehl systemctl status mssql-server überprüfen.

Konfiguration der Firewall

Wenn auf deinem System eine Firewall ausgeführt wird, musst du den Port 1433 für den Zugriff auf den MSSQL-Server öffnen. Verwende dazu den folgenden Befehl:

sudo ufw allow 1433/tcp

Dienstkonfiguration

Du kannst die Konfiguration des MSSQL-Dienstes über die Datei /var/opt/mssql/mssql.conf bearbeiten. Diese Datei enthält verschiedene Konfigurationsparameter, darunter:

  • accept-connections: Aktiviert oder deaktiviert eingehende Verbindungen zum Server.
  • max-connections: Legt die maximale Anzahl gleichzeitiger Verbindungen fest.
  • listen-address: Gibt die IP-Adresse oder den Hostnamen an, auf dem der Server lauscht.
  • port: Gibt den Port an, auf dem der Server lauscht.

SQL Server Configuration Manager

Der SQL Server Configuration Manager ist ein grafisches Tool, mit dem du die MSSQL-Dienste auf deinem System konfigurieren kannst. Du kannst ihn installieren, indem du das Paket msodbcsql installierst. Starte das Tool anschließend mit dem Befehl sqlserver-config-manager.

Im SQL Server Configuration Manager kannst du verschiedene Aspekte des MSSQL-Servers konfigurieren, darunter:

  • Dienste: Starten, stoppen und verwalten von MSSQL-Diensten.
  • Protokolle: Konfigurieren der Netzwerkprotokolle, die der Server verwendet.
  • Sicherheit: Konfigurieren von Logins, Berechtigungen und Audits.
  • Datenbank-Engine: Konfigurieren von Datenbankeinstellungen und -optionen.

Verbindung mit dem MSSQL-Server

Lokale und Remote-Verbindungen

Nachdem du MSSQL erfolgreich unter Linux installiert hast, kannst du dich auf verschiedene Arten mit dem Server verbinden. Für lokale Verbindungen kannst du das Tool mssql-cli verwenden:

mssql-cli -u <username> -p <password>

Um eine Remote-Verbindung über TCP/IP herzustellen, verwende die folgende Syntax:

mssql-cli -u <username> -p <password> -h <hostname>

wobei <hostname> die IP-Adresse oder der Hostname des Servers ist.

Tools zur Verbindungsherstellung

Neben mssql-cli gibt es verschiedene andere Tools, mit denen du eine Verbindung zum MSSQL-Server herstellen kannst:

  • SQL Server Management Studio (SSMS): Eine grafische Benutzeroberfläche (GUI) von Microsoft, die verschiedene Funktionen für die Verwaltung und Abfrage bietet.
  • Azure Data Studio: Ein Open-Source-Tool von Microsoft, das SQL Server- und Azure SQL-Datenbanken unterstützt.
  • Third-Party-Tools: Es gibt auch eine Reihe von Drittanbieter-Tools, wie z. B. dbForge SQL Complete und Redgate SQL Prompt, die zusätzliche Funktionen und Optionen bieten.

Authentifizierungsmethoden

MSSQL unterstützt verschiedene Authentifizierungsmethoden:

  • SQL Server-Authentifizierung: Verwendet einen Benutzernamen und ein Kennwort, die in der MSSQL-Datenbank gespeichert sind.
  • Windows-Authentifizierung: Verwendet die Anmeldeinformationen des Betriebssystems für die Authentifizierung.
  • Kerberos-Authentifizierung: Verwendet ein Kerberos-Ticket für die Authentifizierung.

Die Wahl der Authentifizierungsmethode hängt von deinen Sicherheitsanforderungen und der Umgebung ab.

Verbindungspooling

Verbindungspooling ist eine Technik zur Verbesserung der Leistung durch Wiederverwendung zuvor erstellter Datenbankverbindungen. Dies reduziert die Anzahl der erforderlichen Roundtrips zum Server und verkürzt die Verbindungszeit. Du kannst das Verbindungspooling in MSSQL über die Konfigurationsoption connection pooling aktivieren.

Sicherheitskonfiguration

Um die Sicherheit des MSSQL-Servers auf Linux zu gewährleisten, sind eine Reihe von Konfigurationsmaßnahmen unerlässlich.

Firewall-Konfiguration

  • Verwende eine Firewall, um den Zugriff auf den MSSQL-Port (standardmäßig 1433) zu beschränken.
  • Erlaube nur Zugriff von vertrauenswürdigen IP-Adressen oder Subnetzen.

Authentifizierung und Autorisierung

  • Aktiviere die SQL Server-Authentifizierung und erstelle sichere Anmeldeinformationen für alle Benutzer.
  • Verwende komplexe Kennwörter und erzwinge deren regelmäßige Änderung.
  • Richte Rollen und Berechtigungen ein, um den Zugriff auf Datenbankobjekte zu kontrollieren.
  • Aktiviere die Zwei-Faktor-Authentifizierung (2FA) für zusätzliche Sicherheit.

Datenverschlüsselung

  • Aktiviere die Transparent Data Encryption (TDE), um Daten im Ruhezustand zu verschlüsseln.
  • Verwende Zertifikate oder Schlüsselverwaltungssysteme (KMS), um die kryptografischen Schlüssel sicher zu verwalten.

Auditing und Überwachung

  • Aktiviere die SQL Server-Auditierung, um Datenbankaktivitäten zu protokollieren.
  • Überwache die Protokolle regelmäßig und untersuche verdächtige Aktivitäten.
  • Konfiguriere Warnmeldungen oder Benachrichtigungen für Sicherheitsvorfälle.

Netzwerksicherheit

  • Implementiere einen virtuellen privaten Netzwerks (VPN), um eine sichere Remoteverbindung zum MSSQL-Server herzustellen.
  • Verwende einen Proxy-Server, um den Datenverkehr zum MSSQL-Server zu filtern und zu überwachen.
  • Verwende Sicherheitsmaßnahmen wie TLS/SSL, um die Datenübertragung zwischen Clients und Servern zu schützen.

Malware-Schutz

  • Installiere und pflege eine aktuelle Antimalware-Software auf dem MSSQL-Server.
  • Führe regelmäßig Scans durch, um schädliche Software zu erkennen und zu entfernen.

Regelmäßige Wartung

  • Wende Sicherheitsupdates und Patches für MSSQL und das Betriebssystem an.
  • Erstelle regelmäßig Backups von Datenbanken und Konfigurationsdateien.
  • Führe Penetrationstests durch, um potenzielle Schwachstellen zu identifizieren und zu beheben.

Leistungssteigerung

Wenn dein MSSQL-Server auf Linux eine hohe Last erfährt, kannst du verschiedene Maßnahmen zur Leistungssteigerung ergreifen.

CPU- und Arbeitsspeicheroptimierung

  • Überwache die CPU- und RAM-Auslastung des Servers und passe sie bei Bedarf an.
  • Nutze den Task-Manager (z. B. top oder htop), um Speicherfresser zu identifizieren und zu beenden.
  • Überlege dir, einen dedizierten Server für SQL-Abfragen zu verwenden, um Ressourcenkonflikte zu vermeiden.

Indexierung

  • Erstelle Indizes für häufig abgefragte Tabellen und Spalten. Dies ermöglicht eine schnellere Suche und reduziert die Ausführungszeit von Abfragen.
  • Überprüfe regelmäßig die Indexfragmentation und defragmentiere Indizes bei Bedarf.

Abfrageoptimierung

  • Verwende den Abfrageanalysator von SQL Server, um Abfragen zu optimieren und Engpässe zu finden.
  • Nutze Abfragehinweise, um Optimierungsrichtlinien für bestimmte Abfragen anzugeben.
  • Cache Zwischenergebnisse, um wiederholte Abfragen zu beschleunigen.

Serverkonfiguration

  • Passe die MSSQL-Serverkonfigurationseinstellungen an die Last und Arbeitsauslastung an.
  • Aktiviere die Thread-Pool-Synchronisierung, um die Leistung bei gleichzeitigen Abfragen zu verbessern.
  • Optimiere den Pufferpool und die Arbeitsspeicherzuweisung für den SQL Server.

Hardware-Upgrades

  • Erwäge Hardware-Upgrades wie zusätzliche CPUs, Arbeitsspeicher oder SSDs, um die Gesamtleistung zu verbessern.
  • Verwende RAID-Arrays, um die Datenzuverlässigkeit und -leistung zu erhöhen.

Wartung und Überwachung

  • Führe regelmäßig Wartungsaufgaben wie das Aktualisieren von Patches und das Bereinigen von Daten durch.
  • Überwache den Server kontinuierlich auf Leistungsprobleme und ergreife proaktive Maßnahmen zur Behebung von Engpässen.

Backup und Wiederherstellung

Die Sicherung deiner MSSQL-Datenbank auf Linux ist für die Sicherstellung der Datenintegrität und die Wiederherstellung im Katastrophenfall unerlässlich.

Backup-Optionen

MSSQL bietet mehrere Optionen für die Erstellung von Backups:

  • Vollständige Backups: Kopieren der gesamten Datenbank, einschließlich Daten, Schema und Prozeduren.
  • Differentielle Backups: Kopieren nur der seit dem letzten vollständigen Backup geänderten Daten.
  • Transaktionslogsicherung: Kopieren aller seit dem letzten Backup durchgeführten Transaktionen.

Backup-Strategie

Die Wahl der Backup-Strategie hängt von den Anforderungen an die Wiederherstellungszeit (RTO) und die Wiederherstellungspunktziel (RPO) ab. Eine gängige Strategie ist die Ausführung eines vollständigen Backups wöchentlich, differenzieller Backups täglich und Transaktionslogsicherungen stündlich.

Backup-Tools

Du kannst native MSSQL-Tools wie BACKUP und RESTORE oder Drittanbietertools wie RedGate SQL Backup für Backups verwenden.

Wiederherstellungsverfahren

Im Wiederherstellungsfall kannst du die folgenden Schritte ausführen:

  • Vollständige Wiederherstellung: Wiederherstellung der Datenbank aus dem letzten vollständigen Backup.
  • Partielle Wiederherstellung: Wiederherstellung der Datenbank aus einem vollständigen Backup und nachfolgenden differenziellen Backups.
  • Punkt-in-Zeit-Wiederherstellung: Wiederherstellung der Datenbank auf einen bestimmten Zeitpunkt unter Verwendung von Transaktionslogsicherungen.

Automatisierte Sicherungen

Du kannst automatisierte Sicherungen über MSSQL Agent Jobs oder Drittanbietertools wie Veeam Backup & Replication einrichten.

Sicherheitsüberlegungen

  • Sichere deine Backups mit starken Kennwörtern.
  • Speichere Backups an einem externen Speicherort, um sie vor Datenverlust zu schützen.
  • Überprüfe regelmäßig deine Backups, um ihre Integrität sicherzustellen.

Wartungsaufgaben

Die regelmäßige Wartung des MSSQL-Servers ist unerlässlich, um die Leistung, Stabilität und Sicherheit zu gewährleisten. Hier sind einige wichtige Wartungsaufgaben:

Indexwartung

  • Defragmentierung von Indizes: Fragmentierte Indizes verlangsamen Abfragen. Verwende das Tool "DBCC INDEXDEFRAG", um Indizes zu defragmentieren.
  • Neuerstellung von Indizes: Im Laufe der Zeit können Indizes ineffizient werden. Überprüfe regelmäßig die Indizes und erstelle sie bei Bedarf neu, um die Abfrageleistung zu verbessern.

Bereinigung nicht verwendeter Objekte

  • Entfernen von nicht verwendeten Tabellen, Ansichten, gespeicherten Prozeduren usw.: Nicht verwendete Objekte belegen Platz und können Verwirrung stiften. Bereinige sie regelmäßig.
  • Bereinigen des Transaktionsprotokolls: Das Transaktionsprotokoll kann anwachsen und die Leistung beeinträchtigen. Verwende das Tool "DBCC SHRINKFILE" zum Bereinigen.

Sicherungs- und Wiederherstellungsstrategie

  • Erstelle regelmäßige Sicherungen: Sichere die Datenbank regelmäßig, um Datenverluste durch Ausfälle oder Beschädigungen zu vermeiden.
  • Teste die Wiederherstellung: Führe regelmäßig Wiederherstellungsvorgänge durch, um sicherzustellen, dass die Sicherungen fehlerfrei sind.
  • Verwende eine Backup-Software: Tools wie SQL Server Management Studio oder Azure Data Studio können die Sicherung und Wiederherstellung automatisieren.

Überwachung und Leistungssteigerung

  • Überwachung von Leistungsindikatoren: Verwende das Tool "sp_Blitz" oder ähnliche Lösungen zur Überwachung der Serverleistung.
  • Optimierung von Abfragen: Identifiziere und optimiere langsam ausgeführte Abfragen, indem du Ausführungspläne analysierst.
  • Hardware-Upgrades: Wenn die Hardware nicht mehr ausreicht, kann ein Upgrade die Leistung verbessern.

Sicherheitsupdates

  • Regelmäßige Updates: Installiere regelmäßig Sicherheits- und Funktionsupdates, um den Server vor Schwachstellen zu schützen.
  • Überprüfung von Berechtigungen: Überprüfe regelmäßig die Benutzerberechtigungen und entferne nicht mehr benötigte.
  • Aktivierung der Verschlüsselung: Verwende Technologien wie Transparent Data Encryption (TDE), um Daten vor unbefugtem Zugriff zu schützen.

Migration von MSSQL Windows zu Linux

Die Migration von MSSQL von Windows zu Linux kann ein komplexer Prozess sein. Um einen reibungslosen Übergang zu gewährleisten, solltest du die folgenden Schritte befolgen:

Vorbereitung der Migration

  • Hardwareanforderungen: Stelle sicher, dass dein Linux-Server die Hardwareanforderungen für MSSQL erfüllt.
  • Betriebssystem: Verwende eine von MSSQL unterstützte Linux-Distribution.
  • Backup: Erstelle ein vollständiges Backup deiner MSSQL-Datenbank auf Windows.

Installation von MSSQL auf Linux

Datenmigration

  • Data Migration Assistant (DMA): Verwende das Data Migration Assistant (DMA) von Microsoft, um deine Datenbank von Windows nach Linux zu migrieren.
  • BCP-Befehl: Du kannst den BCP-Befehl verwenden, um Daten aus einer Tabelle auf Windows in eine Tabelle auf Linux zu exportieren und zu importieren.
  • SSIS-Pakete: Erstelle SSIS-Pakete, um Datenextraktion, -transformation und -laden zu automatisieren.

Konfiguration nach der Migration

  • Dienstkonfiguration: Konfiguriere den MSSQL-Dienst auf Linux gemäß deinen Anforderungen.
  • Firewall-Regeln: Stelle sicher, dass die Firewall den Zugriff auf den MSSQL-Server zulässt.
  • Benutzerkonten: Erstelle Benutzerkonten für den Zugriff auf die Datenbank.
  • Datensicherung: Implementiere eine Datensicherungsstrategie für deine MSSQL-Datenbank auf Linux.

Überlegungen zur Leistung

  • Hardwareoptimierung: Stelle sicher, dass dein Server ausreichend RAM und CPU-Kerne für die erwartete Arbeitslast hat.
  • Speicheroptimierung: Überwache die Speicherleistung und passe die Pufferpoolgröße und andere Speichereinstellungen an.
  • Indizes: Erstelle Indizes für häufig verwendete Abfragen, um die Leistung zu verbessern.

Fehlerbehebung

  • Verbindungsprobleme: Überprüfe die Firewall-Regeln, Dienstkonfigurationen und Netzwerkeinstellungen.
  • SQL-Ausführungsfehler: Überprüfe die SQL-Abfragen und die Datenbankkonfiguration auf Fehler.
  • Hardwareprobleme: Überwache die Systemressourcen und suche nach Hardwarefehlern.

Troubleshooting häufiger Probleme

Unabhängig davon, wie gut du deine MSSQL-Installation auf Linux vorbereitest, können gelegentlich Probleme auftreten. Hier sind einige häufige Schwierigkeiten und Möglichkeiten, sie zu beheben:

Verbindungsfehler

  • Fehlermeldung: "Verbindung kann nicht hergestellt werden: Der angegebene Wert ist weder gültig noch unterstützt."

    • Überprüfe, ob die Firewall den Zugriff auf den MSSQL-Port zulässt.
    • Stelle sicher, dass die MSSQL Server-Dienste ausgeführt werden.
  • Fehlermeldung: "Anmeldung fehlgeschlagen für Benutzer ’sa‘."

    • Überprüfe, ob du das richtige Passwort für den ’sa‘-Benutzer eingibst.
    • Erstelle einen neuen Benutzer mit Administratorrechten.

Leistungsprobleme

  • Abfragen sind langsam.

    • Optimiere deine Abfragen mithilfe von Indexen, Partitionierung und Statistiken.
    • Skaliere deine Hardware nach Bedarf hoch.
  • Hohe CPU-Auslastung.

    • Identifiziere ressourcenintensive Abfragen mithilfe von Leistungsprofilern wie Microsoft SQL Server Profiler.
    • Optimieren oder indizieren Abfragen, die hohe CPU-Auslastung verursachen.

Backup- und Wiederherstellungsprobleme

  • Fehlermeldung: "Die Sicherungsdatei ist beschädigt oder ungültig."

    • Überprüfe, ob die Sicherungsdatei im richtigen Format vorliegt.
    • Wiederhole den Sicherungsvorgang.
  • Fehlermeldung: "Die Datenbank ‚Datenbankname‘ existiert bereits."

    • Lösche die vorhandene Datenbank oder benenne sie um.

Sonstige Probleme

  • Konfigurationsprobleme: Überprüfe deine Konfigurationseinstellungen und ändere sie nach Bedarf.
  • Speicherprobleme: Erhöhe den Speicher, der MSSQL zugewiesen ist.
  • Betriebssystemprobleme: Aktualisiere dein Linux-Betriebssystem auf die neueste Version.