it-swarm.com.de

Der Sicherungssatz enthält eine Sicherung einer anderen als der vorhandenen Datenbank

Ich versuche, eine SQL Server-Sicherungsdatei für meine Datenbank wiederherzustellen, aber es wird ein Fehler wie folgt ausgegeben:

Der Sicherungssatz enthält eine Sicherung einer anderen als der vorhandenen Datenbank

Meine Datenbank in SQL Server 2008 und die Sicherungsdatei ist im Jahr 2005.

Woran kann das liegen?

437
R.D.

Auch ich bin auf dieses Problem gestoßen.

Lösung:

  • Erstellen Sie keine leere Datenbank und stellen Sie die .bak -Datei darauf wieder her.
  • Verwenden Sie die Option 'Datenbank wiederherstellen', auf die Sie zugreifen können, indem Sie mit der rechten Maustaste auf den Zweig "Datenbanken" von SQL Server Management Studio klicken, und geben Sie den Datenbanknamen an, während Sie die wiederherzustellende Quelle angeben.
  • Ändern Sie auch die Dateinamen unter "Dateien", wenn die andere Datenbank noch vorhanden ist. Andernfalls erhalten Sie "Die Datei '...' kann nicht überschrieben werden. Sie wird von der Datenbank 'yourFirstDb' verwendet".
751
sunil_philip

Entweder:

1) Verwenden Sie WITH REPLACE, während Sie den Befehl RESTORE verwenden (wenn Sie die GUI verwenden, finden Sie ihn unter Optionen -> Vorhandene Datenbank überschreiben (WITH REPLACE)).

2) Delete die ältere Datenbank, die in Konflikt steht, und stellen Sie sie mit dem Befehl RESTORE wieder her.

Überprüfen Sie die Link für weitere Details.

156
Amarnath

Erstellen Sie zunächst eine leere Datenbank mit demselben Namen. Dann gehen Sie zur Wiederherstellungsoption

Vergessen Sie nicht, im linken Bereich unter Optionen die Option auszuwählen

  • Überschreiben Sie die vorhandene Datenbank
  • Behalten Sie die Replikationseinstellungen bei

enter image description here

Das ist es

86
HimalayanCoder

Stellen Sie sich dem gleichen Problem und finden Sie auf diese Weise die Lösung mit SSMS 2014

 - Wählen Sie einfach die Option Vorhandene Datenbank überschreiben (WITH REPLACE) 

Existing Database> Task> Restore> Database

49
Smit Patel
USE [master];
GO

CREATE DATABASE db;
GO

CREATE DATABASE db2;
GO

BACKUP DATABASE db TO DISK = 'c:\temp\db.bak' WITH INIT, COMPRESSION;
GO

RESTORE DATABASE db2
  FROM DISK = 'c:\temp\db.bak'
  WITH REPLACE,
  MOVE 'db' TO 'c:\temp\db2.mdf',
  MOVE 'db_log' TO 'c:\temp\db2.ldf';
28
Elsoni

Dies liegt daran, dass die .mdf und .ldf Dateien aus dem ursprünglichen Db unter möglicherweise c:\programFile\.... gefunden wurden und diese Informationen im Backup gespeichert werden!

Wenn Sie dieselbe Datenbank auf einem anderen SQL Server erstellen, auf dem sich die Installation auf c:\program Files (x86)\ .... befindet, können Sie nicht wie gewohnt wiederherstellen. Sie müssen den Pfad für .mdf- und .ldf -Dateien verschieben.

Deshalb:

  • Erstellen Sie eine leere Datenbank auf dem neuen Server

  • Klicken Sie mit der rechten Maustaste auf die leere Datenbank> Aufgaben> Wiederherstellen> Datenbank> klicken Sie auf Gerät, wählen Sie Ihre .bak -Dateien> Wählen Sie die Datenbank aus, in der wiederhergestellt werden soll

  • klicken Sie links auf "Dateien". Wählen Sie "Alle Dateien in Ordner verschieben".
  • klicken Sie auf der linken Seite auf Optionen und dann auf Überschreiben

Getan!
Ich hoffe es hilft!

22
HELPER

Einfache 3 Schritte:

1- Klicken Sie mit der rechten Maustaste auf Datenbank> Aufgaben> Wiederherstellen> Datenbank

2- Überprüfen Sie Device als Quelle und suchen Sie die Datei .bak

3- Klicken Sie im linken Bereich auf options und:

  1. check Überschreibe die vorhandene Datenbank.
  2. Deaktivieren Sie Erstellen Sie vor dem Wiederherstellen eine Sicherungskopie des Protokolls
  3. check close Bestehende Verbindung zur Zieldatenbank.
  4. andere Optionen sind wirklich optional!
20
Ali Sheikhpour

Ich hatte heute ein ähnliches Problem. Versuchte alle oben genannten Lösungen, funktionierte aber nicht. Also poste meine Lösung hier.

Vergessen Sie nicht, vor dem Wiederherstellen das Kontrollkästchen "Backup für lange Zeit" zu deaktivieren

Don't forget to uncheck Tail-long Backup before restore

Hoffe es hilft auch anderen!

15
Mayank Modi

Wenn Sie den Skriptansatz verwenden und einen Fehler in Bezug auf die LDF- und MDF -Dateien haben , können Sie zuerst die Sicherungsdatei abfragen . Für die logischen Namen (und andere Details) der Dateien im Sicherungssatz verwenden Sie Folgendes:

-- Queries the backup file for the file list in backup set, where Type denotes 
-- type of file. Can be L,D,F or S
-- info: https://docs.Microsoft.com/en-us/sql/t-sql/statements/restore-statements-filelistonly-transact-sql
RESTORE FILELISTONLY FROM DISK = 'C:\Temp\DB_backup.bak'
GO

Sie erhalten ähnliche Ergebnisse wie die folgenden:

enter image description here

Und dann können Sie diese logischen Namen in den Abfragen verwenden:

    -- Script assumes you want MDF and LDF files restored on separate drives. Modify for your scenario
    RESTORE DATABASE DB 
    FROM DISK='C:\Temp\DB_backup.bak'
    WITH REPLACE,
      MOVE 'DB' TO 'E:\MSSQL\Data\DB.mdf', -- "DB" is the mdf logical name from query above
      MOVE 'DB_log' TO 'F:\MSSQL\Logs\DB.mdf'; -- "DB_log" is LDF logical name from query above

Weitere Informationen zu RESTORE FILELISTONLYfinden Sie in den SQL Server-Dokumenten .

13
user919426

Ebenso wichtig ist es, sicherzustellen, dass Ihr Datenbankname stimmt überein der Datenbankname in der Sicherung, die Sie wiederherstellen möchten. Wenn es nicht übereinstimmt, erhalten Sie den gleichen Fehler.

9
Andrew Marais

system.data.sqlclient.sqlerror: Der Sicherungssatz enthält eine Sicherung einer anderen Datenbank als der vorhandenen Datenbank 'Dbname'

Ich bin rübergekommen, um eine Lösung zu finden

  1. Erstellen Sie keine Datenbank mit demselben Namen oder einem anderen Datenbanknamen! Wichtig.

  2. rechtsklick auf die Datenbank | Aufgaben> Wiederherstellen> Datenbank

  3. Wählen Sie unter "Quelle für Wiederherstellung" die Option "Vom Gerät" aus.

  4. Wählen Sie die .bak-Datei aus

  5. Aktivieren Sie das Kontrollkästchen für die Datenbank in der folgenden Rasteransicht

  6. In die Datenbank: "Hier können Sie einen neuen Datenbanknamen eingeben" (Beispiel: DemoDB)

  7. Wählen Sie nicht die vorhandene Datenbank aus DropDownlist aus

  8. Klicken Sie nun auf die Schaltfläche Ok, um eine neue Datenbank zu erstellen und alle Daten aus Ihrer .bak-Datei wiederherzustellen.

Hilfe erhalten Sie auch über diesen Link

Hoffe, es wird Ihnen helfen, Ihr Problem zu lösen ...

8
akshay5662

Überprüfen Sie, bevor Sie etwas anderes tun, ob Ihre Sicherung vollständig oder differenziell ist. Wenn Sie versuchen, eine neue Datenbank aus einer differenziellen Sicherung zu erstellen, tritt der Fehler auf, unabhängig davon, was Sie tun.

7
Tots Benedicto

Das gleiche Problem bei mir. Die Lösung für mich ist:

  1. Klicken Sie mit der rechten Maustaste auf die Datenbank.
  2. Aufgaben auswählen, Datenbank wiederherstellen auswählen.
  3. Klicken Sie links auf Optionen.
  4. Aktivieren Sie die erste Option, um die vorhandene Datenbank zu überschreiben (WITH REPLACE).
  5. Gehen Sie zu Allgemein, wählen Sie die Quell- und Zieldatenbank aus.
  6. Klicken Sie auf OK, das war's
4
Aayush Verma

Ändern Sie in den Optionen den Dateinamen "Wiederherstellen als" in die neue Datenbank mdf und ldf. Es verweist auf die MDF- und LDF-Quellendatenbankdateien.

2
Priyanka Rawat

Ich musste eine neue Datenbank auf meinem lokalen Server zum Testen erstellen und ich hatte ein Backup von meinem Produkt. Ich habe zuerst die Datenbank erstellt und versucht, die BAK auf der neuen Datenbank auszuführen, die diesen Fehler für mich verursacht hat. Ich habe die Datenbank gelöscht und wiederhergestellt, während ich den neuen Datenbanknamen im Wiederherstellungsbildschirm selbst ermittelt habe. Die Datenbank wurde beim Wiederherstellen automatisch erstellt.

2
Angelina Ilieva

Ich habe nur versucht, dieses Problem zu lösen.

Ich hatte alles versucht, angefangen als Administrator bis hin zu den Vorschlägen, die hier und anderswo zu finden sind. Am Ende war es für mich eine Lösung, die Option "Dateien verschieben" auf der Registerkarte "Dateien" zu aktivieren.

Hoffentlich hilft das jemand anderem.

2
Clint

Einige von Ihnen haben dies stark verkompliziert. Ich fand das sehr einfach.

1) Erstellen Sie eine Datenbank mit demselben Namen wie Ihre .bak-Dateidatenbank! Wichtig

2) Klicken Sie mit der rechten Maustaste auf die Datenbank | Aufgaben> Wiederherstellen> Datenbank

3) Wählen Sie unter "Quelle für Wiederherstellung" die Option "Vom Gerät".

4) Wählen Sie die .bak-Datei

5) Aktivieren Sie das Kontrollkästchen für die Datenbank in der folgenden Rasteransicht

6) Wählen Sie rechts unter "Seite auswählen" die Option "Optionen".

7) Aktivieren Sie das Kontrollkästchen "Replikationseinstellungen beibehalten (WITH KEEP_REPLICATION)".

Kehren Sie jetzt zur Seite "Allgemein" zurück und klicken Sie auf "OK", um die Datenbank wiederherzustellen.

2
Rolon

Ich habe die Arbeit auf eine andere Art und Weise erledigt, indem ich Skripte generiert habe. Das hat bei mir funktioniert, da Backup-Restore aufgrund des gleichen Fehlers nicht zur Behebung des Problems beigetragen hat.

2
Altaf Patel

Sie können eine neue Datenbank wiederherstellen, die Syntax des Dateinamens überprüfen. Sie befindet sich in der Protokolldatei. Für die neue SQL-Version wird das Suffix "_log" verwendet

überprüfen Sie das Überschreiben des vorhandenen Datenbank-Flags auf der Registerkarte "Optionen"

Fabio

1
Fabio

anstatt auf Datenbank wiederherstellen zu klicken, klicken Sie auf Datei und Dateigruppen wiederherstellen ..

das funktioniert auf meinem sql server

0
Ali Sadri

Ich bin sicher, dass dieses Problem mit den Berechtigungen für Dateien und Ordner zusammenhängt.

0
Popas

Ich habe versucht, eine Produktionsdatenbank in einer Staging-Datenbank auf demselben Server wiederherzustellen.

Das einzige, was in meinem Fall funktionierte, war die Wiederherstellung einer neuen leeren Datenbank. Dies hat hervorragend funktioniert und nicht versucht, Produktionsdateien zu überschreiben (was der Fall wäre, wenn Sie nur die Produktionssicherungsdatei in der vorhandenen Staging-Datenbank wiederherstellen). Dann alte Datenbank löschen und umbenennen - die Dateien behalten den neuen temporären Namen, aber in meinem Fall ist das in Ordnung.

(Oder löschen Sie zuerst die Staging-Datenbank und stellen Sie dann die neue Datenbank mit demselben Namen wie die Staging-Datenbank wieder her.)

0
mike nelson