Freigeben über


Wiederherstellen einer Datenbank an einem neuen Speicherort (SQL Server)

In diesem Thema wird beschrieben, wie Sie eine SQL Server-Datenbank an einem neuen Speicherort wiederherstellen und optional die Datenbank in SQL Server 2014 umbenennen, indem Sie SQL Server Management Studio oder Transact-SQL verwenden. 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

  • 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 Certificates and Asymmetric Keys.

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

  • Wenn Sie eine SQL Server Datenbank 2005 oder höher auf SQL Server 2014 wiederherstellen, wird die Datenbank automatisch aktualisiert. In der Regel ist die Datenbank sofort verfügbar. Wenn jedoch eine SQL Server 2005-Datenbank Über Volltextindizes verfügt, importiert, wird der Upgradevorgang entweder importiert, zurückgesetzt oder neu erstellt, je nach Einstellung der upgrade_option Servereigenschaft. Wenn die Upgradeoption auf „Importieren“ (upgrade_option = 2) oder „Neu erstellen“ (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. Verwenden Sie sp_fulltext_service , um die Einstellung der Servereigenschaft upgrade_optionzu ändern.

Sicherheit

Aus Sicherheitsgründen empfiehlt es sich nicht, Datenbanken aus unbekannten oder nicht vertrauenswürdigen Quellen anzufügen oder wiederherzustellen. Solche Datenbanken können schädlichen 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 für die Datenbank aus. Überprüfen Sie außerdem den Code in der Datenbank, z.B. 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 in einer festen Datenbankrolle nur bei unbeschädigten und zugänglichen Datenbanken geprüft 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.

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-Datenbank-Engineher, 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 anschließend 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.

    Hinweis

    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. Device

      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: Gerät: 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 Backup Timeline .

  6. Wählen Sie im Raster Wiederherzustellende Sicherungssätze die wiederherzustellenden Sicherungen aus. Mit 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 Sicherungssätze für die Wiederherstellung finden Sie unter Wiederherstellen der Datenbank (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 Protokolldateian. Weitere Informationen zu diesem Raster finden Sie unter Wiederherstellen der Datenbank (Seite Dateien).

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

Verwenden 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 Angeben eines Sicherungssatzes in RESTORE-Argumente (Transact-SQL).

    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 der RESTORE 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 grundlegende Transact-SQL-Syntax zum Wiederherstellen der Datenbank an einem neuen Speicherort und einem neuen Namen lautet:

    RESTORE DATABASE Name der neuen Datenbank

    FROM Sicherungsmedium [ ,...n ]

    [ WITH

    {

    [ WIEDERHERSTELLUNG | NORECOVERY ]

    [ , ] [ FILE ={ backup_set_file_number | @backup_set_file_number } ]

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

    }

    ;

    Hinweis

    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).

    Name der neuen Datenbank
    Der neue Name der Datenbank.

    Hinweis

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

    Sicherungsmedium [ , ...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) aufgezeichnet wurde.

    { 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 Angeben eines Sicherungssatzes unter RESTORE-Argumente (Transact-SQL).

    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_nameangegebenen 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.

    Hinweis: 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_backupangegebene 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 enthält: 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.

Hinweis

In den Beispielen zum Sichern und Wiederherstellen des Transaktionsprotokolls, einschließlich Point-in-Time-Wiederherstellungen, wird die Datenbank verwendet, die MyAdvWorks_FullRM aus AdventureWorks2012 erstellt wird, wie im folgenden MyAdvWorks Beispiel. Die resultierende MyAdvWorks_FullRM Datenbank muss jedoch geändert werden, um das vollständige Wiederherstellungsmodell mithilfe der folgenden Transact-SQL-Anweisung zu verwenden: 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 zum Erstellen einer vollständigen Datenbanksicherung der AdventureWorks2012-Datenbank finden Sie unter Erstellen einer vollständigen Datenbanksicherung (SQL Server).

Related Tasks

Weitere Informationen

Verwalten von Metadaten beim Bereitstellen einer Datenbank auf einer anderen Serverinstanz (SQL Server)
RESTORE (Transact-SQL)
Kopieren von Datenbanken durch Sichern und Wiederherstellen