Verstehen der Auswirkung / des Risikos des Deaktivierens der Funktion zum Überprüfen der Sicherungsintegrität bei SQL-Sicherungen

12

Derzeit verwenden wir Standardwartungspläne für Sicherungen auf den SQL Server 2005/2008 / 2008R2 / 2012-Servern in unserer Umgebung, und das Kontrollkästchen "Sicherungsintegrität überprüfen" wurde immer aktiviert.

Einige der Sicherungen dauern sehr lange, daher habe ich empfohlen, diese Option zu deaktivieren, aber das Management muss die Auswirkungen und Risiken dieser Änderung dokumentieren.

Ich verstehe die Verwendung und den Verlauf dieser Option. Es erscheint mir nur unnötig, die Zeit für den Sicherungsjob zu verdoppeln, wenn (meiner Meinung nach) ein Fehler, der wahrscheinlich auftritt, während des Sicherungsschritts und nicht während der Überprüfung auftritt .

Liege ich falsch? Ist es ein minimales Risiko, dies auszuschalten, wenn ich auf Festplatte sichere und kein Band oder ähnliches streame? (Wir sichern über das Netzwerk auf eine EMC DD-800-Backup-Appliance, falls dies relevant ist.)

Gibt es offizielle MS-Empfehlungen, wann dies sicher deaktiviert werden kann?

Führen Sie bei jedem Backup in Ihrer Umgebung eine "Überprüfung" durch? Prüfen Sie sie vor Ort?

BEARBEITEN : Wenn Sie im Wartungsplan die Option "Sicherungsintegrität überprüfen" aktivieren , führt SQL unmittelbar nach jeder Sicherung eine vollständige ÜBERPRÜFUNG DER WIEDERHERSTELLUNG für jede Datenbank durch. Dies ist genauso daten- / e / a-intensiv wie die ursprüngliche Sicherung und verdoppelt (im Grunde) die Gesamtzeit des Sicherungsjobs. Dies ist nicht dasselbe wie das Aktivieren der Option "Prüfsumme" beim Sichern (was meines Wissens im Assistenten nicht möglich ist).

BradC
quelle
Danke an alle. Hinzufügen eines weiteren Links zu meiner eigenen Information
BradC

Antworten:

5

Liege ich falsch? Ist es ein minimales Risiko, dies auszuschalten, wenn ich auf Festplatte sichere und kein Band oder ähnliches streame?

Nein, du hast recht :-)

RESTORE VERIFYONLYonly gewährleistet nicht, dass Sie Ihre Datenbank im Falle einer Beschädigung wiederherstellen können. Es werden von Natur aus keine Integritätsprüfungen durchgeführt.

Eine bessere Möglichkeit besteht darin, Ihre Sicherungen regelmäßig zu erstellen, eine gültige Wiederherstellung auf einem anderen Server durchzuführen und DBCC CHECKDB darauf auszuführen.

Dies ist ein Grund, warum ich kein großer Fan von Wartungsplänen bin, da die GUI nicht viele Optionen backup .. with CHECKSUMbietet, die mit T-SQL möglich sind.

Aus dem Mythos-Blog von Paul Randal

24p) Mit RESTORE… WITH VERIFYONLY wird das gesamte Backup validiert

Nein. Mit VERIFYONLY wird nur überprüft, ob der Sicherungsheader wie ein Sicherungsheader aussieht. Nur wenn Sie die Sicherung mit WITH CHECKSUM erstellen und RESTORE ... WITH VERIFYONLY ausführen und WITH CHECKSUM verwenden, führt die Wiederherstellung umfangreichere Überprüfungen durch, einschließlich der Prüfsumme für die gesamte Sicherung.

Führen Sie bei jedem Backup in Ihrer Umgebung eine "Überprüfung" durch? Prüfen Sie sie vor Ort?

Ich führe die VERIFYONLY nicht durch. Stattdessen mache ich eine Sicherungskopie mit CHECKSUM und lasse sie dann auf einem anderen Server + CHECKDB wiederherstellen. Wenn Sie kreativ sein möchten, können Sie dem statistischen Stichprobenverfahren zur Überprüfung von Datenbanksicherungen folgen .

Dies ist nicht dasselbe wie das Aktivieren der Option "Prüfsumme" beim Sichern (was meines Wissens im Assistenten nicht möglich ist).

Sie können das Ablaufverfolgungsflag 3023 aktivieren, damit die CHECKSUMOption automatisch für den Befehl BACKUP aktiviert wird. Testen Sie wie immer das Verhalten aller Ablaufverfolgungsflags in Ihrer Umgebung!

Das Fazit ist - Wartungspläne fallen zu lassen und eine sinnvollere Sicherungslösung (Hinweis: Olas Sicherungslösung) zu verwenden , mit der Sie sie an Ihre Bedürfnisse anpassen können.

(Wir sichern über das Netzwerk auf eine EMC DD-800-Backup-Appliance, falls dies relevant ist.)

Sichern Sie lokal auf der Festplatte, und führen Sie dann einen PowerShell-Übertragungsauftrag aus, mit dem die Sicherung lokal vom Server auf eine Netzwerkfreigabe (Sicherungsserver) kopiert wird. Das geht schneller als das direkte Kopieren auf eine Netzwerkfreigabe.

Aktivieren Sie außerdem die sofortige Dateiinitialisierung, um das automatische Wachstum von Datendateien zu beschleunigen und die Wiederherstellungszeit zu verkürzen (falls Sie Ihre Datenbanken wiederherstellen müssen). Es ist immer gut, Optionen zur Hand zu haben.

Eine gute Lektüre ist: Backups: Planen einer Wiederherstellungsstrategie

Kin Shah
quelle
Danke für deine ausführliche Antwort. Ich denke, ich kann empfehlen, die Prüfsumme für die Sicherung zu aktivieren, die einen etwas höheren Prozentsatz an Fehlern während des Sicherungsschritts auffängt und hoffentlich das (sehr geringfügige) höhere Risiko ausgleichen sollte, die SICHERUNG ÜBERPRÜFEND zu überspringen. Ich verstehe, was Sie im Hinblick auf regelmäßige Wiederherstellungen auf einem anderen Server empfehlen, aber aufgrund der Größe unserer Umgebung erscheint dies nicht plausibel, außer vielleicht auf der Basis von Stichproben.
BradC
@BradC Freut mich, dass meine Antwort für Sie nützlich ist. Der Kern meiner Antwort ist, TSQLim Gegensatz zu GUI(Wartungsplänen) zu verwenden, damit Sie die Flexibilität nutzen und mit offenen Händen anpassen können. Genau wie zu Ihrer Information wurden in SQL Server 2016 Wartungspläne erweitert, CTP 2.4die von MS als intelligente SQL Server-Wartungspläne bezeichnet werden. Sie integrieren bewährte Vorgehensweisen und können im Handumdrehen optimale Strategien identifizieren. Noch keine GUI kann TSQL schlagen :-)
Kin Shah
Danke @Kin. Ich kenne den vollständig benutzerdefinierten Skriptansatz aus anderen Umgebungen. Dies kann natürlich Probleme mit Fehlern und der Skriptwartung haben. Wir evaluieren einige Komprimierungsagenten von Drittanbietern, daher werden möglicherweise benutzerdefinierte Skripts erforderlich sein.
BradC
2

Die Quintessenz ist, dass Sie nicht völlig sicher sein können, dass eine bestimmte Sicherungsdatei in Ordnung ist, wenn Sie nicht irgendwo eine Datenbankwiederherstellung durchführen.

Der ideale Test zur Überprüfung Ihrer Sicherungen besteht darin, eine Umgebung einzurichten, in der die Datenbanksicherungen und die Datenbankprotokollsicherungen als Teil Ihres täglichen Prozesses ständig wiederhergestellt werden. Dies ist einer der Vorteile des Log-Versands ...

Wenn Sie sich dennoch nur an die Überprüfung halten möchten, können Sie eine Umgebung einrichten, in der dies nur möglich ist. Dies würde die Arbeit von Ihrem (vermutlich) Produktionsserver entlasten und die Auftragszeit verkürzen.

Haben Sie schließlich darüber nachgedacht, von Wartungsplänen abzuweichen? Skripte wie die von Ola gelten nur für Backups und Wartungsarbeiten: https://ola.hallengren.com/

Peter Schofield
quelle
In Zukunft werden wir möglicherweise von Wartungsplänen Abstand nehmen, da wir einige Sicherungsagenten von Drittanbietern evaluieren (die für die Arbeit mit unserer speziellen Sicherungs-Appliance vorgesehen sind). Ich gehe davon aus, dass hierfür benutzerdefinierte Skripte erforderlich sind, ähnlich den von Ola entwickelten.
BradC
1

Technisch gesehen entspricht die Wiederherstellung nur der Durchführung einer Wiederherstellung, es gibt jedoch keine bessere Überprüfung, ob die Datenbank tatsächlich wiederhergestellt wurde, um zu überprüfen, ob eine gültige Sicherung vorliegt. Wir hatten eine Instanz, bei der nur die Überprüfung bestanden hat, die Datenbank jedoch aufgrund von Beschädigung nicht wiederhergestellt werden konnte. Mein Punkt ist, dass ich nicht mit dieser Überprüfung rechne, da die Sicherung in Ordnung ist. Wir haben jetzt ein System entwickelt, das alle unsere Datenbanken auf einer separaten Instanz wiederherstellt, um ihre Gültigkeit zu überprüfen. Dies ist natürlich nicht immer möglich. Probieren Sie also eine bestimmte Datenbank wöchentlich aus. Long und Short vertrauen nicht zu 100%.

Gelder
quelle
Stimmt, aber ich bin nicht sicher, ob dies meine Frage wirklich beantwortet, da ich empfehle , RESTORE VERIFYONLY in unserer Umgebung auszuschalten. Es sei denn, Sie meinen: "Da nur eine vollständige Wiederherstellung die Lebensfähigkeit des Backups bestätigt, erhöht das Deaktivieren dieser Option das Risiko nicht nennenswert."
BradC
Richtig, der einzige echte Check imo ist die tatsächliche Durchführung einer Wiederherstellung für echte
Gelder