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?
Antworten:
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
quelle
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.
quelle
Nun, dies hängt völlig vom
RPO
Wiederherstellungspunktziel ( ) und dem Wiederherstellungszeitziel (RTO
) ab, wie sie unter Geschäftsstandards definiert sind. Sie müssen diese Details also griffbereit haben.RPO
Hier 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
RTO
der 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 beantwortenRTO
. 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.quelle
Sie sollten
RESTORE
Ihre 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.
quelle
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.
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 VERIFYONLY
Versucht 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.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.
quelle