SQL Server 2005 - Синхронизация баз данных разработки / производства

У меня довольно большая база данных SQL Server 2005, которая постоянно развивается. Время от времени у меня либо появляется новый разработчик, либо мне нужно развернуть широкомасштабные изменения схемы на рабочем сервере.

Меня больше всего беспокоит развертывание обновлений схемы + данных на машинах разработчиков из «главной» копии для разработки.

Есть ли какие-то встроенные функции или инструменты для публикации схемы + данных таким образом? Я бы хотел, чтобы это заняло как можно меньше времени. Можно ли это сделать из SSMS?

Спасибо заранее за ваше время


person Brian Webster    schedule 06.07.2009    source источник
comment
Это дубликат stackoverflow.com/questions/1085677/ А может еще десяток точно понравится. Пожалуйста, сделайте хотя бы один быстрый поиск, прежде чем начинать новый вопрос.   -  person John Saunders    schedule 06.07.2009
comment
Ого, этот вопрос касается моей конкретной ситуации и проблемы прямо сейчас!   -  person Maxim Zaslavsky    schedule 06.07.2009
comment
Вопрос 1085677 не является дубликатом: он не указывает базу данных, не спрашивает, КАК синхронизировать   -  person devio    schedule 06.07.2009
comment
Спасибо всем, кто внес здесь свой вклад. Полное резервное копирование - это не совсем то, что мне нужно, я думаю ... см.: Довольно большой в моем описании проблемы. Однако мне нравятся идеи относительно инструментов Redgate ... и я считаю, что Microsoft SQL Server Database Publishing Wizard 1.1 также является многообещающим лидером. Еще раз спасибо за ваше время.   -  person Brian Webster    schedule 08.07.2009


Ответы (6)


Я предлагаю использовать инструменты RedGate (это не реклама, а реальный опыт работы с ними), которые могут развертывать изменения схемы и / или данные:

  • Сравнение SQL для изменений схемы
  • Сравнение данных SQL для изменения данных

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

Посетите веб-сайт RedGate

person Robert Koritnik    schedule 06.07.2009
comment
Я также использую Redgate, как и многие мои знакомые, использующие SQL Server. Несколько человек, которых я знаю, используют DB Ghost- innovartis.co.uk. - person RichardOD; 06.07.2009
comment
Пользуясь их инструментами в течение некоторого времени, я понимаю вашу рекомендацию. Эти инструменты серьезно экономят время. - person Brian Webster; 01.06.2011

Я знаю, что на это ответили давным-давно, но посмотрите http://en.wikipedia.org/wiki/Microsoft_SQL_Server_Compare_Tools < / а>

Он показывает ряд бесплатных и платных инструментов сравнения.
Например, перечисленным бесплатным инструментом является SQL Server Compare by Yes Soft
http://www.yessoft.com/software/sqlservercompare/sqlservercompare.htm
(источник: yessoft.com)

Информация, представленная на сайте:
-Список бесплатных инструментов
-Список платных инструментов
-Особенности инструментов: сравнение, создание сценария синхронизации, синхронизация, лицензирование

Плюс: 5 бесплатных инструментов, 21 платный.
Обратный: Это Википедия. И ссылки, кажется, указывают на страницы википедии, а не на настоящие домашние страницы, но если вы загуглите, вы их найдете.

person Gage    schedule 14.07.2010

Я добавлю свой голос за инструменты Red Gates - они не дорогие и полезные - у нас есть несколько сложных баз данных, и использование такого инструмента, как SQL Compare, - единственный способ быть уверенным в правильности скриптов обновления. До того, как у нас появились инструменты, иногда было довольно страшно

person andywebsdale    schedule 07.07.2009

Вы можете запланировать задания для резервного копирования и восстановления с помощью SSMS. На мой взгляд, это простейшее решение. Частота этого задания будет зависеть от того, насколько динамична ваша схема / данные.

http://msdn.microsoft.com/en-us/library/ms177429.aspx

person Santosh Chandavaram    schedule 06.07.2009
comment
Я проголосовал за это, потому что это хорошая идея для многих средних и простых ситуаций. Однако я искал более элегантное решение, которое могло бы устранить небольшие различия между источником и местом назначения. Спасибо - person Brian Webster; 08.07.2009

Вы всегда можете просто отсоединить копию базы данных, а затем повторно подключить ее. Эта стратегия работает только в том случае, если не является проблемой для «мастера» быть недоступным в течение нескольких минут, пока выполняется копирование.

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

person Mark    schedule 06.07.2009

Вы можете просто сделать резервную копию и восстановить, используя стандартные функции SQL Server.
Это то, что мы делаем. В любом случае мы запускаем ежедневное резервное копирование на производственном сервере в 21:00.

Затем в 23:00 мы запускаем задание агента SQL Server на тестовом сервере, которое восстанавливает последнюю резервную копию с рабочего сервера («ВОССТАНОВИТЬ БАЗУ ДАННЫХ ...»).

Единственный минус: вам нужно привыкнуть к тому, что все изменения, которые вы вносите в тестовую базу данных, исчезнут на следующее утро :-)

person Christian Specht    schedule 06.07.2009