none
Переезд MS SQL 2005 на MS SQL 2000 (downgrade) RRS feed

  • Вопрос

  • Есть SQL сервер 2005, база данных под 2005 (на одном)

    Есть SQL сервер 2000 (на другом)

    Нужно - перенести данные в 2005 на 2000.

    Вопрос, как это можно сделать??

Ответы

  • Я делал перенос нескольких баз с 2005 на 2000 несколькими способами. Расскажу, чем я пользовался. Сразу уточню, что я переносил структуру и данные.

    1. С помощью SSIS пакета. А конкретно Transfer SQL Server Objects Task. Для маленьких баз прокатило на ура, но на больших 60-150 Гб были ошибки, поэтому там я действовал по-другому.

    2. С помощью генерации скриптов для объектов. Для начала укажи в свойствах SQL Server Management Studio в меню Tools -> Options, далее SQL Server Object Explorer -> Scripting в разделе Script for server version укажи SQL Server 2000. Далее я соскриптовал саму базу, создал ее на SQL Server 2000 и перенес все таблицы с помощью репликации. А дальше уже создал все недостающие объекты (хранимые процедуры, функции, индексы и т.п.) тоже с помощью скриптинга.

    Ну и после переноса еще неплохо сравнить структуру баз на серверах с помощью сторонних утилит, например Red Gate SQL Compare. Сразу можно вычислить, где еще что-то потерялось. Например права на объекты, значения по умолчанию и т.п. Очень рекоменду этот шаг сделать.

    Соответственно, если тебе не нужны данные, то можешь просто генерировать скрипты через мастер (правой клавишей на базе Tasks -> Generate Scripts) и применять их потом на SQL Server 2000.

    И еще напоследок: необходимо быть на 100% уверенным, что у тебя в базе не используются вещи, которые есть появились только в SQL Server 2005. Т.е. для начала потребуется исправить хранимые процедуры и функции, возможно типы данных в таблицах и т.п.

Все ответы

  • Вам нужно перенести только данные? или и структуру базы тоже? Если только данные, то Integration Services - мастер Импорта/Экспорта.

    • Предложено в качестве ответа Denis ReznikMVP 29 мая 2010 г. 9:15
  • По идее нужно перенести всю базу, но можно попробовать и данные.

    Т.е. если я достану точно такую же базу, но под 2000 я смогу при помощи мастер Импорта/Экспорта IS  перенести данные из одной базы в другую (2005->2000)??
  • Да. Ещё можете заскриптовать структуру текущей: БД -> контекстное меню -> Tools -> Generate Scripts. Там на каком-то шаге будет кнопка Advanced, нажав на которую можно выбрать для какой версии генерировать скрипт. В том числе и для 2000.

    • Предложено в качестве ответа Denis ReznikMVP 29 мая 2010 г. 9:15
  • Уважаемый Andrey Mikhailov ,

    как продвигается решение проблемы? Вы все успешно мигрировали?

    Модератор
  • Я делал перенос нескольких баз с 2005 на 2000 несколькими способами. Расскажу, чем я пользовался. Сразу уточню, что я переносил структуру и данные.

    1. С помощью SSIS пакета. А конкретно Transfer SQL Server Objects Task. Для маленьких баз прокатило на ура, но на больших 60-150 Гб были ошибки, поэтому там я действовал по-другому.

    2. С помощью генерации скриптов для объектов. Для начала укажи в свойствах SQL Server Management Studio в меню Tools -> Options, далее SQL Server Object Explorer -> Scripting в разделе Script for server version укажи SQL Server 2000. Далее я соскриптовал саму базу, создал ее на SQL Server 2000 и перенес все таблицы с помощью репликации. А дальше уже создал все недостающие объекты (хранимые процедуры, функции, индексы и т.п.) тоже с помощью скриптинга.

    Ну и после переноса еще неплохо сравнить структуру баз на серверах с помощью сторонних утилит, например Red Gate SQL Compare. Сразу можно вычислить, где еще что-то потерялось. Например права на объекты, значения по умолчанию и т.п. Очень рекоменду этот шаг сделать.

    Соответственно, если тебе не нужны данные, то можешь просто генерировать скрипты через мастер (правой клавишей на базе Tasks -> Generate Scripts) и применять их потом на SQL Server 2000.

    И еще напоследок: необходимо быть на 100% уверенным, что у тебя в базе не используются вещи, которые есть появились только в SQL Server 2005. Т.е. для начала потребуется исправить хранимые процедуры и функции, возможно типы данных в таблицах и т.п.