MSSQL Server – Das Copy-Only Backup

Wer sich mit dem Thema Backup im Microsoft SQL Server beschäftigt ist mit ziemlicher Sicherheit schon über das Copy-Only Backup (zu Deutsch: Kopie Sicherung) gestoßen. Was dieser Backup Type bedeutet und wo man ihn einsetzten kann/sollte gehen die Meinungen auseinander. Aus diesem Grund möchte ich den technischen Hintergrund und die Unterschiede zwischen „Normalen“ Backups und den Copy-Only Backups vorstellen und anschließend zeigen wann man diese sinnvoll einsetzen kann.

Das „normale“ Backup

Der SQL Server unterscheidet zunächst einmal die Backups nach Vollbackup, Differenzbackup und Transaktionslogbackup.

Vollbackup

Ein Vollbackup enthält immer alle (nicht leeren) Datenseiten sogenannte Pages der Datenbank und den aktiven Teil des Transaktionslogs. Nur beide Teile zusammen ergeben einen konsistenten Datenbestand für die Rücksicherung.

Differenzbackup

Ein Differenzbackup beinhaltet alle Pages welche sich seit dem letzten Vollbackup geändert haben. Hierfür führt der SQL Server in jeder Datenbank eine Historie für Änderungen (Differential Changed Map – DCM).

https://technet.microsoft.com/en-us/library/ms345448%28v=sql.105%29.aspx?f=255&MSPPError=-2147217396

Den Inhalt dieser Page kann man sich z.B. für die Master DB über den TSQL Befehle anzeigen lassen.

dbcc traceon(3604)
dbcc page(0,1,6,3)  

Diff Page

https://blogs.msdn.microsoft.com/sqlserverstorageengine/2006/06/10/how-to-use-dbcc-page/

Bei einem Differenzbackup werden nun nur die Pages gesichert welche einen Eintrag in der DCM Page haben.

Transaktionslogbackup

Bei dem Transaktionslogbackup wird lediglich der noch nicht gesicherte Inhalt des Transaktionslogs gesichert.

Unterschied Voll- und Copy-Only Backup

Tatsächlich besteht der einzige Unterschied zwischen einem regulären Vollbackup und einem Copy-Only Backup einzig in der Tatsache, dass ein Copy-Only Backup die Differential Changed Map Page nicht leert. Eine Differenzsicherung nach einem Copy-Only Backup würde immer noch alle Pages enthalten, welche sich nach dem letzten regulären Vollbackup geändert haben.

Auf das Transaktionslogbackup hat die Copy-Only Sicherung keinen Einfluss.

Die weit verbreitete Aussage, dass ein Copy-Only Backup nicht als Basis für die Transaktionslogbackups dient stimmt natürlich! Aber die selbe Aussage gilt auch für die normalen Vollbackups. Solange ich eine ununterbrochene Kette an Transaktionslogs habe, spielt es technisch keine Rolle, ob ich das letzte Vollbackup als Basis nehme oder das 7te oder 351te Vorgängerbackup.

Nur das Differenzbackup benötigt ein reguläres Vollbackup als Basis für die Wiederherstellung.

Nutzen / Anwendungsfälle

Heute ist der größte Nutzen für ein Copy-Only Backup bei den AlwaysOn Verfügbarkeitsgruppen in der Enterprise Edition zu finden. Hier hat man die Möglichkeit die Vollbackups und Transaktionslogbackups auf einem sekundären Server zu machen wodurch die Nutzer keine Performance Einbußen durch das Backup haben. Da aber sekundäre Replikate keinen Schreibzugriff erlauben, kann die DCM Page nicht zurückgesetzt werden. Daher kommt in diesem Szenario nur das Copy-Only Backup infrage. Gleichzeigt bedeutet dies, aber dass man auf Differenzbackups verzichten muss, da diesen auf einen veralteten Änderungsstand basieren.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s