Как перенести базу данных с SQL Server 2008 на SQL Server 2005?
Я установил уровень совместимости на 90 и создал резервную копию.
В сообщении об исключении говорится:
семейство носителей на устройстве ... сформировано неправильно
Нет возможности установить соединение между базами данных для копирования данных с помощью мастеров SSIS.
Как можно эффективно перенести базу данных с SQL 2008 на 2005?
Я почти уверен, что, к сожалению, восстановить базу данных, зарезервированную новой версией SQL-сервера, вообще невозможно.
Хотя вы не можете подключить машины для выполнения экспорта с помощью мастеров, возможно, они будут поддерживать создание скриптов, содержащих как структуру, так и данные (во многом как резервная копия mySQL)? Стандартные инструменты, безусловно, могут создавать сценарии для структурирования и сохраненной программируемости (процессы, триггеры, ...). Может потребоваться небольшая работа с экспортом данных и повторным импортом, но это возможно.
Другой вариант - установить SQL2008 где-нибудь локально по отношению к экземпляру SQL2005 и попробовать выполнить передачу на основе мастера таким образом (восстановить этот SQL2008 и передать оттуда SSIS). Существует ограниченная по времени ознакомительная версия SQL2008: http://www.microsoft.com/sqlserver/2008/en/us/trial-software.aspx
Точно так же вы можете попробовать то же самое, установив SQL2005 где-нибудь локально по отношению к экземпляру SQL2008, перенеся туда данные с помощью SSIS и, таким образом, имея возможность создать файл резервной копии, совместимый с SQL2005.
После обновления версия базы данных уже не может быть понижена. Установка уровня совместимости изменяет только определенные способы поведения выполнения запроса, но абсолютно не влияет на физический формат базы данных: база данных режима совместимости 90 - это база данных SQL 2008, а не SQL 2005.
Итак, если вам нужно развернуть базу данных на SQL 2005, вы должен создайте его на SQL 2005. Не только это, но это должна быть та же версия SQL 2005, что означает тот же уровень SP и CU. Или, по крайней мере, версия более ранняя, чем целевой сервер. Таким образом, если целевой сервер - SP1 CU3, вы можете создать базу данных в RTM на любом CU и на SP1, SP1 CU1, SP1 CU2 или SP1 CU3. Но вы не можете создать его ни в SP1 CU4, ни в каких-либо выпусках после SP1 (например, SP2). Как я уже сказал, базу данных можно обновить, но нельзя понизить.
Вы можете либо записать базу данных и ее содержимое в текстовый SQL, а затем импортировать сценарии на целевой сервер, воссоздать базу данных на правильной версии SQL-сервера или обновить целевую версию до 2008 года.
Насколько велика база данных? Я предполагаю, что вы не используете ни один из новых типов данных 2008 года.
Вы можете создать скрипт для схемы базы данных в SQL Server 2008 и сделать скрипт совместимым с 2005 годом. После этого вы можете сделать BCP из всех таблиц из 2008 и импортировать их в 2005. Вы также можете добиться этого через SSIS, но BCP будет быстрее (по крайней мере, для меня)