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



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



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




ошибка: указанное приведение недопустимо. (SqlManagerUI)




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



Use Master
Go
RESTORE DATABASE Publications
FROM DISK = 'C:Publications.bak'
WITH MOVE 'Publications' TO 'C:Program FilesMicrosoft SQL ServerMSSQL10_50.SQLEXPRESS2008R2MSSQLDATAPublications.mdf',--adjust path
MOVE 'AlPublications_log' TO 'C:Program FilesMicrosoft SQL ServerMSSQL10_50.SQLEXPRESS2008R2MSSQLDATAPublications.ldf'


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




Msg 3154, Уровень 16, Состояние 4, Строка 1

Резервный набор данных содержит копию базы данных, отличной от существующей базы данных "публикации".

Msg 3013, Уровень 16, Состояние 1, Линия 1

Восстановление базы данных завершается ненормально.




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



ранее мне удалось восстановить базу данных из стандартной версии в express edition, но теперь это не удается. Я удалил базу данных и попытался воссоздать его. Это тоже не удается.



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



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

1069   4  

4 ответов:

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

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

наконец-то получил эту ошибку, чтобы уйти на восстановление. Я перешел на 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'

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

удачи!

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

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

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

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

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

укажите полное расположение файла базы данных в quot

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

Comments

    Ничего не найдено.