Wiederherstellen einer Datenbank an einem neuen Speicherort (SQL Server)

In diesem Thema wird beschrieben, wie Sie in SQL Server 2012 mithilfe von SQL Server Management Studio oder Transact-SQL eine SQL Server-Datenbank auf einem neuen Speicherort wiederherstellen können und sie optional umbenennen können. Sie können eine Datenbank in ein neues Verzeichnis verschieben oder eine Kopie einer Datenbank entweder auf der gleichen oder einer anderen Serverinstanz erstellen.

In diesem Thema

  • Vorbereitungen:

    Einschränkungen

    Voraussetzungen

    Empfehlungen

    Sicherheit

  • So stellen Sie eine Datenbank in einem neuen Speicherort wieder her und benennen diese optional um mit

    SQL Server Management Studio

    Transact-SQL

  • Verwandte Aufgaben

Vorbereitungen

Einschränkungen

  • Nur der Systemadministrator, der eine vollständige Datenbanksicherung wiederherstellt, darf die wiederherzustellende Datenbank aktuell verwenden.

Voraussetzungen

  • Im vollständigen oder im massenprotokollierten Wiederherstellungsmodell muss das Protokoll der aktiven Transaktion gesichert werden, bevor eine Datenbank wiederhergestellt werden kann. Weitere Informationen finden Sie unter Sichern eines Transaktionsprotokolls (SQL Server).

Empfehlungen

  • Um eine verschlüsselte Datenbank wiederherstellen zu können, muss das Zertifikat oder der asymmetrische Schlüssel verfügbar sein, das oder der zum Verschlüsseln der Datenbank verwendet wurde. Ohne das Zertifikat oder den asymmetrischen Schlüssel kann die Datenbank nicht wiederhergestellt werden. Darum muss das Zertifikat, das zur Verschlüsselung des Verschlüsselungsschlüssels für die Datenbank verwendet wurde, so lange beibehalten werden, wie die Sicherung benötigt wird. Weitere Informationen finden Sie unter SQL Server-Zertifikate und asymmetrische Schlüssel.

  • Informationen zu weiteren Überlegungen zum Verschieben von Datenbanken finden Sie unter Kopieren von Datenbanken durch Sichern und Wiederherstellen.

  • Wenn Sie eine SQL Server 2005- oder SQL Server 2008-Datenbank in SQL Server 2012 wiederherstellen, wird die Datenbank automatisch wiederhergestellt. In der Regel ist die Datenbank sofort verfügbar. Wenn eine SQL Server 2005-Datenbank jedoch Volltextindizes aufweist, werden diese beim Upgrade entweder importiert, zurückgesetzt oder neu erstellt, abhängig von der Einstellung der upgrade_option-Servereigenschaft. Wenn die Upgradeoption auf Importieren (upgrade_option = 2) oder Neuerstellen (upgrade_option = 0) festgelegt ist, sind die Volltextindizes während des Upgrades nicht verfügbar. Je nach Menge der indizierten Daten kann der Importvorgang mehrere Stunden dauern; die Neuerstellung sogar bis zu zehnmal länger. Wenn die Upgradeoption auf Importieren festgelegt ist und kein Volltextkatalog verfügbar ist, werden die zugehörigen Volltextindizes neu erstellt. Um die Einstellung der Servereigenschaft upgrade_option zu ändern, verwenden Sie sp_fulltext_service.

Sicherheit

Aus Sicherheitsgründen empfiehlt es sich nicht, Datenbanken aus unbekannten oder nicht vertrauenswürdigen Quellen anzufügen oder wiederherzustellen. Solche Datenbanken können bösartigen Code enthalten, der möglicherweise unbeabsichtigten Transact-SQL-Code ausführt oder Fehler verursacht, indem er das Schema oder die physische Datenbankstruktur ändert. Bevor Sie eine Datenbank aus einer unbekannten oder nicht vertrauenswürdigen Quelle verwenden, führen Sie auf einem Nichtproduktionsserver DBCC CHECKDB in der Datenbank aus. Überprüfen Sie außerdem den Code in der Datenbank, beispielsweise gespeicherte Prozeduren oder anderen benutzerdefinierten Code.

Berechtigungen

Ist die wiederherzustellende Datenbank nicht vorhanden, muss der Benutzer über CREATE DATABASE-Berechtigungen verfügen, um RESTORE ausführen zu können. Ist die Datenbank vorhanden, werden RESTORE-Berechtigungen standardmäßig den Mitgliedern der festen Serverrollen sysadmin und dbcreator sowie dem Besitzer (dbo) der Datenbank erteilt.

RESTORE-Berechtigungen werden Rollen erteilt, in denen Mitgliedsinformationen immer für den Server verfügbar sind. Da die Mitgliedschaft einer festen Datenbankrolle nur geprüft werden kann, wenn die Datenbank unbeschädigt ist und auf sie zugegriffen werden kann, was beim Ausführen von RESTORE nicht immer der Fall ist, verfügen Mitglieder der festen Datenbankrolle db_owner nicht über RESTORE-Berechtigungen.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von SQL Server Management Studio

So stellen Sie eine Datenbank in einem neuen Speicherort wieder her und benennen diese optional um

  1. Stellen Sie eine Verbindung mit der entsprechenden Instanz von SQL Server Database Engine (Datenbankmodul) her, und klicken Sie danach im Objekt-Explorer auf den Servernamen, um die Serverstruktur zu erweitern.

  2. Klicken Sie mit der rechten Maustaste auf Datenbanken, und klicken Sie dann auf Datenbank wiederherstellen. Das Dialogfeld Datenbank wiederherstellen wird geöffnet.

  3. Legen Sie Quelle und Speicherort der wiederherzustellenden Sicherungssätze auf der Seite Allgemein mithilfe des Abschnitts Quelle fest. Wählen Sie eine der folgenden Optionen aus:

    • Datenbank

      Wählen Sie die wiederherzustellende Datenbank aus der Dropdownliste aus. Die Liste enthält nur Datenbanken, die entsprechend dem Sicherungsverlauf von msdb gesichert wurden.

    HinweisHinweis

    Wenn die Sicherung von einem anderen Server abgerufen wird, verfügt der Zielserver über keine Sicherungsverlaufsinformationen für die angegebene Datenbank. Wählen Sie in diesem Fall Sicherungsmedium aus, um die wiederherzustellende Datei oder das Medium manuell anzugeben.

    1. Sicherungsmedium

      Klicken Sie auf die Schaltfläche zum Durchsuchen (...), um das Dialogfeld Sicherungsmedien auswählen zu öffnen. Wählen Sie im Feld Sicherungsmedientyp einen der aufgeführten Medientypen aus. Wenn Sie ein oder mehrere Medien für das Feld Sicherungsmedien auswählen möchten, klicken Sie auf Hinzufügen.

      Klicken Sie nach dem Hinzufügen der gewünschten Medien zum Listenfeld Sicherungsmedien auf OK, um zur Seite Allgemein zurückzukehren.

      Wählen Sie im Listenfeld Quelle: Sicherungsmedium: Datenbank den Namen der Datenbank aus, die wiederhergestellt werden soll.

      Hinweis   Diese Liste ist nur verfügbar, wenn Sicherungsmedium ausgewählt wird. Nur Datenbanken mit Sicherungen auf dem ausgewählten Medium stehen zur Verfügung.

  4. Im Abschnitt Ziel wird das Feld Datenbank automatisch mit dem Namen der Datenbank aufgefüllt, die wiederhergestellt werden soll. Geben Sie zum Ändern des Datenbanknamens den neuen Namen ins Feld Datenbank ein.

  5. Übernehmen Sie im Feld Wiederherstellen in den Standardwert Bis zur zuletzt erstellten Sicherung, oder klicken Sie auf Zeitachse, um auf das Dialogfeld Sicherungszeitachse zuzugreifen und darin manuell einen Zeitpunkt zum Beenden des Wiederherstellungsvorgangs auszuwählen. Weitere Informationen zum Festlegen eines bestimmten Zeitpunkts finden Sie unter Sicherungszeitachse.

  6. Wählen Sie im Raster Wiederherzustellende Sicherungssätze die wiederherzustellenden Sicherungen aus. In diesem Raster werden die Sicherungen angezeigt, die für den angegebenen Speicherort verfügbar sind. Standardmäßig wird ein Wiederherstellungsplan vorgeschlagen. Sie können die Auswahl im Raster ändern, um den vorgeschlagenen Wiederherstellungsplan zu überschreiben. Die Auswahl von Sicherungen, die von der Wiederherstellung einer früheren Sicherung abhängig sind, wird automatisch aufgehoben, wenn die Auswahl der früheren Sicherung aufgehoben wird.

    Informationen zu den Spalten im Raster Wiederherzustellende Sicherungssätze finden Sie unter Datenbank wiederherstellen (Seite 'Allgemein').

  7. Wählen Sie zum Angeben des neuen Speicherorts der Datenbankdateien die Seite Dateien, und klicken Sie anschließend auf Alle Dateien verschieben in Ordner. Geben Sie einen neuen Speicherort für die Ordner Datendatei und Protokolldatei an. Weitere Informationen zu diesem Raster finden Sie unter Datenbank wiederherstellen (Seite Dateien).

  8. Passen Sie ggf. die Optionen auf der Seite Optionen an. Weitere Informationen zu diesen Optionen finden Sie unter Datenbank wiederherstellen (Seite Optionen).

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von Transact-SQL

So stellen Sie eine Datenbank in einem neuen Speicherort wieder her und benennen diese optional um

  1. Legen Sie optional den logischen und den physischen Namen der Dateien in dem Sicherungssatz fest, der die vollständige Datenbanksicherung enthält, die Sie wiederherstellen möchten. Diese Anweisung gibt eine Liste mit Datenbank- und Protokolldateien zurück, die im Sicherungssatz enthalten sind. Die Basissyntax lautet wie folgt:

    RESTORE FILELISTONLY FROM <backup_device> WITH FILE = backup_set_file_number

    Dabei gibt backup_set_file_number die Position der Sicherung im Mediensatz an. Sie können die Position eines Sicherungssatzes mithilfe der RESTORE HEADERONLY-Anweisung abrufen. Weitere Informationen finden Sie unter RESTORE-Argumente (Transact-SQL) im Abschnitt "Angeben eines Sicherungssatzes".

    Diese Anweisung unterstützt auch eine Reihe von WITH-Optionen. Weitere Informationen finden Sie unter RESTORE FILELISTONLY (Transact-SQL).

  2. Stellen Sie die vollständige Datenbanksicherung mithilfe derRESTORE DATABASE-Anweisung wieder her. Standardmäßig werden Daten und Protokolldateien an ihren ursprünglichen Speicherorten wiederhergestellt. Verwenden Sie zum Verschieben einer Datenbank die Option MOVE, um die einzelnen Datenbankdateien zu verschieben und Konflikte mit vorhandenen Dateien zu vermeiden.

    Die Transact-SQL-Basissyntax für das Wiederherstellen der Datenbank an einem neuen Speicherort und mit neuem Name lautet wie folgt:

    RESTORE DATABASE new_database_name

    FROM backup_device [ ,...n ]

    [ WITH

       {

            [ RECOVERY | NORECOVERY ]

       [ , ] [ FILE ={ backup_set_file_number | @backup\_set\_file\_number } ]

       [ , ] MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name' [ ,...n ]

       }

    ;

    HinweisHinweis

    Wenn Sie sich auf das Verschieben einer Datenbank auf einen anderen Datenträger vorbereiten, sollten Sie überprüfen, ob dieser über genügend Speicherplatz verfügt und ob möglicherweise Konflikte mit vorhandenen Dateien auftreten können. Dazu müssen Sie unter anderem eine RESTORE VERIFYONLY-Anweisung verwenden, in der die gleichen MOVE-Parameter angegeben sind, die Sie in der RESTORE DATABASE-Anweisung verwenden möchten.

    In der folgenden Tabelle werden Argumente dieser RESTORE-Anweisung im Hinblick auf das Wiederherstellen einer Datenbank an einem neuen Speicherort beschrieben. Weitere Informationen zu diesen Argumenten finden Sie unter RESTORE (Transact-SQL).

    • new_database_name
      Der neue Name der Datenbank.

      HinweisHinweis

      Wenn Sie die Datenbank auf einer anderen Serverinstanz wiederherstellen, können Sie anstelle eines neuen Namens den ursprünglichen Namen weiterverwenden.

    • backup_device [ ,...n ]
      Gibt eine durch Trennzeichen getrennte Liste von 1 bis 64 Sicherungsmedien an, von denen die Datenbanksicherung wiederhergestellt werden soll. Sie können ein physisches Sicherungsmedium angeben oder, sofern definiert, ein entsprechendes logisches Sicherungsmedium. Geben Sie das physische Sicherungsmedium mithilfe der Option DISK oder TAPE an:

      { DISK | TAPE } = physical_backup_device_name

      Weitere Informationen finden Sie unter Sicherungsmedien (SQL Server).

    • { RECOVERY | NORECOVERY }
      Wenn die Datenbank das vollständige Wiederherstellungsmodell verwendet, müssen Sie möglicherweise Transaktionsprotokollsicherungen anwenden, nachdem Sie die Datenbank wiederhergestellt haben. Geben Sie in diesem Fall die Option NORECOVERY an.

      Verwenden Sie andernfalls die Standardoption RECOVERY.

    • FILE = { backup_set_file_number | @backup\_set\_file\_number }
      Identifiziert den wiederherzustellenden Sicherungssatz. Wenn backup_set_file_number beispielsweise den Wert 1 besitzt, weist dies auf den ersten Sicherungssatz auf dem Sicherungsmedium hin. Wenn backup_set_file_number den Wert 2 besitzt, entspricht dies dem zweiten Sicherungssatz. Sie können die backup_set_file_number eines Sicherungssatzes mit der RESTORE HEADERONLY-Anweisung abrufen.

      Wenn diese Option nicht angegeben ist, wird in der Standardeinstellung der erste Sicherungssatz auf dem Sicherungsmedium verwendet.

      Weitere Informationen finden Sie unter RESTORE-Argumente (Transact-SQL) im Abschnitt "Angeben eines Sicherungssatzes".

    • MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name' [ ,...n ]
      Gibt an, dass die von logical_file_name_in_backup angegebenen Daten oder die Protokolldatei an dem von operating_system_file_name angegebenen Speicherort wiederhergestellt werden sollen. Geben Sie für jede logische Datei, die aus dem Sicherungssatz an einem neuen Speicherort wiederhergestellt werden soll, eine MOVE-Anweisung an.

      Option

      Beschreibung

      logical_file_name_in_backup

      Gibt den logischen Namen einer Daten- oder Protokolldatei an, die in den Sicherungssatz eingeschlossen werden soll. Der logische Dateiname einer Daten- oder Protokolldatei in einem Sicherungssatz entspricht ihrem logischen Namen in der Datenbank zum Zeitpunkt der Erstellung des Sicherungssatzes.

      HinweisHinweis

      Mit RESTORE FILELISTONLY können Sie eine Liste abrufen, in der die logischen Dateien eines Sicherungssatzes aufgeführt sind.

      operating_system_file_name

      Gibt einen neuen Speicherort für die von logical_file_name_in_backup angegebene Datei an. Die Datei wird an diesem Speicherort wiederhergestellt.

      Optional gibt operating_system_file_name einen neuen Dateinamen für die wiederhergestellte Datei an. Dies ist erforderlich, wenn Sie eine Kopie einer vorhandenen Datenbank auf der gleiche Serverinstanz erstellen.

      n

      Ist ein Platzhalter, der angibt, dass weitere MOVE-Anweisungen angegeben werden können.

Beispiel (Transact-SQL)

In diesem Beispiel wird eine neue Datenbank mit dem Namen MyAdvWorks erstellt, indem eine Sicherung der AdventureWorks2012 -Beispieldatenbank wiederhergestellt wird, die zwei Dateien einschließt: AdventureWorks2012 _Data und AdventureWorks2012 _Log. Für diese Datenbank wird das einfache Wiederherstellungsmodell verwendet. Die AdventureWorks2012 -Datenbank ist bereits auf der Serverinstanz vorhanden, sodass die Dateien in der Sicherung an einem neuen Ort wiederhergestellt werden müssen. Die RESTORE FILELISTONLY-Anweisung wird verwendet, um die Anzahl und die Namen der Dateien der Datenbank zu bestimmen, die wiederhergestellt werden. Die Datenbanksicherung ist der erste Sicherungssatz auf dem Sicherungsmedium.

HinweisHinweis

In den Beispielen zum Sichern und Wiederherstellen des Transaktionsprotokolls (einschließlich der Zeitpunktwiederherstellungen) wird, wie im folgenden MyAdvWorks-Beispiel, die aus AdventureWorks2012 erstellte MyAdvWorks_FullRM-Datenbank verwendet. Die resultierende MyAdvWorks_FullRM-Datenbank muss jedoch dahingehend geändert werden, dass das vollständige Wiederherstellungsmodell mit der folgenden Transact-SQL-Anweisung verwendet wird: ALTER DATABASE <database_name> SET RECOVERY FULL.

USE master;
GO
-- First determine the number and names of the files in the backup.
-- AdventureWorks2012_Backup is the name of the backup device.
RESTORE FILELISTONLY
   FROM AdventureWorks2012_Backup;
-- Restore the files for MyAdvWorks.
RESTORE DATABASE MyAdvWorks
   FROM AdventureWorks2012_Backup
   WITH RECOVERY,
   MOVE 'AdventureWorks2012_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf', 
   MOVE 'AdventureWorks2012_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf';
GO

Ein Beispiel für das Erstellen einer vollständigen Sicherung der AdventureWorks2012 -Datenbank finden Sie unter Erstellen einer vollständigen Datenbanksicherung (SQL Server).

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwandte Aufgaben

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Siehe auch

Verweis

RESTORE (Transact-SQL)

Konzepte

Verwalten von Metadaten beim Bereitstellen einer Datenbank auf einer anderen Serverinstanz (SQL Server)

Kopieren von Datenbanken durch Sichern und Wiederherstellen