Vorgehensweise: Wiederherstellen einer Datenbank an einem neuen Speicherort und unter einem neuen Namen (Transact-SQL)
Aktualisiert: 14. April 2006
In diesem Thema erfahren Sie, wie Sie eine Datenbank an einem neuen Speicherort und optional unter einem neuen Namen wiederherstellen.
Sicherheitshinweis: |
---|
Es empfiehlt sich nicht, Datenbanken aus unbekannten oder nicht vertrauenswürdigen Quellen anzufügen oder wiederherzustellen. Solche Datenbanken können bösartigen Code enthalten, mit dem möglicherweise unbeabsichtigter Transact-SQL-Code ausgeführt wird oder Fehler verursacht werden, indem das Schema oder die physikalische Datenbankstruktur geändert wird. Bevor Sie eine Datenbank aus einer unbekannten oder nicht vertrauenswürdigen Quelle verwenden, führen Sie in der Datenbank auf einem Nichtproduktionsserver DBCC CHECKDB aus, und überprüfen Sie auch den Code der Datenbank, z. B. gespeicherte Prozeduren oder anderen benutzerdefinierten Code. |
So stellen Sie eine Datenbank mit einem neuen Namen wieder her
Führen Sie optional die RESTORE FILELISTONLY-Anweisung aus, um Anzahl und Namen der Dateien in der vollständigen Datenbanksicherung zu bestimmen.
Führen Sie die RESTORE DATABASE-Anweisung aus, um die vollständige Datenbanksicherung wiederherzustellen, und geben Sie dabei Folgendes an:
- Den neuen Namen der Datenbank
Hinweis: Wenn Sie die Datenbank auf einer anderen Serverinstanz wiederherstellen, können Sie anstelle eines neuen Namens den ursprünglichen Namen weiterverwenden. - Das Sicherungsmedium, von dem die vollständige Datenbanksicherung wiederhergestellt wird
- Die NORECOVERY-Klausel, wenn nach dem Wiederherstellen der Dateisicherungen Transaktionsprotokollsicherungen angewendet werden sollen. Geben Sie andernfalls die RECOVERY-Klausel an.
Die ggf. angewendeten Transaktionsprotokollsicherungen müssen den Zeitpunkt einschließen, zu dem die Dateien gesichert wurden. - Die MOVE-Klausel für jede Datei, die an einem neuen Speicherort wiederhergestellt werden soll, wenn es die Dateinamen bereits gibt. Für Testzwecke kann es z. B. notwendig sein, eine Kopie einer vorhandenen Datenbank auf demselben Server zu erstellen. In diesem Fall sind die Datenbankdateien für die Originaldatenbank bereits vorhanden. Deshalb müssen andere Dateinamen angegeben werden, wenn die Datenbankkopie während des Wiederherstellungsvorgangs erstellt wird.
Die MOVE-Klausel hat folgende Syntax:
MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name'
[ ,...n ] [ , ]
Dabei ist logical_file_name_in_backup der Name einer Daten- oder Protokolldatei im Sicherungssatz und operating_system_file_name der Speicherort, an dem die Datei wiederhergestellt werden sollte. n ist ein Platzhalter, der angibt, dass Sie zusätzliche MOVE-Anweisungen angeben können. Geben Sie eine MOVE-Anweisung für jede logische Datei an, die Sie aus dem Sicherungssatz an einem neuen Speicherort wiederherstellen möchten.Hinweis: Mit RESTORE FILELISTONLY können Sie eine Liste abrufen, in der die logischen Dateien eines Sicherungssatzes aufgeführt sind.
- Den neuen Namen der Datenbank
Beispiel
In diesem Beispiel wird eine neue Datenbank namens MyAdvWorks
erstellt. MyAdvWorks
ist eine Kopie der vorhandenen AdventureWorks
-Datenbank, die zwei Dateien umfasst: AdventureWorks_Data
und AdventureWorks_Log
. Da es die AdventureWorks
-Datenbank bereits gibt, müssen die Dateien in der Sicherung während des Wiederherstellungsvorgangs verschoben werden. Die RESTORE FILELISTONLY
-Anweisung wird verwendet, um die Anzahl und Namen der Dateien der Datenbank zu ermitteln, die wiederhergestellt wird.
Hinweis: |
---|
Ein Beispiel für das Erstellen einer vollständigen Sicherung der AdventureWorks-Datenbank finden Sie unter Vorgehensweise: Erstellen einer vollständigen Datenbanksicherung (Transact-SQL). |
Hinweis: |
---|
In den Beispielen zum Sichern und Wiederherstellen des Transaktionsprotokolls (einschließlich der Zeitpunktwiederherstellungen) wird, wie im folgenden MyAdvWorks -Beispiel, die aus AdventureWorks erstellte MyAdvWorks_FullRM -Datenbank verwendet. Die resultierende MyAdvWorks_FullRM -Datenbank muss jedoch geändert werden, damit das Modell der vollständigen Wiederherstellung verwendet werden kann: ALTER DATABASE MyAdvWorks_FullRM SET RECOVERY FULL . |
USE master
GO
-- First determine the number and names of the files in the backup.
-- AdventureWorks_Backup is the name of the backup device.
RESTORE FILELISTONLY
FROM AdventureWorks_Backup
-- Restore the files for MyAdvWorks.
RESTORE DATABASE MyAdvWorks
FROM AdventureWorks_Backup
WITH RECOVERY,
MOVE 'AdventureWorks_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf',
MOVE 'AdventureWorks_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf'
GO
Siehe auch
Konzepte
Verwalten von Metadaten beim Bereitstellen einer Datenbank auf einer anderen Serverinstanz
Sicherheitsüberlegungen für Sicherungen und Wiederherstellungen
Kopieren von Datenbanken durch Sichern und Wiederherstellen
Andere Ressourcen
RESTORE (Transact-SQL)
SQL Server Management Studio-Lernprogramm