Erkennen und Bewältigen von Medienfehlern während der Sicherung und Wiederherstellung
In Microsoft SQL Server 2005 und höhere Versionen haben Sie die Möglichkeit, trotz erkannter Fehler eine Datenbank wiederherzustellen. Ein wichtiger neuer Fehlererkennungsmechanismus ist die optionale Erstellung einer Sicherungsprüfsumme, die von einem Sicherungsvorgang erstellt und von einem Wiederherstellungsvorgang überprüft wird. Sie können steuern, ob vom Vorgang auf Fehler geprüft wird, und ob der Vorgang beim Auftreten eines Fehlers beendet oder fortgesetzt wird. Wenn eine Sicherung eine Sicherungsprüfsumme enthält, kann mithilfe von RESTORE- und RESTORE VERIFYONLY-Anweisungen auf Fehler hin geprüft werden.
Hinweis |
---|
Gespiegelte Sicherungen bieten bis zu fünf Kopien (Spiegel) eines Mediensatzes, womit alternative Kopien für die Wiederherstellung zur Verfügung gestellt werden, die durch beschädigte Medien ausgelöst wurden. Weitere Informationen finden Sie unter Verwenden gespiegelter Sicherungsmediensätze. |
Prüfsummen während BACKUP
SQL Server unterstützt drei Prüfsummentypen: eine Prüfsumme auf Seiten, eine Prüfsumme in Protokollblöcken, und eine Sicherungsprüfsumme. Beim Generieren einer Sicherungsprüfsumme wird von BACKUP überprüft, ob die aus der Datenbank gelesenen Daten mit Prüfsummen oder Indikatoren für zerrissene Seiten konsistent sind, die möglicherweise in der Datenbank vorhanden sind.
Von der BACKUP-Anweisung wird optional eine Sicherungsprüfsumme auf dem Sicherungsdatenstrom berechnet. Wenn Seitenprüfsummen oder Informationen zu zerrissenen Seiten auf einer gegebenen Seite vorhanden sind, wird von BACKUP während der Seitensicherung die Prüfsumme, der Status für zerrissene Seiten und die Seiten-ID für die Seite überprüft. Beim Erstellen einer Sicherungsprüfsumme werden von Sicherungsvorgängen keine Prüfsummen zu Seiten hinzugefügt. Seiten werden so gesichert, wie sie in der Datenbank vorgefunden werden, und bleiben durch die Sicherung unverändert. Wegen des Verwaltungsaufwands für das Überprüfen und Generieren von Prüfsummen stellen Sicherungsprüfsummen die potenzielle Gefahr einer Leistungseinbuße dar. Sowohl die Arbeitsauslastung als auch der Sicherungsdurchsatz können davon betroffen sein. Deshalb ist die Verwendung von Sicherungsprüfsummen optional. Wenn Sie sich für das Generieren von Prüfsummen während einer Sicherung entscheiden, behalten Sie den dadurch hervorgerufenen CPU-Verwaltungsaufwand genauso im Auge wie die Auswirkungen auf nebenläufige Arbeitsauslastungen für das System.
Hinweis |
---|
Von BACKUP wird in keinem Fall die Quellenseite auf dem Datenträger oder der Inhalt einer Seite verändert. |
Die folgenden BACKUP-Optionen steuern das Verhalten der Sicherungsprüfsumme:
CHECKSUM
Vom Sicherungsvorgang wird jede Seite auf Prüfsumme und zerrissene Seiten überprüft (wenn aktiviert und verfügbar). Darüber hinaus wird eine Prüfsumme für die gesamte Sicherung generiert.
Wenn eine Prüfsummenüberprüfung während eines Sicherungsvorgangs angefordert wird:
Vor dem Schreiben einer Seite auf das Sicherungsmedium werden von BACKUP die Informationen auf Seitenebene überprüft (Seitenprüfsumme oder Erkennen zerrissener Seiten), soweit vorhanden. Wenn keine dieser Informationen vorhanden ist, kann die Seite vom Sicherungsvorgang nicht überprüft werden und wird unverändert übernommen. Der Inhalt wird zur Gesamtsicherungsprüfsumme hinzugefügt.
Hinweis Weitere Informationen zu Seitenprüfsummen und dem Erkennen von zerrissenen Seiten finden Sie in der PAGE_VERIFY-Option der ALTER DATABASE-Anweisung. Weitere Informationen finden Sie unter ALTER DATABASE (Transact-SQL).
Während der Wiederherstellungszeit generiert die Sicherung zur optionalen Nutzung eine gesonderte Sicherungsprüfsumme und zeichnet diese auf dem Sicherungsmedium auf, unabhängig davon, ob Seitenprüfsummen vorhanden sind.
Der Sicherungssatz erhält die Markierung, dass er Sicherungsprüfsummen enthält (in der has_backup_checksums-Spalte von msdb..backupset). Weitere Informationen finden Sie unter backupset (Transact-SQL).
Hinweis Für Protokollsicherungen werden die Sicherungsprüfsummen generiert und überprüft.
NO_CHECKSUM
Die Seitenüberprüfung und das Generieren von Sicherungsprüfsummen werden ausdrücklich deaktiviert. Dies ist das Standardverhalten.
Steuern der Reaktion auf einen Fehler
Wenn von BACKUP während der Überprüfung ein Seitenfehler festgestellt wird und CHECKSUMS angegeben ist, erzeugt die Sicherung einen Fehler. Die folgenden BACKUP-Optionen steuern dieses Verhalten:
CONTINUE_AFTER_ERROR
BACKUP wird trotz einer ungültigen Sicherungsprüfsumme fortgesetzt. In diesem Fall werden von BACKUP folgende Operationen ausgeführt:
Der Sicherungssatz auf dem Sicherungsmedium wird als fehlerhaft markiert, und die Seite wird in der suspect_pages-Tabelle in der msdb-Datenbank nachverfolgt. Weitere Informationen finden Sie unter suspect_pages (Transact-SQL).
Der Fehler wird im SQL Server-Fehlerprotokoll protokolliert.
Der Sicherungssatz wird mit diesem Fehlertyp in der is_damaged-Spalte von msdb.backupset markiert. Weitere Informationen finden Sie unter backupset (Transact-SQL).
Es wird eine Meldung ausgegeben, dass die Sicherung erfolgreich generiert wurde, aber Seitenfehler enthält.
STOP_ON_ERROR
BACKUP erzeugt einen Fehler, wenn eine Prüfsumme nicht stimmt. Dies ist das Standardverhalten.
Prüfsummen während RESTORE und RESTORE VERIFYONLY
Wenn auf dem Sicherungsmedium Sicherungsprüfsummen vorhanden sind, werden standardmäßig die Sicherungsprüfsummen und Seitenprüfsummen von RESTORE- und RESTORE VERIFYONLY-Operationen überprüft. Wenn keine Sicherungsprüfsummen vorhanden sind, werden beide Wiederherstellungsvorgänge ohne Überprüfung fortgesetzt, weil ohne Sicherungsprüfsumme vom Wiederherstellungsvorgang keine Seitenprüfsummen verlässlich überprüft werden können.
Mithilfe von zwei Optionen, CHECKSUM und NO_CHECKSUM, können Sie das Verhalten von RESTORE und RESTORE VERIFYONLY in Bezug auf die Prüfsummenüberprüfung wie folgt ändern:
CHECKSUM
Wenn Sie ausdrücklich CHECKSUM für einen Wiederherstellungsvorgang anfordern und die Sicherung Sicherungsprüfsummen enthält, werden sowohl die Sicherungsprüfsummen als auch die Seitenprüfsummen wie beim Standardfall überprüft. Wenn allerdings im Sicherungssatz keine Sicherungsprüfsummen vorhanden sind, wird vom Wiederherstellungsvorgang eine entsprechende Fehlermeldung ausgelöst.
NO_CHECKSUM
Die Standardüberprüfung von Prüfsummen durch den Wiederherstellungsvorgang wird ausdrücklich deaktiviert.
Steuern der Reaktion auf einen Fehler
Um das Verhalten eines Wiederherstellungsvorgangs im Fehlerfall steuern zu können, verwenden Sie die folgenden RESTORE- und RESTORE VERIFYONLY-Optionen:
CONTINUE_AFTER_ERROR
Gibt an, dass der Wiederherstellungsvorgang nach dem Auftreten eines Fehlers fortgesetzt wird. Dies ist das Standardverhalten für RESTORE VERIFYONLY. Damit werden Berichte zu Überprüfungsfehlern erzeugt und der Vorgang fortgesetzt, damit so viele Informationen wie möglich für den Sicherungssatz zur Verfügung gestellt werden können. CONTINUE_AFTER_ERROR teilt RESTORE mit, alle Vorgänge weiterhin so gut wie möglich auszuführen. Dadurch wird beispielsweise veranlasst, dass die RESTORE-Option eine ungültige Prüfsumme überspringt.
STOP_ON_ERROR
Gibt an, dass der Wiederherstellungsvorgang angehalten wird und mit dem ersten festgestellten Fehler fehlschlägt. Dies ist das Standardverhalten für RESTORE.