Komplette Wiederherstellung einer SQL-Datenbank mit Replikation Dienstag, 9. Juni 2009 14:47 Frage: Wie lässt sich eine defekte SQL-Datenbank komplett mit vorher eingerichteter Replikation wieder herstellen? Lösung: Um eine SQL-Datenbank überhaupt wiederherstellen zu können, ist es zunächst erforderlich, dass im SQL-Server ein entsprechender Wartungsplan für eine vollständige Datenbanksicherung eingerichtet wurde (oder dass manuell angelegte Backups existieren). Ein solcher Wartungsplan muss in einer Replikationsumgebung neben der Hauptdatenbank (die Datenbank, die direkt mit orgAnice verbunden ist) auch die Systemdatenbanken "master" und "distribution" sichern. Ausgehend von einer funktionierenden Sicherung und installiertem SQL-Server Management Studio sind folgende Schritte beim Wiederherstellen zu beachten: 1. Verbinden Sie sich über das Management Studio mit Ihrem SQL-Server 2. Wählen Sie nach einem Rechtsklick auf den Punkt "Datenbanken" im erscheinenden Kontextmenü die Option "Datenbank wiederherstellen" MS SQL-Server Seite 1 3. Wählen Sie nun Ihre gesicherten Datenbanken eine nach der anderen aus und stellen Sie sie in den entsprechenden, vorhandenen Datenbanken wieder her. Hinweise: Die vorhandenen, fehlerhaften Datenbanken müssen vor der Wiederherstellung der Sicherung nicht gelöscht werden. Die Datenbanken können im laufenden Betrieb wiederhergestellt werden. Eine Ausnahme stellt die Datenbank "master" dar. Um diese wiederherzustellen muss der SQL-Server im single user-Modus gestartet werden. Dazu sind folgende Schritte nötig: a) Beenden Sie alle SQL-Dienste (z.B. über die Computerverwaltung) b) Starten Sie den SQL-Server im single user-Modus mit folgendem Befehl: NET START MSSQLSERVER /c /m Wenn Sie eine benannte Instanz haben, lautet der Befehl NET START MSSQL$<Instanzname> /c /m c) Öffnen Sie die Eingabeaufforderung als Administrator d) Geben Sie den Befehl sqlcmd ein um ein Transact-SQL-Script auszuführen e) Verwenden Sie nun in der ersten Zeile den folgenden Befehl: RESTORE DATABASE master FROM DISK = <'Pfad zur Backup-Datei'> WITH REPLACE und betätigen Sie die Eingabetaste. Ein konkretes Beispiel für den Standardpfad: RESTORE DATABASE master FROM DISK = 'C:\Programme\Microsoft SQL Server \MSSQL10.MSSQLSERVER\MSSQL\Backup\master.bak' WITH REPLACE f) Geben Sie in der zweiten Zeile den Befehl GO ein und bestätigen Sie ebenfalls mit der Eingabetaste. g) Das Backup der master-Datenbank wird jetzt wiederhergestellt. Das Ergebnis sollte wie folgt aussehen: MS SQL-Server Seite 2 Zusammengefasst in einer Zeile würde der Befehl folgendermaßen aussehen: sqlcmd -q " Restore database master from disk = 'C:\Programme\Microsoft SQL Server \MSSQL10.MSSQLSERVER\MSSQL\Backup\master.bak'" h) Der SQL-Server Dienst wurde beendet und kann nun im normalen Modus wieder gestartet werden. Suchbegriffe: MS SQL Server Backup Wiederherstellung Replikation MS SQL-Server Seite 3