Ошибка восстановления базы данных 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 был поврежден. Когда я попробовал его с другим файлом, он работал.
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 причины этой проблемы:
резервное копирование на SQL 2012 и восстановление Headeronly было сделано в SQL 2008 R2
носитель резервной копии поврежден.
если мы запускаем ниже команды, мы всегда можем найти фактическую ошибку:
restore headeronly from disk = 'C:\Users\Public\Database.bak'укажите полное расположение файла базы данных в quot
надеюсь, что это помогает
Comments