2012-04-24 20 views
49

Ich versuche, eine neue Datenbank aus einem alten Backup der Datenbank auf dem gleichen Server zu erstellen. Wenn SQL Server Management Studio verwenden und versuchen, auf die neue DB aus dem Backup ich diesen FehlerErstellen einer neuen Datenbank aus einer Sicherung einer anderen Datenbank auf demselben Server?

System.Data.SqlClient.SqlError: The backup set holds a backup of a database 
other than the existing 'test' database. (Microsoft.SqlServer.Smo) 

RESTORE DATABASE myDB 

FROM DISK = 'C:\myDB.bak' 

WITH MOVE 'myDB_Data' TO 'C:\DATA\myDB.mdf', 

MOVE 'myDB_Log' TO 'C:\DATA\myDB_log.mdf' 
GO 

ich nach googeln um fand ich dieses Stück Code erhalten wiederherzustellen frage mich Werden die Move-Anweisungen mit der Datenbank verwechselt, von der das Backup auf diesem Server stammt?

Danke, alle helfen geschätzt.

+0

Ich schlage vor, Sie versuchen: http://dba.stackexchange.com/ – JohnFx

Antwort

101

Ich denke, dass das einfacher ist.

  • Erstellen Sie zuerst eine leere Zieldatenbank.
  • Suchen Sie dann im Wiederherstellungsassistenten "SQL Server Management Studio" nach der Option zum Überschreiben der Zieldatenbank. Es befindet sich auf der Registerkarte 'Optionen' und heißt 'Die vorhandene Datenbank überschreiben (MIT ERSETZEN)'. Prüfen Sie.
  • Denken Sie daran, Zieldateien auf der Seite "Dateien" auszuwählen.

Sie können auf der linken Seite des Assistenten ‚Tabs‘ ändern (Allgemein, Dateien, Optionen)

+2

Vielen Dank, ich hatte versucht, mit der Option Ersetzen im Management Studio vor aber nicht die Dateien Teil. Hat getan, was Sie vorgeschlagen haben und die Datenbank wird jetzt erstellt. – Flywheel

1

Denken Sie daran, wie ein Archiv. MyDB.Bak enthält MyDB.mdf und MyDB.ldf.

Wiederherstellen mit Move, um zu sagen, dass HerDB grundsätzlich MyDB.mdf (und LDF) aus dem Backup übernimmt und sie als HerDB.mdf und LDF kopiert.

Wenn Sie also bereits ein MyDb auf der Serverinstanz hatten, die Sie wiederherstellen, würde es nicht berührt werden.

8

die Optionen prüfen Over Write-Datenbank funktionierte für mich :)

enter image description here

23

Es ist sogar möglich, ohne wiederherstellen eine leere Datenbank überhaupt zu schaffen.

in SQL Server Management Studio, klicken Sie rechts auf Datenbanken und wählen Datenbank wiederherstellen ... enter image description here

Im Dialogfeld Datenbank wiederherstellen die Quelldatenbank oder Gerät als normal wählen. Sobald die Quellendatenbank ausgewählt ist, füllt SSMS den Namen der Zieldatenbank basierend auf dem ursprünglichen Namen der Datenbank auf.

Es ist dann möglich, den Namen der Datenbank zu ändern und einen neuen Zieldatenbanknamen einzugeben.

enter image description here

Mit diesem Ansatz, Sie brauchen nicht einmal auf den Reiter Optionen zu gehen und die „Überschreiben der vorhandenen Datenbank“ Option klicken.

Außerdem werden die Datenbankdateien konsistent mit Ihrem neuen Datenbanknamen benannt und Sie haben weiterhin die Möglichkeit, Dateinamen zu ändern, wenn Sie möchten.

+2

Dies ist eine der besten Optionen! – user2040021

+3

Ich wünschte, ich könnte das mehr als einmal verbessern! Dies ist eigentlich die Antwort, nach der ich gesucht habe, und nicht den Workaround-Ansatz, der in den höher gestellten Antworten beschrieben wird! – Trebor

+1

Diese Lösung funktionierte für mich aber nur, wenn ich die "Restore As" -Dateinamen auf der Registerkarte "Files" speziell auf etwas änderte, das noch nicht existierte. Sonst bekomme ich eine "Dateien bereits verwendet, kann nicht überschreiben" Fehler beim Wiederherstellen Fehlermeldung. – Jeremy

Verwandte Themen