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

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

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

Ошибка: указанный сброс недействителен. (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'

Он генерирует другую ошибку

Msg 3154, уровень 16, состояние 4, строка 1
Набор резервных копий содержит резервную копию базы данных, отличной от существующей базы данных "Публикации".
Msg 3013, уровень 16, состояние 1, строка 1
RESTORE DATABASE заканчивается аномально.

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

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

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

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

Ответ 1

Графический интерфейс может быть изменчивым время от времени. Ошибка, возникающая при использовании 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.

Ответ 2

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

Ответ 3

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

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

И оттуда я запустил инструкцию restore с 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'

Когда это было сделано, я почти заплакал от радости.

Удачи!