Ошибка восстановления базы данных SQL Server: указанный слепок не действителен. (SqlManagerUI)

Я использую SQL Server 2008 R2 Standard (версия 10.50.1600.1) для моего производственного сайта и SQL Server Express edition with Advanced Services (v10.50.1600.1) для моего localhost в качестве базы данных.

Несколько дней назад мой SQL Server сломался, и мне пришлось установить новую версию 2008 R2 Express на моем localhost. Она отлично работала, когда я восстанавливал некоторые старые версии, взятые из редакции Express, но когда я пытаюсь восстановить базу данных из файла .bak, взятого с рабочего сервера, это приводит к следующей ошибке:

Ошибка: Specified cast is not valid. (SqlManagerUI).

и когда я пытаюсь восстановить базу данных с помощью команды

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'

она выдает другую ошибку

  • Сообщение 3154, уровень 16, состояние 4, строка 1 Набор резервных копий содержит резервную копию базы данных, отличную от существующей базы данных 'Publications'.
    Msg 3013, Уровень 16, Состояние 1, Строка 1 RESTORE DATABASE завершается с ошибкой.*

Я проверил все версии. Все они кажутся мне подходящими, как показано на рисунке ниже

Ранее мне удавалось восстановить базу данных из стандартной версии в экспресс-версию, но теперь это не удается. Я удалил базу данных и попытался создать ее заново. Это тоже не удалось.

Я не уверен, что делаю неправильно. Я буду признателен за помощь в этом вопросе.

Проблема была решена, поскольку, похоже, файл .bak был поврежден. Когда я попробовал с другим файлом, все заработало.

Комментарии к вопросу (5)

Это может быть связано с восстановлением файла резервной копии версии SQL Server 2012 в SQL Server 2008 R2 или даже меньше.

Комментарии (5)
Решение

Графический интерфейс иногда может быть непостоянным. Ошибка, которую вы получили при использовании T-SQL, связана с тем, что вы пытаетесь перезаписать существующую базу данных, но не указали, что нужно перезаписать/заменить существующую базу данных. Может сработать следующее:

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.
Комментарии (6)

Наконец-то удалось избавиться от этой ошибки при восстановлении. От разочарования я перешел на SQL2012, но я думаю, что это, вероятно, будет работать и на 2008R2. Мне пришлось использовать логические имена:

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

И оттуда я запустил оператор восстановления с MOVE, используя логические имена.

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'

Когда восстановление было завершено, я чуть не прослезился от радости.

Удачи!

Комментарии (0)

Ниже может быть 2 причины этой проблемы:

  1. Резервное копирование в SQL 2012 и инструкции headeronly восстановление было сделано в SQL 2008 R2 с

  2. Резервный носитель поврежден.

Если мы запустим следующую команду, мы можем найти фактические ошибки всегда:

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

Дать полное расположение файла базы данных в очень

Надеюсь, что это помогает

Комментарии (0)