Каков рекомендуемый подход к синхронизации / резервному копированию / восстановлению с SQL Server 2008 до SQL Server 2005? - PullRequest
0 голосов
/ 30 марта 2010

У меня на компьютере разработчика только SQL Server 2008 (Dev Edition)

SQL Server 2005 доступен только для моей хостинговой компании (и у меня нет прямого доступа к этой базе данных)

Мне просто интересно, для чего лучший подход:

  1. Получение первоначальной структуры и данных БД для производства.
  2. И синхронизировать любые структурные изменения / изменения данных в будущем.

Насколько я вижу ...

  • Репликация - не вариант, потому что я не могу подключиться к производственной БД.

  • Восстановление резервной копии - не вариант, потому что, насколько я вижу, вы не можете экспортировать БД из 2008, которая может быть восстановлена ​​в 2005 году (даже если БД 2008 была установлена ​​в режиме совместимости 2005 года), и она не будет в любом случае имеет смысл восстановить производство поверх моей версии для разработчиков.

  • Извлеките все сценарии из моей базы данных 2008 года, верните мой Dev на компьютер с 2008 -> 2005 и воссоздайте базу данных из сценариев, затем просто используйте резервное копирование и восстановление, чтобы запустить исходную БД в эксплуатацию, затем запустите скрипты через веб-панель с этого момента

  • Дамп всех сценариев из моей базы данных 2008 года и генерация всего 2005 дБ из сценариев в производстве. с этого момента запускайте скрипты через веб-панель

  • С последними двумя вариантами, мне, вероятно, потребуется также написать сценарий для всех вставок данных, используя какой-либо инструмент (который, я полагаю, существует в Интернете)

Существуют ли другие возможные решения, которые я не рассматриваю.

Ответы [ 3 ]

5 голосов
/ 30 марта 2010

Самый безопасный вариант будет состоять в том, чтобы вернуть вашу среду разработки в SQL 2005, таким образом, независимо от того, какой код будет совместим с вашей средой размещения. Вы должны иметь возможность установить отдельный экземпляр 2005 на свой компьютер, что должно сэкономить время (по соображениям производительности должен быть активен только один из 2005/2008 одновременно). Чтобы настроить это, вам может потребоваться удалить 2008, затем установить экземпляр 2005, а затем установить экземпляр 2008.

Что касается данных, вам может понадобиться утилита BCP для копирования данных в базу данных и из нее. Как только вы это освоите, это будет довольно быстро и удобно.

3 голосов
/ 30 марта 2010

Это потому, что ваши результаты разработки - это MDF базы данных, а не исходные тексты сценариев. битва уже проиграна. Помимо различий в начальной версии механизма развертывания, у вас будут другие проблемы, как только вы попытаетесь развернуть свое первое обновление приложения. Вы обнаружите, что пытаетесь применить дельту схемы в производство, а не простые подвиги. Вы, вероятно, в конечном итоге использовать такие инструменты, как SQL Compare или что-то подобное. И это даже сейчас, когда у вас есть 1 (один) разработчик и 1 (один) рабочий сервер. По мере того, как вы добавляете больше разработчиков или больше развертываний, все становится все хуже и хуже.

Но есть и лучшие способы.

Один из способов - использовать инструмент разработки на основе исходного кода, такой как Visual Studio Database Edition. Результатом проекта VSDB является .dbschema, который может быть развернут как разностная дельта в производство с использованием инструмента vsdbcmd .

Еще лучший способ - создать версию вашей схемы и развернуть все через сценарии обновления с v. N до v. N + 1. См. Контроль версий и ваша база данных .

Оба подхода обеспечивают, помимо управляемого пути развертывания, версию управления исходным кодом вашей схемы базы данных.

Это правда, что даже при использовании подхода, основанного на сценариях, вы можете в конечном итоге использовать в своем сценарии функции 2008 года и удивиться во время развертывания, такой инструмент, как VSDB, может фактически перехватить их во время сборки / компиляции. Даже если вы допустили ошибку, ее легко восстановить, изменив сценарии, вместо того, чтобы начинать с нуля в новой пустой базе данных надлежащей пониженной версии.

3 голосов
/ 30 марта 2010

Вы можете запускать как экземпляры 2005, так и 2008 года (и, по сути, несколько экземпляров каждого) на своей машине разработки (как вы упоминали, вы также можете запускать базы данных в режиме совместимости 2005 года в 2008 году, что действительно полезно только для отключения синтаксиса функции). Я бы порекомендовал это, так как вы сказали, что у вас есть возможность отменить установку до 2005 года - просто запустите обе программы рядом.

Итак, вы можете выполнить резервное копирование и восстановление с вашего хостинга на вашу машину разработчика, а затем использовать любое количество инструментов сравнения баз данных (скажем, Red Gate SQL Compare или ApexSQLDiff), чтобы сравнить базы данных 2005 и 2008 годов на вашем компьютере разработчика и произвести изменения. скрипты для первого тестирования в dev и последующего применения к продукции.

...