SQL Server 2008 R2 Зеркальное отображение для развертывания? - PullRequest
2 голосов
/ 26 апреля 2011

Мне интересно, возможно ли это, и в какой степени мне понадобятся знания? У меня есть 3 базы данных, все построенные на платформе SQL Server 2k8R2. 2 находятся на одном сервере, а 1 - на другом сервере, связанном с той же сетью. Один из них предназначен для разработки (вы знаете, какой классный вы можете сломать, укусить, надрать, когда никто не смотрит, и т. Д.) Мне интересно, смогу ли я установить какое-либо зеркалирование, которое позволило бы мне сохранить программные изменения во всех трех из них. Например, если бы я разработал новую таблицу и SPROC в моей базе данных разработчиков. Протестируйте и убедитесь, что все хорошо и работает, есть ли способ, когда я фиксирую свои изменения, чтобы эта таблица вместе с ее ключами, индексами, FK и SPROC, которые я создал, автоматически генерировалась в двух других базах данных, без необходимости перепишите сценарий и запустите их. Прости мое невежество, я знаю, что могу написать сценарий изменений и просто загрузить каждое из них и запустить сценарий, чтобы сгенерировать все, что я создал, но я хочу иметь возможность делать это в реальном времени на лету. Является ли это чем-то безболезненным процессом, который можно сделать легко? Мне все равно, чтобы реплицировать данные внутри таблицы (таблиц) только программные биты кода. Любая помощь очень ценится.

Большое спасибо, John

Ответы [ 2 ]

3 голосов
/ 26 апреля 2011

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

[ Также обратите внимание : для зеркального отображения базы данных требуется SQL Server 2008 Enterprise Edition]

Вместо этого используйте надстройку проекта базы данных Visual Studio 2008 GDE (или теперь встроенную в VS 2010). Или используйте Инструменты синхронизации Redgate . Оба могут быть включены в ваши автоматизированные процессы сборки.

Visual Studio 2010: Работа с проектами базы данных

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

Обновление: в настоящее время я использую проекты базы данных VS2010 в рабочем процессе, похожем на следующее:

  1. Получить последний исходный код
  2. Развертывание текущей схемы БД в моем локальном экземпляре SQL Server (включает предварительное заполнение статических эталонных данных (и может также загружать реалистичные операционные данные системы)
  3. Вносить любые изменения схемы непосредственно в локальную базу данных (и любые связанные изменения кода локально).
  4. Сборка и тестирование локально.
  5. Используйте инструмент сравнения схем проекта базы данных, чтобы сравнить локальную БД с моделью в проекте БД, синхронизировать, чтобы сгенерировать ожидающие изменения сценариев в сценариях.
  6. Проверьте все в.
  7. развертывание в один клик для тестирования системы и т. Д. (Я подробно рассмотрел некоторые детали)
0 голосов
/ 26 апреля 2011

Вам следует подумать о более традиционных инструментах разработки, сборки и развертывания, таких как Visual Studio Database Edition, инструменты Red Gate, DBGhost, Team City и т. Д. Это инструменты, предназначенные для работы.

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

...