Fout bij herstellen SQL Server database: opgegeven worp is ongeldig. (SqlManagerUI)

Ik gebruik SQL Server 2008 R2 Standard (versie 10.50.1600.1) voor mijn productie website en SQL Server Express editie met Advanced Services (v10.50.1600.1) voor mijn localhost als database.

Een paar dagen geleden crashte mijn SQL Server en moest ik een nieuwe 2008 R2 Express versie installeren op mijn localhost. Het werkte prima toen ik een aantal oudere versies van de Express editie herstelde, maar wanneer ik database probeer te herstellen van een .bak bestand dat van de productie server is gehaald, geeft dit de volgende foutmelding:

Error: Gespecificeerde cast is niet geldig. (SqlManagerUI)

en wanneer ik probeer om de database te herstellen met behulp van commando

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'

Het genereert een andere foutmelding

Msg 3154, Level 16, State 4, Line 1 De backup set bevat een backup van een andere database dan de bestaande 'Publications' database.
Msg 3013, Level 16, State 1, Line 1 RESTORE DATABASE is terminating abnormally.

Ik heb de versies kruiselings gecontroleerd. Ze lijken me allemaal overeen te komen, zoals te zien is in de onderstaande afbeelding

Eerder was ik in staat om een database te herstellen van standaard versie naar express editie, maar nu mislukt het. Ik heb de database verwijderd en geprobeerd hem opnieuw te maken. Dat mislukt ook.

Ik weet niet zeker wat ik fout doe. Ik zou graag hulp krijgen met betrekking tot

Issue was resolved as it seems .bak file was corrupt. Toen ik het probeerde met een ander bestand werkte het.

Kan zijn vanwege het terugzetten van SQL Server 2012 versie back-up bestand in SQL Server 2008 R2 of zelfs minder.

Commentaren (5)
Oplossing

De GUI kan soms wispelturig zijn. De fout die u kreeg bij het gebruik van T-SQL is omdat u een bestaande database probeert te overschrijven, maar niet specificeerde om de bestaande database te overschrijven/vervangen. Het volgende zou kunnen werken:

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.
Commentaren (6)

Eindelijk heb ik deze foutmelding weg gekregen bij een restore. Ik ben uit frustratie overgestapt op SQL2012, maar ik denk dat dit waarschijnlijk nog steeds zou werken op 2008R2. Ik moest de logische namen gebruiken:

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

En van daaruit heb ik een restore statement met MOVE uitgevoerd met gebruik van logische namen.

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'

Toen het herstellen klaar was, huilde ik bijna van vreugde.

Veel geluk.

Commentaren (0)