Hochverfügbarkeit mit SQL Server 2012 und 2014

alexwhite, 123RF

Immer bereit

,
Einerseits wachsen die Anforderungen an die Verfügbarkeit – andererseits beabsichtigt Microsoft gerade, bei seinem SQL Server die Datenbankspiegelung abzuschaffen. Damit stecken viele Anwender, die bisher diese Option nutzten, in der Klemme. Das ADMIN-Magazin hat untersucht, welche Alternativen Ihnen SQL Server 2012 und 2014 zur Verfügung stellen.
ADMIN 11/13 stellt die besten Lösungen vor und klärt, ob Browser-Plugins, Anonymisierer sowie Verschlüsselung wirklich helfen. Weitere Themen: Small ... (mehr)

Der Bedarf an Hochverfügbarkeitsfeatures für Microsofts SQL Server schnellt gerade im Zeitalter der Cloud in die Höhe. Doch anstatt die dringend benötigten Hochverfügbarkeitsfeatures einer breiten Anwenderschar zur Verfügung zu stellen, hat Microsoft die Datenbankspiegelung zum alten Eisen gelegt und ihren Nachfolger, die mit SQL Server 2012 vorgestellten und mit SQL Server 2014 ausgebauten AlwaysOn-Hochverfügbarkeitsgruppen, auf die Edition Enterprise beschränkt.

Hochverfügbarkeit als Service

AWS-Anwendern mit Bedarf an Hochverfügbarkeit des SQL Servers, die auf ihr Budget achten müssen, steht noch eine andere Lösung zur Verfügung: Amazons RDS-Dienste für SQL Server.

Die astronomischen Kosten der Hochverfügbarkeit und horizontaler Skalierbarkeit von SQL Server haben einige Anbieter dazu veranlasst, ihre eigenen Cloud-Dienste mit diesen Fähigkeiten bereitzustellen. Zu den Pionieren zählt Amazon mit RDS.

Bei RDS übernimmt Amazon die Verantwortung für die Datenintegrität mit automatischen Backups der gesamten RDS-Instanz (täglich) und automatischen Sicherheitskopien der Transaktions-Logs (alle 5 Minuten). Beim Ausfall der Instanz aufgrund eines Hardwarefehlers erfolgt ein automatisches Failover. Der Benutzer kann außerdem nach Bedarf eigene Snapshots der Datenbank anlegen und diese manuell restaurieren.

Allerdings gestattet Amazon Nutzern in RDS weder einen Zugriff auf das Dateisystem ihrer RDS-Instanzen noch den Zugang über eine Remote-Desktop-Verbindung noch den Einsatz von Tools eines Drittanbieters --alles gute Gründe, warum erfahrene SQL-Server-Administratoren Amazons RDS aus dem Weg gehen. Funktionen wie der Log-Versand oder Windows-Authentifizierung mit Active Directory sind ebenfalls vom Tisch. Dafür darf sich der Benutzer der intuitiven Skalierbarkeit von RDS erfreuen.

VMware versucht, mit dem vFabric Data Director [3] die Unzulänglichkeiten von RDS auszugleichen, indem der Benutzer seine Windows-Instanz in Eigenregie einrichtet. Auch Microsoft bietet einen eigenen Dienst: Windows Azure SQL Database (WASD)[6]. Der Dienst bietet leider nicht den vollständigen Funktionsumfang von SQL Server und hat unter anderem die Datenbankpartitionierung, den Resource Governor, den Service Broker, CLR und viele andere Features weggelassen. Nicht allen Anwendern ist mit einem derart beschnittenen Funktionsumfang wirklich gedient.

Tipp: Wer mit SQL Server 2014 auf die Probefahrt gehen möchte, kann die Tryout-Version [1] in AWS auf einer ganz gewöhnlichen EC2-Instanz von Windows Server installieren. Sie können hierzu sogar eine Spot-Instanz starten, denn das senkt die Kosten gegenüber einer On-Demand-Instanz oft um den Faktor zehn. Bestehende Nutzer von SQL Server können beim Wechsel in die Wolke ihre existierenden Lizenzen in der Regel mitnehmen und weiter verwenden, sofern sie über ein aktives Abonnement von Software Assurance verfügen (siehe [2]). Den SQL Server 2014 können Sie außerdem auch direkt auf Azure ausprobieren. Hierzu wählen Sie beim Zugriff auf die Tryout-Version [1] die Option »Preview SQL Server 2014 CTP1 on Azure« .

Lieber Vorsicht als Nachsicht

Hochverfügbarkeit (High Availability, HA) maximiert die Erreichbarkeit von Datenbankservern, indem sie die Auswirkungen eines Hardwareschadens mildert, das Versagen virtualisierter IaaS-Dienste kompensiert und die Ausfälle der Netzinfrastruktur auffängt. Dank Hochverfügbarkeitsfeatures lassen sich nicht nur die Ausfallzeiten minimieren, man kann auch den Verlust von Transaktionsdaten weitgehend ausschließen.

Die Hochverfügbarkeit einer Datenbank ist auch deswegen schwierig zu gewährleisten, weil es immer auch darum geht, die Integrität transaktionaler Daten zu sichern. Microsofts SQL Server begegnete diesen Anforderungen in der Version 2012 je nach Ausbaustufe mit bis zu drei Hochverfügbarkeitsfeatures :

  • der Datenbankspiegelung,
  • den AlwaysOn-Failover-Cluster-Instanzen und
  • den AlwaysOn-Verfügbarkeitsgruppen (letztere sind nur in der Edition Enterprise zu haben).

Darüber hinaus lässt sich auch mit Features wie der Datenbankreplikation und dem Log-Versand die Datensicherung im Notfall gewährleisten.

Spiegelung vor dem Aus

Die synchrone Datenbankspiegelung im SQL Server ist eine Hochverfügbarkeitslösung, bei asynchroner Datenbankspiegelung (nur in der Enterprise-Edition verfügbar) handelt es sich dagegen um eine Lösung zur Datenwiederherstellung im Notfall.

In jedem Fall besteht die Umgebung bei der Datenbankspiegelung aus zwei Instanzen mit lokalem Speicher, einem Prinzipalserver mit der Prinzipaldatenbank und einem Spiegelserver mit der Spiegeldatenbank. Der Hochsicherheitsmodus beherrscht ein automatisches Failover. Diese Konfiguration erfordert einen dritten Server, den sogenannten Zeugen. Der Zeuge kümmert sich darum, dass beim Ausfall des Prinzipalservers der Spiegelserver dessen Aufgaben nahtlos übernehmen kann. Bei der synchronen Datenbankspiegelung übergibt der Prinzipalserver den Commit einer jeden Transaktion unmittelbar an den Spiegelserver und erst nach Erhalt einer Bestätigung meldet er den Vorgang als abgeschlossen. Der Sekundärserver kann die Aufgaben des Primärservers jederzeit übernehmen. Informationen außerhalb der betreffenden Datenbank, wie Jobs, Joints und Transaktionen über mehrere Datenbanken hinweg, gehen entweder verloren oder lassen sich nicht fehlerfrei übernehmen. Zudem ist diese Lösung langsam.

Im Unterschied dazu erfolgt die asynchrone Datenbankspiegelung mit einer erheblichen Zeitverzögerung und eignet sich daher zwar nicht für ein automatisches Failover, ist aber eine Option für die Datensicherung und die Notfallwiederherstellung.

Microsoft hat die Datenbankspiegelung inzwischen zum alten Eisen erklärt. Anwender von SQL Server sind gut beraten, dieses Feature bereits heute nicht mehr zu verwenden und keine neuen Anwendungen dafür zu entwickeln. Als Ersatz empfiehlt Microsoft die AlwaysOn-Hochverfügbarkeitsgruppen. Der einzige Schönheitsfehler: Jede Serverinstanz in einer Hochverfügbarkeitsgruppe benötigt die Enterprise-Edition des SQL Server. Alleine die Lizenzgebühren für die minimale Ausstattung der kleinsten Ausbaustufe einer Hochverfügbarkeitsgruppe kommen bei einer Laufzeit von drei Jahren schon auf den stolzen Betrag von über 100 000 Euro.

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019