it-swarm.com.de

Fehler beim Wiederherstellen der SQL Server-Datenbank: Die angegebene Besetzung ist ungültig. (SqlManagerUI)

Ich verwende SQL Server 2008 R2 Standard (Version 10.50.1600.1) für meine Produktionswebsite und SQL Server Express Edition mit erweiterten Diensten (Version 10.50.1600.1) für meinen lokalen Host als Datenbank.

Vor ein paar Tagen stürzte mein SQL Server ab und ich musste eine neue Version von 2008 R2 Express auf meinem localhost installieren. Es hat einwandfrei funktioniert, als ich einige ältere Versionen aus der Express Edition wiederhergestellt habe. Wenn ich jedoch versuche, die Datenbank aus der .bak - Datei wiederherzustellen, die vom Produktionsserver stammt, wird der folgende Fehler verursacht:

Fehler: Die angegebene Besetzung ist ungültig. (SqlManagerUI)

und wenn ich versuche, die Datenbank mit Befehl wiederherzustellen

Use Master
Go
RESTORE DATABASE Publications
FROM DISK = 'C:\Publications.bak'
WITH MOVE 'Publications' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS2008R2\MSSQL\DATA\Publications.mdf',--adjust path
MOVE 'AlPublications_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS2008R2\MSSQL\DATA\Publications.ldf'

Es wird ein anderer Fehler generiert

Nachricht 3154, Ebene 16, Status 4, Zeile 1
Der Sicherungssatz enthält eine Sicherung einer anderen Datenbank als der vorhandenen 'Publications'-Datenbank.
Nachricht 3013, Ebene 16, Status 1, Zeile 1
RESTORE DATABASE wird abnormal beendet.

Ich habe die Versionen überprüft. Sie scheinen alle zu mir zu passen, wie im Bild unten gezeigt

Früher konnte ich eine Datenbank von der Standardversion auf die Express Edition zurücksetzen, aber jetzt schlägt dies fehl. Ich habe die Datenbank gelöscht und versucht, sie neu zu erstellen. Das scheitert auch.

Ich bin mir nicht sicher, was ich falsch mache. Ich würde mich über Hilfe in dieser Hinsicht freuen

Problem wurde behoben wie es scheint .bak Datei war beschädigt. Als ich es mit einer anderen Datei versuchte, funktionierte es.

89
Learning

Die GUI kann manchmal launisch sein. Der Fehler bei der Verwendung von T-SQL besteht darin, dass Sie versuchen, eine vorhandene Datenbank zu überschreiben, aber nicht angegeben haben, die vorhandene Datenbank zu überschreiben/zu ersetzen. Folgendes könnte funktionieren:

Use Master
Go
RESTORE DATABASE Publications
  FROM DISK = 'C:\Publications_backup_2012_10_15_010004_5648316.bak'
  WITH 
    MOVE 'Publications' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS2008R2\MSSQL\DATA\Publications.mdf',--adjust path
    MOVE 'Publications_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS2008R2\MSSQL\DATA\Publications.ldf'
, REPLACE -- Add REPLACE to specify the existing database which should be overwritten.
39
SchmitzIT

Möglicherweise wird die Sicherungsdatei der SQL Server 2012-Version in SQL Server 2008 R2 oder noch weniger wiederhergestellt.

161
Subhash Makkena

Schließlich bekam dieser Fehler bei einer Wiederherstellung zu verschwinden. Ich bin aus Frustration zu SQL2012 gewechselt, aber ich denke, das würde wahrscheinlich immer noch auf 2008R2 funktionieren. Ich musste die logischen Namen verwenden:

RESTORE FILELISTONLY
FROM DISK = ‘location of your.bak file’

Und von dort aus habe ich eine Restore-Anweisung mit MOVE unter Verwendung logischer Namen ausgeführt.

RESTORE DATABASE database1
FROM DISK = '\\database path\database.bak'
WITH
MOVE 'File_Data' TO 'E:\location\database.mdf',
MOVE 'File_DOCS' TO 'E:\location\database_1.ndf',
MOVE 'file' TO 'E:\location\database_2.ndf',
MOVE 'file' TO 'E:\location\database_3.ndf',
MOVE 'file_Log' TO 'E:\location\database.ldf'

Als es fertig war, weinte ich fast vor Freude.

Viel Glück!

15

Im Folgenden finden Sie zwei Gründe für dieses Problem:

  1. Die unter SQL 2012 und Restore Headeronly vorgenommene Sicherung wurde in SQL 2008 R2 durchgeführt

  2. Sicherungsmedium ist beschädigt.

Wenn wir den folgenden Befehl ausführen, können wir immer den tatsächlichen Fehler finden:

restore headeronly
from disk = 'C:\Users\Public\Database.bak'

Geben Sie den vollständigen Speicherort Ihrer Datenbankdatei im Anführungszeichen an

Ich hoffe es hilft

4
Keren Caelen