SQL-Server-Backups in mehrere Dateien aufteilen und wiederherstellen

Bei Microsoft SQL Server nimmt eine Datenbanksicherung viel Speicher in Anspruch. Eine Lösung ist, das Backup auf mehrere Dateien aufzuteilen.

Die Größe von Datenbanken nimmt immer stärker zu. Als Datenbank-Administrator (DBA) sollten Sie aber sicherstellen, dass Datenbank-Backups rechtzeitig abgeschlossen sind.

In der Praxis gibt es immer wieder Szenarien, bei denen Sie nicht genügend Platz haben, um SQL-Server-Backups auf einem bestimmten Laufwerk abzulegen. Oft nimmt eine Datenbanksicherung außerdem beträchtliche Zeit in Anspruch. Eine mögliche Lösung besteht darin, das Datenbank-Backup im Microsoft SQL Server auf mehreren Dateien aufzuteilen. Dies reduziert die Backup-Zeit und nutzt den verfügbaren Speicherplatz auf mehreren Festplatten.

Warum sollte man Datenbank-Backups aufteilen?

  1. Durch die Aufteilung von Datenbank-Backups auf mehrere Dateien wird Ihre Datenbank schneller gesichert. Wenn Sie die Datenbanksicherung in mehrere Dateien schreiben und Sie diese Dateien auf mehrere Laufwerke verteilen, können Sie leicht einen höheren I / O erreichen. Dadurch reduziert sich die notwendige Zeit für die Datenbanksicherung.
  2. Mit der Option Sicherung in mehrere Dateien teilen können Sie eine sehr große Backup-Datei leicht in mehrere Dateien gleicher Größe splitten.
  3. Da das Backup in mehrere Dateien aufgeteilt wird, wird jede Datei deutlich kleiner sein als die Originaldatei, so dass der DBA die Dateien einfach über das Netzwerk oder auf Band kopieren kann.

SQL-Server-Datenbank-Backup in mehrere Dateien aufteilen

Öffnen Sie das SQL Server Management Studio, klicken Sie auf Databanken und dann mit der rechten Maustaste auf diejenige Datenbank, für die Sie ein Backup machen möchten. Anschließend klicken Sie auf Tasks und Sichern. In diesem Artikel wird eine Beispieldatenbank mit dem Namen AdventureWorks2008R2 verwendet.

Um den Pfad für die Speicherung der Datenbank-Backup-Dateien anzugeben, klicken Sie im Dialogfeld Datenbanken sichern auf die Schaltfläche„Add“ Hinzufügen, die Sie unter Ziel finden. In Abbildung 1 sehen Sie, dass die Datenbankdatei AdventureWorks2008R2 in zwei Dateien gesichert wird. Das erste Backup wird auf dem Laufwerk C: abgelegt, das zweite auf Laufwerk D:. Jede Datei erhält dabei einen eigenen Namen, etwa in Form einer fortlaufenden Nummerierung am Ende des Dateinamens.

Abbildung 1: Backup-Datenbanken aufteilen

Wenn Sie die Backup-Dateien auf zwei verschiedenen Laufwerken speichern, können Sie die erforderliche Zeit für die Datenbanksicherungen reduzieren. Der Grund dafür ist, dass der SQL Server während der Sicherung mehrere Threads nutzen kann. Ein weiterer Vorteil von geteilten Datenbanksicherungen ist, dass jede Sicherungsdatei gleich groß ist, so dass Sie den Platz auf den Festplatten effektiver nutzen können. 

Nehmen wir beispielsweise an, dass Ihre vollständige Datenbanksicherung zehn GB groß ist und Sie die Backup-Datei so zerlegen möchten, dass jedes File jeweils höchstens zwei GB groß ist. Wenn Sie dann das Backup ausführen, können Sie die Sicherung so aufteilen, dass sie in fünf verschiedene Dateien geschrieben wird. Sobald die Sicherung abgeschlossen ist, werden Sie feststellen, dass jede Datei etwa zwei GB groß ist.

Ein geteiltes Backup einer Datenbank starten Sie nun, indem Sie im Datenbank sichern -Dialogfeld auf OK klicken. Bitte beachten Sie, dass Sie bei Verwendung von SQL Server 2008 Enterprise Edition, SQL Server 2008 R2 oder SQL Server 2012 Standard und Enterprise Edition die integrierte Datenbank-Backup-Komprimierungsfunktion nutzen können, um die Backup-Größe weiter zu reduzieren.

Aufteilung des Backups mit T-SQL

Verwenden Sie den folgenden T-SQL-Code, um eine vollständige Sicherung der Datenbank AdventureWorks2008R2 durch Aufteilung der Backups auf zwei Dateien auszuführen:

BACKUP DATABASE [AdventureWorks2008R2]

TO DISK = N'C:\DBBackups\AdventureWorks2008R2_SplitFile1.BAK',

DISK = N'D:\DBBackups\AdventureWorks2008R2_SplitFile2.BAK'

WITH NOFORMAT, NOINIT,

NAME = N'AdventureWorks2008R2-Full Database Backup',

SKIP, NOREWIND, NOUNLOAD,

STATS = 10

GO

Wiederherstellen des Datenbank-Backups

Öffnen Sie zum Wiederherstellen des Datenbank-Backups Microsoft SQL Server Management Studio. Machen Sie einen Rechtsklick auf den Ordner Datenbanken und wählen Sie Datenbank wiederherstellen im Dropdown-Menü.

Mehr zum Thema Microsoft SQL Server:

Sicherheitsfunktionen in Microsoft SQL Server richtig einsetzen.

Wann Sie die Enterprise Edition von Microsoft SQL Server kaufen sollten.

Datenbank-Constraints mit SQL Server Management Studio Table Designer erstellen.

Warum sich die Ausgaben für die Microsoft SQL Server Standard Edition lohnen.

Geben Sie im Dialogfeld Datenbank wiederherstellen den Namen der Zieldatenbank an (in unserem Beispiel wird die Datenbank als RestoreDatabaseFromSplitFiles wiederhergestellt). Geben Sie unter Sicherungsmedium auswählen die Quelle für die Wiederherstellung an. Wichtig ist, dass Sie beide Datenbanksicherungsdateien brauchen, um die Datenbank erfolgreich wiederherstellen zu können.

Zum Wiederherstellen der Datenbank aus den geteilten Backup-Dateien klicken Sie im Dialogfeld Datenbank wiederherstellen auf OK. Sobald die Datenbank erfolgreich wiederhergestellt wurde, erhalten Sie ein Dialogfeld mit dem Hinweis, dass die Datenbanksicherung wiederhergestellt wurde.

Wenn Sie die beiden Dateien, mit denen die vollständige Sicherung gemacht wurde, nicht angeben, würde eine Fehlermeldung erscheinen. Daher müssen Sie sicherstellen, dass die beiden geteilten Datenbank-Backup-Dateien so gesichert sind, dass sie im Fall eines Misserfolges Ihre Datenbank erfolgreich wiederherstellen können.

Wiederherstellen einer Datenbank mit T-SQL

Mit folgendem T-SQL-Code lässt sich Datenbank ebenfalls aus mehreren aufgeteilten Dateien wiederherstellen:

RESTORE DATABASE [RestoreDatabaseFromSplitFiles]

FROM DISK = N'C:\DBBackups\AdventureWorks2008R2_SplitFile1.BAK',

DISK = N'D:\DBBackups\AdventureWorks2008R2_SplitFile2.BAK'

WITH

FILE = 1,

MOVE N'AdventureWorks2008R2_Data'  TO
N'D:\DB\RestoreDatabaseFromSplitFiles_Data.mdf',

MOVE N'AdventureWorks2008R2_Log'  TO
N'D:\DB\RestoreDatabaseFromSplitFiles_Log.LDF',

NOUNLOAD,  STATS = 10

GO

Folgen Sie SearchEnterpriseSoftware.de auch auf Twitter, Google+ und Facebook!

Erfahren Sie mehr über Datenbanken

ComputerWeekly.de
Close