Ich habe SQL 2012 mit SP1 auf meinem Computer installiert. Ich habe ein Backup einer Datenbank erstellt test.bak
.
Ich habe eine Datenbank mit test2
demselben Namen , die Daten wurden jedoch geändert.
Ich möchte test.bak
über die test2
Datenbank wiederherstellen .
Ich erhalte immer den Fehler:
Fehler 3154: Der Sicherungssatz enthält eine Sicherung einer anderen Datenbank als der vorhandenen Datenbank.
Ich habe es versucht:
Ich habe mit der rechten Maustaste geklickt
test2 -> Restore database -> From device
Ich habe gewählt
test.bak
und geprüft,With Replace
aber ich bekomme den Fehler.Dann habe ich versucht mit der rechten Maustaste darauf zu klicken
test2 -> Restore file and filegroups
Ich habe gewählt
test.bak
und geprüft,With Replace
aber ich bekomme den Fehler.
Ich kann meine alte Datenbank löschen und dann mein Backup mit dem richtigen Namen wiederherstellen, aber als ich SQL 2008 verwendete, hatte ich keine Probleme, über eine vorhandene Datenbank wiederherzustellen.
Es scheint, dass ich diesen Fehler sehr oft bekomme, seit ich SQL2012 verwende!
quelle
1) Verwenden Sie,
WITH REPLACE
während Sie denRESTORE
Befehl verwenden.2)
DROP
Die ältere Datenbank, die in Konflikt steht, und die Wiederherstellung erfolgt erneut mit demRESTORE
Befehl.Es gibt kein Problem mit der SQL Server-Version. Wie Aaron betonte, kann ich auch die Datenbank von 2008 bis 2012 und die gleichen Versionen wiederherstellen.
quelle
Sie stellen die falsche Datenbank wieder her. Betrachten Sie es nicht als "Wiederherstellen
test2
mit einem Backup vontest
",test
sondern alstest2
" Wiederherstellen meines Backups von", aber benennen Sie es um als ". Sie können die Wiederherstellungsaufgabe auswählentest
undtest2
in das Feld "An Datenbank:" einfügen.Wie Aaron erwähnt, sollten Sie das Skript lernen, anstatt sich auf den Assistenten zu verlassen - es ist klarer, was wohin geht.
quelle
Sie können dies immer noch tun, es ist jedoch ein zusätzlicher Schritt erforderlich.
Öffnen Sie den Wiederherstellungsdialog und treffen Sie Ihre gewohnten Auswahlen für 2008. Wenn die ursprüngliche Datenbank DB ist, wählen Sie das DB.bak-Gerät als Quelle und ändern Sie den Zielnamen in DBTest. Dann unter Wählen Sie eine Seite (obere linke Ecke), wo Sie Allgemein / Dateien / Optionen sehen - wählen Sie Dateien. Schau in das Gitter. Sie sehen Spalten für Original File Name und Restore As File Name. Erweitern Sie letzteres manuell und geben Sie den neuen Namen ein. (Wenn der ursprüngliche Name der Datenbank DB ist und Sie DBTest erstellen möchten, ändern Sie .... \ DB.mdf in ... \ DBTest.mdf usw.)
Dadurch wird Ihre .bak-Datei für DB als Quelle und DBTest als Ziel akzeptiert. Möglicherweise müssen Sie auch zur Seite "Optionen" gehen und "Mit Ersetzen" auswählen. Ich muss aus anderen Gründen, damit ich es nicht ohne diese Option testen kann.
quelle
Die richtige Antwort ist, wie bereits erwähnt, die Verwendung der
WITH REPLACE
Option.Ich möchte nur darauf hinweisen, dass Sie den Fehler in der Frage auch bei der Verwendung erhalten können
WITH REPLACE
, wenn Sie versuchen, von einer differenziellen Sicherung (ohne die vollständige) wiederherzustellen.quelle
Hoffe das wird funktionieren.
quelle
Bitte stoppen Sie Ihren laufenden Server und stellen Sie dann die Datenbank wieder her. Dies wird Ihnen helfen. :)
quelle