SQL-Server-Datenbank-Integritätsprüfung

7

Ich bin neu bei SQL Server und habe folgende Frage:

Meine Datenbank ist nicht groß, ungefähr 1 GB, und ich mache regelmäßige Backups mit Hilfe eines Tools von Drittanbietern. Wie kann ich sicher sein, dass ich im Falle eines Fehlers meine Datenbank mit minimalem Verlust wiederherstellen kann?


quelle
2
Eine gute Praxis, die ich auf die harte Tour gelernt habe, ist: Planen Sie nicht nur eine Sicherung, sondern auch die Wiederherstellung. Dies bedeutet auch, dass Sie sich etwas Zeit nehmen können, um Ihre Fähigkeiten bei der Wiederherstellung einer Datenbank aus den Sicherungen nach einer simulierten Katastrophe zu verbessern.
Jean

Antworten:

8

Die einzige Möglichkeit, 100% sicher zu sein, besteht darin, die Sicherungen wiederherzustellen. Wenn Sie auf derselben SQL Server-Instanz wiederherstellen, möchten Sie mit einem neuen Datenbanknamen wiederherstellen und die MOVE-Wiederherstellungssyntax verwenden, um die MDF- und .ldf-Dateien in einem anderen Verzeichnis wiederherzustellen.

Alternativ können Sie auf einer separaten SQL Server-Instanz mit demselben Datenbanknamen wiederherstellen. Auch hier müssen Sie prüfen, ob die MOVE-Syntax relevant ist.

Weitere Informationen finden Sie unter Wiederherstellen der SQL Server-Datenbank an verschiedenen Dateinamen und Speicherorten .

Für zusätzliche Aufmerksamkeit sollten Sie alle Ihre Backups mit einer Prüfsumme erstellen und nach der Überprüfung der Metadatenkonsistenz mit einer RESTORE VERIFYONLY-Prüfung. Die Überprüfung der Wiederherstellung kann mithilfe der hervorragenden Sicherungslösung SQL Server Maintenance Solution von Ola Hallengrens automatisiert werden

Pixeliert
quelle
6
"Wenn Sie nicht versucht haben, Ihr Backup wiederherzustellen, haben Sie kein Backup" - Anon
icc97
5

Kurze Antwort: Testen Sie Ihre Backups und überprüfen Sie die Backup-Häufigkeit.

Es ist schwierig, eine Antwort zu schreiben, die lang genug ist, um dieses Thema richtig anzusprechen. Ich werde meine kurze Antwort ein wenig erläutern und Ihnen einige Links zu weiteren Informationen geben.

Das Testen von Backups ist äußerst wichtig. Das bloße Erstellen von Backups stellt nicht sicher, dass sie nützlich sind. Die meisten Datenbankadministratoren stellen die Sicherungen regelmäßig auf einer anderen Datenbank oder einem anderen Server wieder her - zum Üben und zum Testen der Gültigkeit der Sicherung.

Die Häufigkeit der Sicherungen ist wichtig, um "minimale Verluste" zu beheben. Dies hängt davon ab, wie häufig die Datenbank verwendet wird und, was noch wichtiger ist, wie viel Datenverlust akzeptabel ist. Wenn die Benutzer / Analysten einen ganzen Tag an Daten verlieren und mit der erneuten Eingabe einverstanden sind, benötigen Sie nur tägliche Sicherungen. Wenn sie nur 5 Minuten verlieren können, müssen Sie alle 5 Minuten Protokollsicherungen durchführen, um diese Anforderung zu erfüllen. Die Kommunikation mit den Datenbankbeteiligten ist der Schlüssel zur Ermittlung einer geeigneten Sicherungsstrategie. Die andere Sache, die sie Ihnen sagen können, ist, wie lange es her ist, dass sie wiederherstellen müssen. Wenn es gelegentlich Fehler gibt, die vor bis zu 3 Monaten "zurückgesetzt" werden müssen, muss Ihr Sicherungsplan die Sicherungen 90 Tage lang aufbewahren, damit Sie sie abrufen können.

Auf der Website von Brent Ozar erfahren Sie mehr über Backup-Praktiken und warum und wann Sie sie einsetzen sollten.

Fred Shope
quelle
5

Wie kann ich sicher sein, dass ich im Falle eines Fehlers meine Datenbank mit minimalem Verlust wiederherstellen kann?

Nun, dies hängt völlig vom RPOWiederherstellungspunktziel ( ) und dem Wiederherstellungszeitziel ( RTO) ab, wie sie unter Geschäftsstandards definiert sind. Sie müssen diese Details also griffbereit haben.

RPOHier wird das Datenverlustgeschäft bereit sein zu verlieren, meistens wird es sehr minimal sein. Aber sagen wir 15 Minuten (in unserem Fall), also haben wir vollständige Sicherungen, gefolgt von Differentialen und Protokollsicherungen alle 10-15 Minuten (abhängig davon, wie kritisch die Datenbank ist). Daher ist es sehr wichtig, dass Sie eine geeignete Sicherungsstrategie haben Platz für den Fall einer Katastrophe und Sie müssen sich wieder erholen.

Wenn Sie von oben schließen, kommen wir zu RTOder Zeit, die Sie benötigen, um die Systeme aufzurufen oder das System wieder in einen fehlerfreien Zustand zu versetzen, indem Sie diese Betriebsketten von FULL bis Diff ausführen, um Sicherungen zu protokollieren, je nach Szenario Es ist wichtig, dass Sie geeignete Tests durchführen lassen, um diese Zeit zu erfassen, nicht regelmäßig, sondern proaktiv, um das Geschäft zu beantworten RTO. Auch dies ist nicht technisch, aber als Sicherungsstrategie gut zu wissen.

Anschließend automatisieren Sie den größten Teil Ihrer Sicherung und Wiederherstellung. Dies sollte in Ihrem Fall einfach sein, da Sie Tools von Drittanbietern verwenden. Außerdem müssen Sie testen und überprüfen, ob Ihre Sicherungen funktionieren und ob Sie sie erfolgreich ausführen können restore.

Einige Tipps zum Testen hier .

Nur um hinzuzufügen, falls Backups auf Band gehen, ist es empfehlenswert, sie aufzurufen und zu überprüfen, ob sie fehlerfrei sind restore, um die auf Band gesendeten Backups zu validieren. Nur um sicher zu gehen.

KASQLDBA
quelle
4

Sie sollten RESTOREIhre Sicherungen auf einer anderen SQL Server-Instanz durchführen, um zu überprüfen, ob die Sicherungen in Ordnung sind und wiederhergestellt werden können. Dies jeden Tag zu tun wird bald zu einem Problem werden, daher wäre es ideal, den Prozess mit einem SQL Agent-Job oder einer PowerShell zu automatisieren.

Mit dieser wiederhergestellten Version Ihrer Datenbank können Sie auch Konsistenzprüfungen durchführen, ohne Ihr Produktionssystem zusätzlich zu belasten.

James Anderson
quelle
1

Die beste Prüfung für ein Backup ist natürlich die Wiederherstellung eines Servers, aber es gibt auch andere, weniger radikale Möglichkeiten, dies zu tun. Lassen Sie uns die Optionen CHECKSUM und VERIFYONLY untersuchen.

Die Prüfsumme ist ein Wert, der aus den Datenseitenbytes berechnet wird. Gleiche Datenseiten haben gleiche Prüfsummen. Damit die Prüfsumme auf jeder Seite der Sicherungsdatei aufgezeichnet wird, muss die Option "WITH CHECKSUM" zum Befehl "BACKUP DATABASE" hinzugefügt werden.

Die Option VERIFYONLY WIEDERHERSTELLEN ist eine gute Wahl, um jede Sicherung nach Abschluss der Sicherung zu überprüfen. Leider dauert dies zusätzliche Verarbeitungszeit, aber es ist eine gute Praxis, diese einzurichten.

RESTORE VERIFYONLY FROM DISK = D:\AdventureWorks.bak

Dieser Befehl überprüft die Sicherungsdatei und gibt eine Meldung zurück, ob die Datei gültig ist oder nicht. Wenn es nicht gültig ist, bedeutet dies, dass die Datei nicht für eine Wiederherstellung verwendet werden kann und eine neue Sicherung erstellt werden sollte. Zu beachten ist, dass bei mehreren Sicherungen in einer Datei nur die erste Datei überprüft wird.

Sie können Ihre Datenbanksicherungen testen, aber wenn der Fehler auftritt, verlieren Sie alle Änderungen, die seit der letzten Sicherung vorgenommen wurden.


quelle
VERIFYONLYÜberprüft einfach, ob es sich bei der Datei tatsächlich um eine SQL-Sicherung handelt, und überprüft, ob sie vollständig und lesbar ist. Von MSDN: RESTORE VERIFYONLYVersucht nicht, die Struktur der in den Sicherungsdatenträgern enthaltenen Daten zu überprüfen. Die einzige Möglichkeit, die Funktionsfähigkeit Ihrer Sicherungen zu überprüfen, besteht darin, sie vollständig wiederherzustellen.
Kris Gruttemeyer
0

Sie müssen in regelmäßigen Abständen zwischen den vollständigen Sicherungen Transaktionsprotokollsicherungen durchführen, um die Wiederherstellung Ihrer Datenbank zu einem bestimmten Zeitpunkt zu ermöglichen.

ola.hallengren.com kann Skripte für die Sicherungen bereitstellen.

Stellen Sie sicher, dass sich Ihre Datenbank im vollständigen Wiederherstellungsmodell befindet. Erwägen Sie die Verwendung nativer SQL Server-Sicherungen, wenn Ihre Datenbank nur 1 GB groß ist.

Testen Sie Ihre Backups offensichtlich - stellen Sie sie wieder her und führen Sie DBCC CHECKDB durch, um ihre Integrität sicherzustellen.

Peter
quelle