Go to Top

SQL Entmystifiziert 2: Welche Auswirkungen hat die In-Memory-Technologie auf SQL Server Wiederherstellung?

SQL Server Wiederherstellung

Eine der am meisten erwarteten Funktionen von Microsoft SQL Server 2014 war die Einführung eines neuen In-Memory OLTP Systems namens Hekaton. Hekaton wurde entwickelt um OLTP-Transaktionen zu beschleunigen, indem die gesamten Datenbank-Tabellen im Arbeitsspeicher (RAM) gehalten werden, anstatt dass sie von der Festplatte gelesen bzw. geschrieben werden müssen.

Die Geschwindigkeitsvorteile von RAM gegenüber normalen Festplattenlaufwerken sind bekannt, aber sie bieten sogar eine schnellere Leistung als Solid State Drives (SSD). Die höhere Geschwindigkeit kommt allerdings mit einem gravierenden Nachteil: Alle Daten, die im RAM gehalten werden sind in der Regel komplett verloren, wenn der Server neustartet und abstürzt. Natürlich ist dieses Verhalten für geschäftskritische Anwendungen oder solche, die strenge Normen einhalten müssen nicht akzeptabel. Wie bauen Sie jetzt aber ein Datenbanksystem auf, das diese Geschwindigkeiten mit den Anforderungen für eine SQL Server Wiederherstellung, falls doch einmal etwas schief geht, anpasst?

Eingebaute Vorsorge

Hekaton ermöglicht DBAs Tabellen und Objekte mit hoher Priorität zu bestimmen, die im RAM für superschnelle Abfragen gespeichert werden. Aber die zugrunde liegende Architektur wurde auch dazu entwickelt, um eine lokalisierte Sicherungskopie (Backup) der Daten zu erstellen.

Transaktionsprotokoll

Genauso wie eine Standard-Festplatten-basierte Datenbank setzt auch Hekaton auf eine Transaktionsprotokoll-(Log)Aufzeichnung, um die Operationen zu verfolgen und um die SQL Server-Wiederherstellung zu unterstützen. Um eine vollständige Dokumentation zu gewährleisten, integriert Hekaton sowohl Festplatten-basierte als auch RAM-Speicher-basierte Transaktions-Logs und schreibt diese stoßweise auf eine Disk.

Das Data File verstehen

Anstatt die traditionelle Seitenstruktur zu nutzen, die für Datenreihen normalerweise eingesetzt wird, verwendet Hekaton ein Paar sequentieller Dateien: das Data File und das Delta File.

Das Data File enthält Freiform-Datenreihen, die mit In-Memory Indizes verlinkt sind. Jedes Mal, wenn eine Zeile durch die Anweisung INSERT oder UPDATE geändert wird, wird die geänderte Zeile an das Ende der Data File angehängt.

Um die Betriebsgeschwindigkeit und ein genaues Audit-Trail zu erhalten, wenn eine Zeile bei einer In-Memory Tabelle gelöscht oder geändert wird, wird der Originaleintrag im Data File weder entfernt noch gelöscht.

Das Delta File verstehen

Jedes Data File ist mit einem Delta File verknüpft. Die Delta Datei speichert Informationen über jede Zeile, die aktualisiert oder aus dem entsprechenden Data File gelöscht wird. Jedes Mal, wenn eine Zeile im Data File gelöscht wird, wird ein Verweis auf diese Zeile an das Ende des Delta Files hinzugefügt. (Denken Sie daran, dass die Zeile nicht aus dem Data File gelöscht wird, um die Leistung aufrecht zu erhalten).

Die beiden Data und Delta Files werden mit einem Hintergrund-Thread aktualisiert und auf die Festplatte geschrieben. Neue Dateien werden automatisch erstellt, sobald systemdefinierte Grenzen erreicht sind. Im Laufe der Zeit werden sie zusammengeführt, um Platz im RAM zu schaffen, sodass das Leistungsniveau beibehalten wird und Speichergrenzen nie erreicht werden.

Was passiert, wenn der Microsoft SQL Server abstürzt?

Die Schlüsselfrage, die sich DBAs stellen sollten, die über eine Nutzung von Hekaton nachdenken, ist: „Was passiert, wenn der SQL Server abstürzt?“ Glücklicherweise kann Hekaton unter Verwendung der Data Files und Delta Files damit fertig werden und eine Art automatisierte SQL Server Wiederherstellung durchführen.

Mit der Nutzung der Transaktionsprotokolle (Logs) und der Data und Delta Files kann Hekaton automatisch die In-Memory Tabellen wiederherstellen und die Ausfallzeiten damit deutlich reduzieren. Ausfälle werden zusätzlich verkürzt, da die Data Files und Delta Files gleichzeitig geladen und verarbeitet werden. Schließlich können die Transaktionsprotokolle angewendet werden, um Daten genau zu dem Zeitpunkt wiederherzustellen an dem der Server abgestürzt ist.

Wegen dieser Vorgehensweise behauptet Microsoft nun, dass keine zusätzlichen Backup-Vorkehrungen erforderlich sind, um sich vor Datenverlust zu schützen. Und das bedeutet auch, dass eine SQL Server Wiederherstellung auch auf Hekaton basierten Datenbanken ebenfalls relativ einfach sein sollte.

Andere SQL Server-Wiederherstellungsoptionen

So wie es derzeit aussieht, gibt es bislang keine Lösungen von Drittanbietern, die speziell für die Verwendung der In-Memory-Technik bei Microsoft SQL Server 2014 entwickelt wurden. Ähnliche In-Memory Datenbank-Lösungen von Oracle oder SAP Hana nutzen andere Frameworks, die weniger robust scheinen und als Resultat daraus mehr Drittanbieter-„Pipes“ nutzen, um Veränderungen bei den Daten zu erfassen, während sie hinein und hinaus aus der Datenbank-Engine fließen.

Die gute Nachricht für Datenbankadministratoren und Systemarchitekten ist, dass Microsoft SQL Server 2014 die In-Memory-Verarbeitung erschwinglicher, robuster und überhaupt zugänglich gemacht hat. Und das ist schon was!