апр 04
Перенос базы данных из SQL Server 2012 в SQL Server 2008

​Возникла необходимость откатиться до 2008 R2 версии сервера для одного капризного продукта. Бекап, сделанный в 2012 версии сервера, не восстанавливается в 2008, детач/аттач базы выдает ошибку.

Решение было найдено в виде создания sql-скрипта, содержащего схему и данные и запуска этого скрипта на конечном сервере.

Для создания скрипта, содержащего схему и данные, необходимо в SQL Management studio выбрать в контекстном меню базы данных Tasks - Generate scripts...

В появившемся окне после приветствия выбрать "script entire database and all database objects", далее нажать кнопку Advanced и в появившемся списке опций поменять параметры "Types of data to script" и "Script for Server Version" на "Schema and data" и "SQL Server 2008 R2" соответственно: 

20130404111043568.png 

После этого в указанном расположении появится файл со скриптом. Его размер и время создания, разумеется, зависят от размера базы.

После того, как операция завершится, нужно выполнить этот скрипт на конечном сервере, однако сделать это через management studio не представляется возможным в случае сколько-нибудь большого файла (мой был около 250 Мб). Поэтому нужно открыть командную строку (я на всякий случай запустил её с повышенными правами) и выполнить команду:

C:\Windows\system32>sqlcmd -S <servername> -i C:\<path>\script.sql -o out.log

После этой небольшой магии на сервере <servername> появится новая база данных с именем исходной и конечно же исходными данными.

Все операции делались мною с "третьего" компьютера, на котором установлена management stuido и от имени пользователя, который имеет необходимые права для доступа к обоим серверам.

Ссылки:

http://superuser.com/a/469597

http://stackoverflow.com/a/431915

Заметки

Нет заметок для этой записи.