Ich versuche, eine neue Datenbank aus einer alten Sicherung der Datenbank auf demselben Server zu erstellen. Wenn Sie SQL Server Management Studio verwenden und versuchen, aus der Sicherung die neue Datenbank wiederherzustellen, wird dieser Fehler angezeigt
System.Data.SqlClient.SqlError: The backup set holds a backup of a database
other than the existing 'test' database. (Microsoft.SqlServer.Smo)
Nachdem ich herumgegoogelt hatte, fand ich diesen Code
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 habe mich gefragt, ob die Verschiebungsanweisungen mit der Datenbank, von der die Sicherung auf diesem Server stammt, in Konflikt geraten.
Vielen Dank, alle Hilfe geschätzt.
sql
database
sql-server-2008
Schwungrad
quelle
quelle
Antworten:
Ich denke das ist einfacher als das.
Sie können die Registerkarten auf der linken Seite des Assistenten ändern (Allgemein, Dateien, Optionen).
quelle
Es ist sogar möglich, eine Wiederherstellung durchzuführen, ohne eine leere Datenbank zu erstellen.
Klicken Sie in SQL Server Management Studio mit der rechten Maustaste auf Datenbanken und wählen Sie Datenbank wiederherstellen ...
Wählen Sie im Dialogfeld "Datenbank wiederherstellen" die Quelldatenbank oder das Gerät wie gewohnt aus. Sobald die Quellendatenbank ausgewählt ist, füllt SSMS den Namen der Zieldatenbank basierend auf dem ursprünglichen Namen der Datenbank.
Es ist dann möglich, den Namen der Datenbank zu ändern und einen neuen Namen für die Zieldatenbank einzugeben .
Bei diesem Ansatz müssen Sie nicht einmal zur Registerkarte "Optionen" wechseln und auf die Option "Vorhandene Datenbank überschreiben" klicken.
Außerdem werden die Datenbankdateien konsistent mit Ihrem neuen Datenbanknamen benannt, und Sie haben weiterhin die Möglichkeit, die Dateinamen zu ändern, wenn Sie möchten.
quelle
Take tail-log backup before restore
da ich einen Fehler bekam, wie hier beschrieben stackoverflow.com/a/29497004/5588197Das Überprüfen der Optionen über die Schreibdatenbank hat bei mir funktioniert :)
quelle
Stellen Sie es sich wie ein Archiv vor. MyDB.Bak enthält MyDB.mdf und MyDB.ldf.
Mit Move wiederherstellen, um zu sagen, dass HerDB MyDB.mdf (und ldf) im Grunde genommen von der Sicherung abruft und sie als HerDB.mdf und ldf kopiert.
Wenn Sie also bereits eine MyDb auf der Serverinstanz haben, die Sie wiederherstellen, wird diese nicht berührt.
quelle