Checkliste: Bewährte Methoden für SQL Server auf Azure-VMs

GILT FÜR: SQL Server auf Azure-VM

Bietet bewährte Methoden und Richtlinien für den Speicher, um die Leistung Ihrer SQL Server-Instanz auf Azure Virtual Machines (VM) zu optimieren.

Ausführliche Informationen finden Sie in den anderen Artikeln dieser Reihe: VM-Größe, Speicher, Sicherheit, HADR-Konfiguration, Baseline erfassen.

Aktivieren Sie SQL-Bewertung für SQL Server auf Azure-VMs, und Ihr SQL Server wird anhand bekannter bewährter Methoden mit Ergebnissen auf der Seite SQL VM-Verwaltung des Azure-Portals ausgewertet.

Videos zu den neuesten Features zur Optimierung der Leistung von SQL Server-VMs und zur Automatisierung der Verwaltung finden Sie in den folgenden „Data Exposed“-Videos:

Übersicht

Es empfiehlt sich, beim Ausführen von SQL Server auf Azure Virtual Machines weiterhin die gleichen Optionen zur Optimierung der Datenbankleistung zu verwenden, die für SQL Server in lokalen Serverumgebungen gelten. Die Leistung einer relationalen Datenbank in einer öffentlichen Cloud hängt jedoch von vielen Faktoren ab, z. B. der Größe eines virtuellen Computers und der Konfiguration der Datenträger für Daten.

In der Regel kommt es zu einem Kompromiss zwischen einer Kostenoptimierung und einer Leistungsoptimierung. Diese Folge von bewährten Methoden zur Leistung konzentriert sich darauf, die beste Leistung für SQL Server auf Azure Virtual Machines zu erzielen. Wenn Ihre Workload weniger anspruchsvoll ist, sind möglicherweise nicht alle empfohlenen Optimierungen erforderlich. Berücksichtigen Sie bei der Evaluierung dieser Empfehlungen Ihre Leistungsanforderungen und -kosten sowie Ihre Workloadmuster.

Größe des virtuellen Computers

Im folgenden finden Sie eine kurze Checkliste mit bewährten Methoden für die VM-Größe für die Ausführung Ihrer SQL Server auf Azure-VM:

  • Die neue Ebdsv5-Serie bietet das höchste E/A-Durchsatz-zu-virtuelle-Kerne-Verhältnis in Azure zusammen mit einem Arbeitsspeicher-zu-virtuelle-Kerne-Verhältnis von 8. Diese Serie bietet das beste Preis-Leistungs-Verhältnis für SQL Server-Workloads auf Azure-VMs. Für die meisten SQL Server-Workloads sollten Sie diese Serie also zuerst berücksichtigen.
  • Verwenden Sie VM-Größen mit 4 oder mehr vCPUs wie z. B. E4ds_v5 oder höher.
  • Verwenden Sie VM-Größen mit Arbeitsspeicheroptimierung, um die bestmögliche Leistung für SQL Server-Workloads zu erzielen.
  • Die Serien Edsv5, M und Mv2 führen zu dem optimalen Verhältnis von Arbeitsspeicher zu virtuellen Kernen, das für OLTP-Workloads benötigt wird.
  • Die VMs der M-Serie bieten das höchste Verhältnis von Arbeitsspeicher zu virtuellen Kernen in Azure. Für unternehmenskritische Workloads und Data Warehouse-Workloads sollten Sie diese Serie also zuerst berücksichtigen.
  • Nutzen Sie die Azure Marketplace-Images zur Bereitstellung Ihrer SQL Server VMs, da die SQL Server-Einstellungen und Speicheroptionen für eine optimale Leistung konfiguriert sind.
  • Erfassen Sie die Leistungsmerkmale des Zielworkloads, und nutzen Sie sie zum Ermitteln der passenden VM-Größe für Ihr Unternehmen.
  • Verwenden Sie das SKU-Empfehlungstool des Datenmigrations-Assistenten, um die richtige VM-Größe für Ihre vorhandene SQL Server-Workload zu ermitteln.

Weitere Informationen finden Sie in den bewährten Methoden für die VM-Größe.

Storage

Im folgenden finden Sie eine kurze Checkliste mit bewährten Methoden für die Speicherkonfiguration für die Ausführung Ihrer SQL Server auf Azure-VM:

  • Überwachen Sie die Anwendung, und bestimmen Sie die Anforderungen an die Speicherbandbreite und Wartezeit für SQL Server-Daten-, Protokoll- und tempdb-Dateien, bevor Sie den Datenträgertyp auswählen.
  • Um die Speicherleistung zu optimieren, planen Sie für die höchsten verfügbaren nicht zwischengespeicherten IOPS, und verwenden Sie Datenzwischenspeicherung als Leistungsmerkmal für Datenlesevorgänge, während Sie die Begrenzung virtueller Computer und Datenträger vermeiden.
  • Platzieren Sie Daten-, Protokoll- und tempdb-Dateien auf separaten Laufwerken.
    • Verwenden Sie für das Datenlaufwerk Premium P30- und P40-Datenträger oder kleinere Datenträger, um die Verfügbarkeit der Cacheunterstützung sicherzustellen.
    • Planen Sie für das Protokolllaufwerk die Kapazität und testen die Leistung im Verhältnis zu den Kosten, während Sie die Premium-Datenträger P30-P80 bewerten.
      • Wenn eine Speicherwartezeit von weniger als einer Millisekunde erforderlich ist, verwenden Sie Azure Ultra-Datenträger für das Transaktionsprotokoll.
      • Für Bereitstellungen von virtuellen Computern der M-Serie sollten Sie eine Schreibbeschleunigung der Verwendung von Azure-Ultra-Datenträgern vorziehen.
    • Platzieren Sie tempdb auf dem lokalen kurzlebigen SSD-Laufwerk (standardmäßig D:\) für die meisten SQL Server-Workloads, die nicht Teil der Failoverclusterinstanz (Failover Cluster Instance, FCI) sind, nachdem Sie die optimale VM-Größe ausgewählt haben.
    • Platzieren Sie tempdb für die FCI im freigegebenen Speicher.
      • Wenn die FCI-Workload stark von der tempdb-Datenträgerleistung abhängig ist, platzieren Sie tempdb als erweiterte Konfiguration auf dem lokalen kurzlebigen SSD-Laufwerk (standardmäßig D:\), das nicht Teil des FCI-Speichers ist. Für diese Konfiguration sind benutzerdefinierte Überwachung und Aktionen erforderlich, um sicherzustellen, dass das lokale kurzlebige SSD-Laufwerk (standardmäßig D:\) immer verfügbar ist, da Fehler dieses Laufwerks keine Aktion der FCI auslösen.
  • Erstellen Sie ein Stripeset mehrerer Azure-Datenträger mithilfe von Speicherplätzen, um die E/A-Bandbreite bis zum IOPS- und Durchsatzlimit des virtuellen Zielcomputers zu erhöhen.
  • Legen Sie Hostzwischenspeicherung für Datenträger mit Datendateien auf „Schreibgeschützt“ fest.
  • Legen Sie Hostzwischenspeicherung für Protokolldateidatenträger auf „Keine“ fest.
    • Aktivieren Sie das Zwischenspeichern von Lese-/Schreibvorgängen nicht für Datenträger, die SQL Server-Daten oder Protokolldateien enthalten.
    • Vor dem Ändern der Cacheeinstellungen Ihres Datenträgers sollten Sie den SQL Server-Dienst immer anhalten.
  • Für die Entwicklung und Test-Arbeitsauslastungen sollten Sie den Standardspeicher verwenden. Es wird nicht empfohlen, HDD Standard/SDD für Produktionsworkloads zu verwenden.
  • Auf Guthaben basierendes Datenträgerbursting (P1-P20) sollte nur für kleinere Dev-/Test-Workloads und Abteilungssysteme in Betracht gezogen werden.
  • Stellen Sie das Speicherkonto in derselben Region wie die SQL Server-VM bereit.
  • Deaktivieren Sie den georedundanten Azure-Speicher (Georeplikation), und verwenden Sie LRS (lokal redundanter Speicher) für das Speicherkonto.
  • Formatieren Sie den Datenträger, um die Größe der Zuordnungseinheiten von 64 KB für alle Datendateien zu verwenden, die auf einem anderen Laufwerk als dem temporären Laufwerk D:\ abgelegt werden (Standardwert: 4 KB). SQL Server über Azure Marketplace bereitgestellten virtuellen Computer verfügen über Datenträger, die mit der Größe der Zuordnungseinheit formatiert sind, und Interleave für den Speicherpool auf 64 KB.

Weitere Informationen finden Sie in den bewährten Methoden für den Speicher.

SQL Server-Funktionen

Im Folgenden finden Sie eine kurze Checkliste der Best Practices für SQL Server-Konfigurationseinstellungen, wenn Sie Ihre SQL Server-Instanzen auf einem virtuellen Azure-Computer in der Produktion ausführen:

Azure-Features

Im Folgenden finden Sie eine kurze Checkliste der Best Practices zur Azure-spezifischen Anleitung bei der Ausführung Ihrer SQL Server-Instanzen auf Azure-VM:

HADR-Konfiguration

HADR-Features (High Availability and Disaster Recovery) wie die AlwaysOn-Verfügbarkeitsgruppe und die Failoverclusterinstanz basieren auf der zugrunde liegenden Windows Server-Failovercluster-Technologie. Sehen Sie sich die bewährten Methoden zum Ändern Ihrer HADR-Einstellungen an, um die Cloudumgebung besser zu unterstützen.

Erwägen Sie für Ihren Windows-Cluster die folgenden bewährten Methoden:

  • Stellen Sie Ihre SQL Server-VMs nach Möglichkeit in mehreren Subnetzen bereit, um die Abhängigkeit von einem Azure Load Balancer oder einem verteilten Netzwerknamen (DNN) zur Weiterleitung des Datenverkehrs an Ihre HADR-Lösung zu vermeiden.
  • Ändern Sie den Cluster in weniger aggressive Parameter, um unerwartete Ausfälle durch vorübergehende Netzwerkfehler oder Wartung der Azure-Plattform zu vermeiden. Weitere Informationen finden Sie unter Heartbeat- und Schwellenwerteinstellungen. Verwenden Sie für Windows Server 2012 und höher die folgenden Werte:
    • SameSubnetDelay: 1 Sekunde
    • SameSubnetThreshold: 40 Heartbeats
    • CrossSubnetDelay: 1 Sekunde
    • CrossSubnetThreshold: 40 Herzschläge
  • Platzieren Sie Ihre VMs in einer Verfügbarkeitsgruppe oder verschiedenen Verfügbarkeitszonen. Weitere Informationen finden Sie unter VM-Verfügbarkeitseinstellungen.
  • Verwenden Sie eine einzelne NIC pro Clusterknoten und ein einzelnes Subnetz.
  • Konfigurieren Sie die Clusterquorumabstimmung so, dass eine ungerade Anzahl von mindestens drei Stimmen verwendet wird. Weisen Sie keine Stimmen zu DR-Regionen zu.
  • Überwachen Sie Ressourcengrenzwerte sorgfältig, um unerwartete Neustarts oder Failover aufgrund von Ressourceneinschränkungen zu vermeiden.
    • Stellen Sie sicher, dass Betriebssystem, Treiber und SQL Server den neuesten Builds entsprechen.
    • Optimieren Sie die Leistung für SQL Server auf Azure-VMs. Weitere Informationen finden Sie in den anderen Abschnitten dieses Artikels.
    • Reduzieren oder verteilen Sie die Workload, um Ressourcengrenzwerte zu vermeiden.
    • Wechseln Sie zu einer VM oder einem Datenträger mit höheren Grenzwerten, um Einschränkungen zu vermeiden.

Erwägen Sie für die SQL Server Verfügbarkeitsgruppe oder Failoverclusterinstanz die folgenden bewährten Methoden:

  • Wenn häufig unerwartete Fehler auftreten, befolgen Sie die leistungsbezogenen bewährten Methoden, die im restlichen Teil dieses Artikels beschrieben werden.
  • Falls sich die unerwarteten Failover durch Optimierung der Leistung der SQL Server-VMs nicht beheben lassen, erwägen Sie eine Lockerung der Überwachung für die Verfügbarkeitsgruppe oder Failoverclusterinstanz. Dadurch wird jedoch möglicherweise nicht die zugrunde liegende Ursache des Problems behoben, und durch Verringerung der Fehlerwahrscheinlichkeit können Symptome maskiert werden. Möglicherweise müssen Sie die zugrunde liegende Ursache dennoch untersuchen und beheben. Verwenden Sie für Windows Server 2012 oder höher die folgenden empfohlenen Werte:
    • Leasetimeout:Verwenden Sie diese Gleichung, um den maximalen Leasetimeoutwert zu berechnen:
      Lease timeout < (2 * SameSubnetThreshold * SameSubnetDelay).
      Beginnen Sie mit 40 Sekunden. Wenn Sie die zuvor empfohlenen gelockerten SameSubnetThreshold- und SameSubnetDelay-Werte verwenden, darf der Leasetimeoutwert 80 Sekunden nicht überschreiten.
    • Maximale Anzahl von Fehlern in einem angegebenen Zeitraum: Legen Sie diesen Wert auf 6 fest.
    • Timeout für die Integritätsprüfung: Legen Sie diesen Wert zunächst auf 60.000 fest, und passen Sie ihn bei Bedarf an.
  • Wenn Sie den virtuellen Netzwerknamen (VNN) und Azure Load Balancer verwenden, um sich mit Ihrer HADR-Lösung zu verbinden, geben Sie MultiSubnetFailover = true in der Verbindungszeichenfolge an, auch wenn sich Ihr Cluster nur über ein Subnetz erstreckt.
    • Wenn der Client MultiSubnetFailover = True nicht unterstützt, müssen Sie möglicherweise RegisterAllProvidersIP = 0 und HostRecordTTL = 300 festlegen, um Clientanmeldeinformationen für kürzere Zeiträume zwischenzuspeichern. Dies kann jedoch zu zusätzlichen Abfragen an den DNS-Server führen.
  • Beim Herstellen einer Verbindung mit der HADR-Lösung mithilfe des Namens des verteilten Netzwerks (Distributed Network Name, DNN) ist Folgendes zu beachten:
    • Sie müssen einen Clienttreiber verwenden, der MultiSubnetFailover = True unterstützt, und dieser Parameter muss in der Verbindungszeichenfolge enthalten sein.
    • Verwenden Sie einen eindeutigen DNN-Port in der Verbindungszeichenfolge, wenn Sie eine Verbindung mit dem DNN-Listener für eine Verfügbarkeitsgruppe herstellen.
  • Verwenden Sie eine Verbindungszeichenfolge für Datenbankspiegelung für eine Basic-Verfügbarkeitsgruppe, um die Notwendigkeit eines Lastenausgleichs oder DNN zu umgehen.
  • Überprüfen Sie die Sektorgröße Ihrer VHDs, bevor Sie Ihre Hochverfügbarkeitslösung bereitstellen, um falsch ausgerichtete E/A zu vermeiden. Weitere Informationen finden Sie unter KB3009974.
  • Wenn die SQL Server-Datenbank-Engine, der Always On-Verfügbarkeitsgruppenlistener oder der Integritätstest der Failoverclusterinstanz so konfiguriert sind, dass ein Port zwischen 49152 und 65536 (der standardmäßige dynamische Portbereich für TCP/IP) verwendet wird, fügen Sie einen Ausschluss für jeden Port hinzu. Dadurch wird verhindert, dass anderen Systemen dynamisch derselbe Port zugewiesen wird. Im folgenden Beispiel wird ein Ausschluss für Port 59999 erstellt:
    netsh int ipv4 add excludedportrange tcp startport=59999 numberofports=1 store=persistent

Weitere Informationen finden Sie in den umfassenden bewährten Methoden für HADR.

Sicherheit

In der Checkliste in diesem Abschnitt werden die bewährten Sicherheitsmethoden für SQL Server auf Azure-VMs behandelt.

Die Features und Funktionen von SQL Server bieten eine Methode für die Sicherheit auf Datenebene und ermöglichen so einen umfassenden Schutz auf Infrastrukturebene für cloudbasierte und hybride Lösungen. Darüber hinaus ist es mit den Azure-Sicherheitsmaßnahmen möglich, sensible Daten zu verschlüsseln, VMs vor Viren und Malware zu schützen, den Netzwerkdatenverkehr abzusichern, Bedrohungen zu identifizieren, Complianceanforderungen zu erfüllen. Außerdem wird durch diese Sicherheitsmaßnahmen eine einheitliche Methode zur Verwaltung und Berichterstattung für sämtliche Sicherheitsanforderungen in der Hybrid Cloud bereitgestellt.

  • Verwenden Sie Azure Security Center, um die Sicherheitslage Ihrer Datenumgebung zu bewerten und Maßnahmen zur Verbesserung zu ergreifen. Funktionen wie Microsoft Defender for Identity können über in Ihren hybriden Workloads genutzt werden, um die Sicherheitsbewertung zu verbessern und auf Risiken reagieren zu können. Aufgrund der Registrierung Ihrer SQL Server-VM bei der SQL-IaaS-Agent-Erweiterung werden die Azure Security Center-Bewertungen in der Ressource Virtueller SQL-Computer des Azure-Portals angezeigt.
  • Nutzen Sie Microsoft Defender für SQL, um potenzielle Sicherheitsrisiken von Datenbanken zu ermitteln und zu entschärfen sowie anomale Aktivitäten zu erkennen, die auf eine Bedrohung Ihrer SQL Server-Instanz und Datenbankebene hindeuten könnten.
  • Die Sicherheitsrisikobewertung ist Bestandteil von Microsoft Defender für SQL. Durch sie können potenzielle Risiken für Ihre SQL Server-Umgebung erkannt und beseitigt werden. Sie ermöglicht den Überblick über Ihren Sicherheitsstatus und schlägt Maßnahmen zum Beheben von Sicherheitsproblemen vor.
  • Der Azure Advisor analysiert Ihre Ressourcenkonfiguration und Nutzungstelemetrie und empfiehlt dann Lösungen, mit denen Sie die Kosteneffizienz, Leistung, Hochverfügbarkeit und Sicherheit Ihrer Azure-Ressourcen verbessern können. Nutzen Sie den Azure Advisor für VMs, Ressourcengruppen oder Abonnements, um bewährte Methoden zur Optimierung Ihrer Azure-Bereitstellungen zu identifizieren und anzuwenden.
  • Verwenden Sie Azure Disk Encryption, wenn Ihre Compliance- und Sicherheitsanforderungen eine umfassende Datenverschlüsselung mithilfe von Verschlüsselungsschlüsseln verlangen, einschließlich der Verschlüsselung der kurzlebigen (lokal angeschlossenen und temporären) Festplatte.
  • Verwaltete Datenträger im Ruhezustand werden standardmäßig mit der Azure-Speicherdienstverschlüsselung verschlüsselt. Dabei sind die Verschlüsselungsschlüssel von Microsoft verwaltete Schlüssel, die in Azure gespeichert werden.
  • Einen Vergleich der Optionen für die Verschlüsselung von verwalteten Datenträgern finden Sie in der Vergleichstabelle für die Verschlüsselung von verwalteten Datenträgern.
  • Verwaltungsports sollten auf Ihren VMs geschlossen werden: Offene Ports zur Remoteverwaltung setzen Ihre VMs einem hohen Risiko durch internetbasierte Angriffe aus. um Administratorzugriff auf den Computer zu erhalten.
  • Aktivieren Sie den JIT-Zugriff (Just-In-Time) für virtuelle Azure-Computer.
  • Verwenden Sie Azure Bastion über das Remotedesktopprotokoll (RDP).
  • Sperren Sie Ports, und lassen Sie nur den notwendigen Anwendungsverkehr zu. Verwenden Sie dazu Azure Firewall (eine verwaltete FaaS-Lösung [Firewall-as-a-Service]), die den Serverzugriff auf Grundlage der IP-Adresse des Absenders gewährt oder verweigert.
  • Verwenden Sie Netzwerksicherheitsgruppen (NSGs), um den Netzwerkverkehr an und von Azure-Ressourcen in virtuellen Azure-Netzwerken zu filtern.
  • Nutzen Sie Anwendungssicherheitsgruppen, um Server mit ähnlichen Anforderungen an die Portfilterung und mit ähnlichen Funktionen (z. B. Webserver und Datenbankserver) in Gruppen zusammenzufassen.
  • Nutzen Sie für Web- und Anwendungsserver Azure DDoS Protection (Distributed Denial of Service). DDoS-Angriffe zielen darauf ab, die Netzwerkressourcen zu überlasten und zu erschöpfen, sodass Apps langsam werden oder nicht mehr reagieren. DDos-Angriffe zielen in der Regel auf Benutzeroberflächen ab. Der Azure DDoS Protection-Dienst blockiert unerwünschten Netzwerkverkehr, bevor er die Dienstverfügbarkeit beeinträchtigt.
  • Nutzen Sie VM-Erweiterungen, um mithilfe von Antischadsoftware, Desired State-Konfigurationen, Bedrohungserkennung, -prävention und -beseitigung Bedrohungen auf Betriebssystem-, Computer- und Netzwerkebene zu bekämpfen:
  • Nutzen Azure Policy, um Geschäftsregeln zu erstellen, die auf Ihre Umgebung angewendet werden können. Azure-Richtlinien bewerten Azure-Ressourcen, indem sie die Eigenschaften dieser Ressourcen mit Regeln vergleichen, die im JSON-Format definiert sind.
  • Azure Blueprints ermöglicht es Cloudarchitekten und zentralen IT-Gruppen, eine wiederholbare Gruppe von Azure-Ressourcen zu definieren, mit der die Standards, Muster und Anforderungen einer Organisation implementiert und erzwungen werden. Azure Blueprints unterscheidet sich von Azure-Richtlinien.

Nächste Schritte

Weitere Informationen finden Sie in auch in anderen Artikeln dieser Reihe zu bewährten Methoden:

Erwägen Sie die Aktivierung von SQL-Bewertung für SQL Server auf Azure-VMs.

Weitere Artikel zu virtuellen SQL Server-Computern finden Sie unter Übersicht zu SQL Server auf virtuellen Azure-Computern. Falls Sie Fragen zu SQL Server-VMs haben, finden Sie in den häufig gestellten Fragen weitere Informationen.