Wie schnell Ihr SQL Server Backups erledigen kann, setzt sich aus zwei Dingen zusammen: wie schnell er Daten aus dem Speicher ausliest, und wie schnell er sie in das Zielverzeichnis schreibt. Nachdem Sie beides getestet haben, wird sich herausstellen, dass entweder das Lesen oder das Schreiben Ihr Backup verlangsamt.
Wie schnell liest der SQL Server Daten von der Festplatte?
Zum Glück ist das recht einfach messbar, indem man einen kompletten Backup-Durchlauf macht und dabei die NUL: Option benutzt:
Dadurch wird das Backup zwar durchgeführt, aber nirgendwo hingeschrieben – darum können Sie mit dieser Methode recht simpel messen, wie schnell die Daten von ihrem Speicherort ausgelesen werden. Aber Vorsicht: Es wird ein echtes Backup durchgeführt, andere Backuppläne können dabei beeinflusst werden. Denken Sie an Szenarien wie den Protokollversand oder Ihre Wartungspläne. Überprüfen Sie Ihre Einstellungen vor dem Durchlauf, oder verwenden Sie eine Kopie Ihrer Datenbank, wenn Sie sich nicht sicher sind.
Wie schnell schreibt er das Backup?
Für diesen Teil der Geschwindigkeitsmessung bietet es sich an ein Tool zu benutzen – eine Option ist beispielsweise CrystalDiskMark.
Nutzt man einen UNC-Pfad als Ziel für das Backup, muss man unter Umständen ein Netzlaufwerk zuordnen damit das jeweilige Tool funktioniert. Wenn Sie der einzige sind, der gerade einen Backup an diesem Ort durchführt, sehen Sie sich die sequentielle Schreibgeschwindigkeit an. Gibt es mehrere Nutzer oder Server, die an denselben Ort schreiben, schauen Sie auf die Zufallsschreibgeschwindigkeit.
Schneller aus dem Speicher lesen
Festplatten schneller machen, Speicher verbessern, Datenbanken komprimieren und nicht mehr genutzte Daten archivieren … all diese Methoden zielen in dieselbe Richtung, und es empfiehlt sich, sie soweit möglich alle parallel zu nutzen.
Wenn Sie AlwaysOn-Verfügbarkeitsgruppen benutzen, kann es sich lohnen die Daten aus dem schnellstmöglichen Replikat zu lesen.
Um die einzelnen Datenmengen bei Backups Ihrer Transaktionsprotokolle zu reduzieren, können Sie sich überlegen diese nicht nur stündlich zu sichern, sondern mehrmals pro Stunde.
Es ist eine Überlegung wert, vollständige Backups nicht mehr täglich durchzuführen, sondern nur einmal pro Woche. Stattdessen speichern Sie dann nur die Daten, die sich seit dem letzten Backup verändert haben – Sie müssen allerdings zu jeder Zeit Zugriff auf das Voll-Backup und das differentielle Backup haben, sonst wird es bei einem Server-Ausfall unangenehm.
Schneller ins Zielverzeichnis schreiben
Benutzen Sie für Ihre Backups die Sicherungskomprimierung von SQL Server. Aktuelle Versionen des SQL Server sind in der Lage mit einer Backupkomprimierung zu arbeiten, so dass Sie kein zusätzliches Tool verwenden müssen. Sollte Ihnen das nicht reichen, können Sie selbstverständlich auch für die Komprimierung Bibliotheken von Drittanbietern verwenden. Gute Erfahrung haben wir hier über diesen Weg zusammen mit den Integration Services gemacht. Den Komprimierungsgrad können Sie dann individuell anpassen und dies in Ihre Wartungspläne einbauen. Sie müssen etwas experimentieren, bis Sie die optimale Einstellung für Ihre größten Datenbanken finden.
Mit Hilfe der Backup Komprimierung reduzieren Sie die I/O Vorgänge Ihres Daten-Outputs, dafür erhöht sich im Gegenzug die CPU-Nutzung. Hier müssen Sie etwas herumprobieren, um die richtige Balance zu finden.
Wenn Ihre Backups an der Schreibgeschwindigkeit scheitern und Sie genug CPU-Zeit übrig haben, kann es sich lohnen, davon etwas herzugeben.
Suchen Sie sich ein schnelleres Zielverzeichnis.
Nutzen Sie für Ihre Backups zunächst keine Anwendungen von Drittanbietern – die können sich als Geschwindigkeitsbremsen herausstellen. Probieren Sie immer erst einmal ein temporäres Backup auf ein ganz simples Fileshare, und vergleichen Sie die Backup-Geschwindigkeiten. Dann arbeiten Sie mit Ihren Systemadministratoren zusammen um einen Weg zu finden, wie Sie Ihre Backup-Anwendung verbessern können.
Kombinieren Sie mehrere Netzwerkkarten. Wenn Sie eine 1GB-Ethernet-Verbindung nutzen und Ihr Backup zu einem anderen Teil des Netzwerks schicken, verknüpfen Sie probeweise mehrere 1GB-Karten, sowohl auf dem SQL Server und im Zielverzeichnis.
Benutzen Sie mehrere Backup-Dateien. Wenn Ihr Backup-Zielverzeichnis schnell genug ist, kann es hilfreich sein vier Backup-Dateien zu nutzen. Wenn alles gut läuft, erhöht das Ihre Geschwindigkeit um das Vierfache.
Und wenn Sie das Meiste aus Ihren Backups herausgeholt haben, geht es der System-Wiederherstellung an den Kragen. Ein schneller Backup lohnt sich kaum, wenn das System down ist – dann geht es nur darum, wie schnell es wieder da ist.
Geschrieben von: Daniel Caesar