Ein kleines How to für die Sicherungsmethoden für den SQL 2000
Autor: Marcel van der Pütten Weblog: http://www.vdpuetten.de E-Mail:
Diese E-Mail Adresse ist gegen Spam Bots geschützt, du musst Javascript aktivieren, damit du sie sehen kannst
Stand: 12.12.2005
Sicherungsmethoden für einen Microsoft SQL Server 2000
1. Sicherung der Systemdatenbanken 2. Sicherung der Benutzerdatenbanken 3. Sicherungskonzept 4. Durchführen einer vollständigen Datenbanksicherungen 5. Wiederherstellen einer vollständiger Datenbanksicherungen
Sollte der Ernstfall eintreten und der Datenbestand eines Microsoft SQL Servers 2000 wiederhergestellt werden müssen, ist eine „richtige" Datensicherung unerlässlich wichtig. Dabei müssen sowohl die Systemdatenbanken als auch die Benutzerdatenbanken regelmäßig gesichert und vor allem auch überprüft werden. Dazu gibt es mehrere Wege:
1. Sicherung der Systemdatenbanken
1.1 master Die wohl wichtigste Datenbank ist die Systemdatenbank „master". Diese speichert Informationen über die Systemkonfiguration, Benutzerdatenbanken und Konten. Wenn die master-DB zerstört ist, kann der SQL Server nicht mehr gestartet werden. Eine Sicherung der master-DB sollte immer erfolgen, wenn einer dieser Schritte durchgeführt wurde:
- Erstellen, Umbennen oder Löschen einer Benutzerdatenbank
- Erstellen, Löschen oder Ändern von Login-Konten
- Erstellen oder Löschen von Sicherungsmedien
- Änderungen an Datenbankoptionen
1.2 msdb Die msdb-DB speichert alle automatisierten Verwaltungsaufgaben für Benutzerdatenbanken und das komplette Server-System, die vom SQL-Server Agent durchgeführt werden. Betroffen hiervon sind z.B. die Warnmeldungen, oder die Datensicherungsaufträge. Die DB sollte immer dann gesichert werden, wenn Änderungen am SQL-Server Agent vorgenommen wurden. Bei einer Beschädigung der msdb-DB müssten alle Datensicherungsaufträge und Warnungen neu erstellt werden.
1.3 model Die Systemdatenbank „model" speichert die Voreinstellungen, die bei der Erstellung einer neuer Benutzerdatenbank verwendet werden. Die model-DB muss nur dann gesichert werden, wenn Änderungen an den Voreinstellungen vorgenommen wurden.
1.4 tempdb In dieser Systemdatenbank werden nur tempörare Arbeitstabellen gespeichert. Bei jedem Systemstart wird die Datenbank neu erstellt und muss deshalb auch nicht mitgesichert werden.
Allgemein wird empfohlen, für die Systemdatenbanken eine vollständige Datensicherung vorzunehmen. Für die master-DB ist dies zwingend erforderlich (http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q285288) . Bei msdb und model könnten zwar auch differenzielle Sicherungen durchgeführt werden, doch würden diese Verfahren wg. der geringen Größe dieser Datenbanken unnötig viel Aufwand bei der Wiederherstellung in Anspruch nehmen.
2. Sicherung der Benutzerdatenbanken
Benutzerdatenbanken verändern sich kontinuierlich durch Useraktionen. Aus diesem Grund müssen die Benutzerdatenbanken regelmäßig gesichert werden. In der Regel sind Benutzerdatenbanken jedoch viel größer als Systemdatenbanken, womit eine Datenbanksicherung in zeitlich kürzeren Abständen oft schwierig ist. Der Microsoft SQL-Server 2000 stellt mehrere Sicherungsmethoden zur Verfügung:
- vollständige Datenbanksicherung
- Differenzialsicherung
- Sicherung des Transaktionsprotokolls
2.1 Vollständige Datenbanksicherung Bei dieser Sicherungsmethode wird der gesamte aktuelle Datenbebstand der ausgewählten Datenbank gesichert und ein Teil des Transaktionsprotokolls, welches alle Änderungen, die nach dem Start der Sicherung an der Datenbank vorgenommen werden, sichert. Somit können Sie mit einer vollständigen Sicherung den genauen Status der Daten in der Datenbank wiederherstellen, den diese am Ende einer Sicherungsvorganges besessen hat.
Bei einer möglichen Wiederherstellung wird folgendes benötigt: - die letzte vollständige Datenbanksicherung
2.2 Differentielle Datensicherung Die Differenzialsicherung umfasst alle Änderungen des Datenbestandes seit der letzten vollständigen Datenbanksicherung. Eine Differenzialsicherung benötigt wesentlich weniger Zeit und verbraucht auch weniger Speicherplatz als eine vollständige Datenbanksicherung.
Bei einer möglichen Wiederherstellung wird folgendes benötigt: - die letzte vollständige Datenbanksicherung - die letzte Differenzialsicherung
2.3 Sicherung des Transaktionsprotokolls Die Sicherung des Transaktionsprotokolls erfasst alle Transaktionen, die seit der letzten Sicherung auf der Datenbank ausgeführt wurden. Nach der Sicherung werden abgeschlossenen Transaktionen aus dem Transaktionsprotokoll gelöscht.
Bei einer möglichen Wiederherstellung wird folgendes benötigt: - die letzte vollständige Datenbanksicherung - alle Sicherungen des Transaktionsprotokolls seit der letzten vollständigen Datenbanksicherung
Sollte auch eine Differenzialsicherung erstellt worden sein, wird folgendes für eine Wiederherstellung benötigt:
- die letzte vollständige Datenbanksicherung - die letzte Differenzialsicherung - alle Sicherungen des Transaktionsprotokolls seit der letzten Differenzialsicherung
3. Sicherungskonzept
Um einen kleinen Überblick zu bekommen, werde ich hier mal die Beispiele aus meiner SQL-Server-Schulung aufführen:
3.1 Beispiel für eine vollständige Datenbanksicherung Die Datenbank ist mit 350 MB relativ klein. Änderungen am Datenbestand erfolgen nur selten und können im Notfall für einen Tag relativ schnell nachgearbeitet werden.
Vorschlag: eine vollständige Datenbanksicherung erfolgt dann, wenn möglichst niemand an der Datenbank arbeitet. In der Regel wird dazu ein Wartungsplan eingerichtet, der die Datenbank täglich in der Nacht sichert.
3.2 Beispiel für eine Differenzialsicherung Die zu sichernde Benutzerdatenbank ist mit 10 GB recht groß. Änderungen am Datenbestand erfolgen nur selten und nur zwischen Montag, 7.00 Uhr und Freitag 18.00 Uhr. Ein maximaler Datenverlust von 12 Stunden kann relativ schnell nachgearbeitet werden.
Vorschlag: Jeden Freitag erfolgt um 20.00 Uhr eine vollständige Datensicherung. Von Montag bis Donnerstag erfolgt jeweils eine Differenzialsicherung um 12.00 und 20.00 Uhr. Am Freitag erfolgt um 12.00 Uhr eine Differenzialsicherung und um 20.00 wieder eine vollständige Datenbanksicherung.
Sollte in diesem Fall am Dienstag um 18.30 Uhr die Datenbank beschädigt werden, sind folgende Schritt notwendig:
1. Wiederherstellung der vollständigen Datenbanksicherung vom Freitag 2. Wiederherstellung der Differenzialsicherung vom Dienstag um 12.00 Uhr Fazit: Die Daten von 12.00 Uhr bis 18.30 Uhr sind verloren.
Allerdings: Ist das Transaktionsprotokoll (weil nur die Datenbank beschädigt wurde und nicht die Festplatte, oder das Transaktionsprotokoll auf einer anderen Festplatte gespeichert wird) vorhanden, so können allerdings auch die „abgeschlossenen" Transaktionen für den fehlenden Wiederherstellungszeitraum wiederhergestellt werden.
3.3 Beispiel für die Sicherung mittels Transaktionsprotokoll Die Datenbank hat eine Größe von 1 GB. Rund um die Uhr werden viele Änderungen am Datenbestand vorgenommen. In den frühen Morgenstunden greifen am wenigsten Benutzer auf die Datenbank zu. Es kann maximal ein Datenverlust von 1 Stunde akzeptiert werden.
1. Es wird täglich eine vollständige Datenbanksicherung um 4.00 Uhr erstellt 2. Stündlich erfolgt eine Sicherung des Transaktionsprotokolls
Sollte in diesem Fall an einem beliebigen Tag um 18.30 Uhr die Datenbank beschädigt werden, sind folgende Schritte notwendig:
1. Wiederherstellung der vollständigen Datenbanksicherung 2. Anschließend werden der Reihe nach alle gesicherten Transaktionsprotokolle von 5.00 Uhr bis 18.00 Uhr wiederhergestellt. Die Daten von 18.00 Uhr bis 18.30 sind verloren.
Allerdings: Ist das Transaktionsprotokoll (weil nur die Datenbank beschädigt wurde und nicht die Festplatte, oder das Transaktionsprotokoll auf einer anderen Festplatte gespeichert wird) vorhanden, so können allerdings auch die für den fehlenden Wiederherstellungszeitraum „abgeschlossenen" Transaktionen wiederhergestellt werden.
3.4 Beispiel für die Sicherung mittels Differenzialsicherung und Transaktionsprotokoll Die zu sichernde Datenbank ist rd. 500 GB groß. Rund um die Uhr werden viele Veränderungen am Datenbestand vorgenommen, allerdings nicht am Sonntag. Es kann maximal ein Datenverlust von 1 Stunde hingenommen werden.
1. Jeden Sonntag um 1.00 Uhr erfolgt eine vollständige Datensicherung 2. An jedem anderen Wochentag wird stündlich das Transaktionsprotokoll gesichert 3. Alle 6 Stunden wird anstelle des Transaktionsprotokolls eine Differenzialsicherung vorgenommen.
Sollte in diesem Fall an einem Donnerstag um 19.30 Uhr die Datenbank beschädigt werden, sind folgende Schritte notwendig:
1. Wiederherstellung der vollständigen Datenbanksicherung vom Sonntag um 1.00 Uhr 2. Wiederherstellung der Differenzialsicherung vom Donnerstag um 18.00 Uhr 3. Wiederherstellung des Transaktionsprotokolls vom Donnerstag 19.00 Uhr. Die Daten von 19.00 Uhr bis 19.30 sind verloren.
Allerdings: Ist das Transaktionsprotokoll (weil nur die Datenbank beschädigt wurde und nicht die Festplatte, oder das Transaktionsprotokoll auf einer anderen Festplatte gespeichert wird) vorhanden, so können allerdings auch die für den fehlenden Wiederherstellungszeitraum „abgeschlossenen" Transaktionen wiederhergestellt werden.
4. Durchführen einer vollständigen Datenbanksicherungen
So führen Sie eine vollständige Datenbanksicherung über den SQL Server Enterprise Manager durch:
Öffnen Sie Enterprise Manager, und stellen Sie eine Verbindung zum Server her. Erweitern Sie den Ordner „Datenbanken", und klicken Sie dann mit der rechten Maustaste auf die zu sichernde Datenbank.

Über die Option „Alle Tasks" und „Datenbank sichern" kommen Sie in das Dialogfeld für die Datenbanksicherung.

Geben Sie in das Feld „Name" einen Namen für die Sicherung ein. Über die Optionen „Sicherung" können Sie auswählen, welchen Sicherungstyp sie durchführen möchten. Lassen Sie das Optionsfeld „Datenbank - vollständig aktiviert", wenn Sie eine vollständige Sicherung der Datenbank durchführen wollen. Aktivieren Sie das Kontrollkästchen „Vorhandene Medien überschreiben", um die Zieldatei oder das Zielmedium zu initialisieren, oder aktivieren Sie das Kontrollkästchen „An Medien anfügen", um die aktuelle Sicherung an eine vorhandene Datei oder ein vorhandenes Medium anzuhängen. Klicken Sie auf die Schaltfläche „Hinzufügen", um ein Ziel für die Sicherung auszuwählen.
 Wählen Sie eine vorhandene Datei aus, oder geben Sie einen neuen Dateinamen ein. Klicken Sie auf „OK", nachdem Sie eine Datei ausgewählt haben. Nachdem alle erforderlichen Optionen aktiviert sind, klicken Sie auf die Schaltfläche „OK", um die Sicherung zu starten, oder aktivieren Sie das Kontrollkästchen Zeitplan, um einen Zeitplan für die regelmäßige Ausführung dieser Operation aufzustellen.

Wenn die Sicherung unmittelbar startet, wird das Dialogfeld „Fortschritt der Sicherung" angezeigt, während die Sicherung durchgeführt wird.

Nach dem erfolgreichen Abschluss der Sicherung wird das Dialogfeld angezeigt:

5. Wiederherstellen einer vollständiger Datenbanksicherungen
So stellen Sie eine vollständige Datenbanksicherung in derselben Datenbank wieder her: Öffnen Sie SQL Server Enterprise Manager, und stellen Sie eine Verbindung zu dem Server her, auf dem die Sicherung wiederhergestellt werden soll.

Klicken Sie mit der rechten Maustaste auf die Datenbank, und wählen Sie „Alle Tasks" und anschließend „Datenbank wiederherstellen". Das Dialogfeld „Datenbank wiederherstellen" wird angezeigt:

Wählen Sie aus der Liste die Datenbank aus, für die die Sicherung wiederhergestellt werden soll.
Im Abschnitt „Parameter" des Dialogfelds „Datenbank wiederherstellen" wird eine Liste aller für die ausgewählte Datenbank durchgeführten Sicherungen angezeigt. Wählen Sie aus der Sicherungsliste die wiederherzustellende Sicherung aus.

Die Registerkarte „Optionen" des Dialogfelds „Datenbank wiederherstellen" bietet Optionen zum Auswählen des abschließenden Wiederherstellungszustands, zum Ändern des Dateinamens und zum Festlegen der Bandoptionen für die Wiederherstellung. Wählen Sie in diesem Dialogfeld die geeigneten Einstellungen aus.
Klicken Sie auf OK, um die Wiederherstellung zu starten. Das Dialogfeld „Fortschritt der Wiederherstellung" wird angezeigt während die Wiederherstellung durchgeführt wird:

Wenn die Wiederherstellung abgeschlossen ist, wird das Dialogfeld geöffnet. Klicken Sie auf OK, um das Dialogfeld zu schließen.
 |