В основном я изучал стек программного обеспечения Ms и работал над приложением, которое использовало файл * .mdf, подключенный к локальному экземпляру ./SQLEXPRESS.
Затем я обновил все программное обеспечение на машине до Windows 8 RTM, Visual Studio 2012 Pro и т. Д. И установил SQL Server Express 2012 с последней версией базовой Management Studio. Когда я впервые запустил VS2012, он попросил меня преобразовать файл MDF в последнюю версию, что я и сделал. Как бы то ни было, у меня также есть копия того, который не был обновлен / преобразован.
Теперь я хочу развернуть и протестировать это приложение на виртуальном хостинге и загрузить свою базу данных на их SQL-сервер, эта служба хостинга использует SQL Server 2008 R2. Когда я пытаюсь импортировать файл * .bak, созданный последними вышеупомянутыми инструментами Ms, на этот сервер, я получаю следующую ошибку: The media family on device is incorrectly formed. SQL Server cannot process this media family. (severity 16)
Я читал, и, похоже, это связано исключительно с несовместимостью версий, когда старая версия SQL-сервера не будет работать с файлами * .bak и другими, созданными с помощью нового поколения инструментов.
Первое, что я сделал, - это загрузил и загрузил SQL Server Management Studio 2008 на свой компьютер с Windows 8, к моему разочарованию, это было бесполезно, и я просто выдавал ошибки, когда я пытался сделать резервную копию, и в целом почувствовал, что у него проблемы с совместимостью. Возможно, потому, что я подключился к новому локальному серверу (LocalDB) \ v11.0 вместо старого ./SQLEXPRESS, который я больше не устанавливал.
В общем, следует ли ожидать, что инструменты SQL Server 2008 Express и Management будут работать в Windows 8? В противном случае, каковы мои варианты (помимо загрузки старого программного стека в виртуальную машину и т. Д.), Может быть, есть режим обратной совместимости при создании резервных копий? Или какое-то другое программное обеспечение, которое будет работать в Windows 8 и делать дамп * .bak, используя более старую версию файла mdf?
Вы не можете восстановить резервную копию базы данных с более поздней версии SQL Server до более низкой версии SQL Server.
Я могу без проблем подключиться к экземплярам 2005 Express из новой версии SQL Server Management Studio (в моем случае это SQL 2008 R2),. Я ожидал, что это будет работать так же (раньше я ошибался). Я бы посоветовал ему не обновлять существующий экземпляр и оставаться на старом движке, чтобы вы могли протестировать его, а затем развернуть на своей виртуальной машине. FWIW, вы можете попробовать использовать «Backup Database @DatabaseName to disk = @FilePath WITH INIT, STATS = 10, CHECKSUM, COMPRESSION;» вместо использования встроенного резервного копирования, поэтому он удаленно выполняет процедуру за вас на удаленном экземпляре. Раньше (и, вероятно, все еще можно) запускать более одной версии SQL на одном компьютере (не уверен, поддерживается это или нет). Вам что-то мешает?