Differenzielle Sicherungen von SQL Server 2008 R2 sind viel größer als erwartet


4

Wir haben mehrere SQL Server 2008 R2-Datenbanken, für die wir jeden Sonntag eine vollständige Sicherung und dann von Montag bis Samstag differenzielle Sicherungen durchführen.Wir führen auch alle 10 Minuten Transaktionsprotokollsicherungen durch.

Die erste differenzielle Sicherung am Montag ist normalerweise recht klein, aber von Dienstag bis Samstag sind sie viel größer, aber ähnlich groß.

Ich habe einige Skripte verwendet, die die differenzielle Sicherungsgröße vorhersagen, z. B. https://dougzuck.com/sql-differential-backup-size-prediction und http://www.sqlskills.com/blogs/paul/new-script-how-much-of-the-database-has-changed-since-the-last-full-backup/ , und sie sagen eine sehr viel kleinere Sicherungsgröße voraus.

Beispiele sind:

database1, full backup size 5Gb, diff size 3.5Gb, predicted diff size 84Mb
database2, full backup size 40Gb, diff size 1Gb, predicted diff size 17Mb

Wie Sie sehen, unterscheiden sich die tatsächlichen Größen erheblich und können bereits nach wenigen Tagen halb so groß sein wie das vollständige Backup.

Ich weiß, dass Benutzer die tatsächlichen Daten nicht in großem Umfang erstellen oder ändern.Soweit ich das beurteilen kann, finden zwischen der vollständigen und der differenziellen Sicherung keine Indexwiederherstellungen oder anderen Verwaltungsaufgaben statt.

Es ist, als ob am Montag etwas passiert, wodurch die Differenzen ab Dienstag sehr groß werden.Sicherungskomprimierung wird nicht verwendet.

Ich habe mir die Transaktionsprotokollsicherungen angesehen und der Durchschnitt der täglichen Gesamtgröße liegt bei etwa 40 MB.Ich weiß, es ist nicht so einfach, aber 7 Tage bei 40Mb = 280Mb.Erklärt nicht die differenzielle 3,5-Gbit-Sicherung!Es sind keine riesigen Transaktionsprotokolldateien vorhanden.Es finden keine Massenladevorgänge statt.

+1

Werden nach dem kleinen Unterschied vom Montag und dem großen Unterschied vom Dienstag riesige Protokollsicherungsdateien erstellt?In diesem Fall würden Sie einen Zeitrahmen für massive Datenänderungen erhalten.Gibt es irgendwelche Massenladevorgänge? Natürlich führen Sie alle Datenänderungen, die im Dienstagsunterschied während des Restes der Woche auftreten, durch, bis eine neue volle Ladung aufgenommen wird. 04 aug. 162016-08-04 09:49:36

  0

Ich habe immer herausgefunden, dass die Diff-Sicherung nur aufgrund einiger großer Änderungen wächst, und ich möchte Sie daher erneut bitten, noch einmal zu überprüfen, ob alle Daten am Montag in die Datenbank eingegangen sind 04 aug. 162016-08-04 09:53:30

2

Ein kleines Transaktionsprotokoll bedeutet jedoch nicht, dass der Unterschied nicht klein sein wird.Ein diff-Backup sieht ausdie physische SeitenebeneSeit SQL Backups sichern Datenbankseiten.Wenn in einer Seite zu einem beliebigen Zeitpunkt nach a 1 Datenbit geändert wirdfullBeim Sichern wird ein Flag aktiviert, damit die DB-Engine es sichern kann, wenn adiffist vergeben.

Transaktionsprotokolle zeichnen weitgehend die minimalen Daten auf, die zum Abrufen der Daten erforderlich sindinnerhalbdie seiten sind wieder so wie sie vorher waren, daher könnte es viel kleiner sein.Wenn Sie nur 1 Datenbit geändert haben, werden Sie nur diese Änderung in Ihrem Protokoll wiedergeben.Wenn derdiffDas Backup läuft, die gesamte 8k-Seite wird gesichert.

Somit sichert ein Diff-Backup IMMER die gesamte Seite, wenn dort auch nur 1 Bit geändert wird.In einem Transaktionsprotokoll wird aufgezeichnet, was erforderlich ist, um diese Seite auf den vorherigen transaktionskonsistenten Status zurückzusetzen. In diesem Fall kann es sich um eine winzige Sicherung handeln, die Diff-Sicherung sichert jedoch weiterhin die gesamte Seite.

Wenn Sie weitere Informationen benötigen, sehen Sie sich das Video zu Backup Internals auf der Technet MCM-Site an:https://technet.microsoft.com/en-us/dn912438#mcm-readiness

Hast du irgendwelche Logs?Wenn nicht, überprüfen Sie Ihre Standard-Ablaufverfolgung.Zumindest einige minimale Informationen.Wenn Sie keine Protokollierung haben, ist dies ein guter Zeitpunkt, um zu beginnen.