Поделиться через


Построение и развертывание баз данных в тестовой или производственной среде

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

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

Настройка проекта базы данных для развертывания в тестовой или производственной среде

В свойствах развертывания проекта базы данных можно задать параметры, соответствующие тестовым и производственным серверным средам. Эти параметры разработчики должны задавать отдельно от параметров изолированных сред разработки. Поддерживая такое разделение можно настроить конфигурации проекта для тестовых и производственных сред, которые не смогут изменить другие разработчики. У каждой конфигурации есть подключение целевой базы данных к тестовому или производственному серверу, собственный SQLDEPLOYMENT-файл и собственный SQLCMDVARS-файл.

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

Подробные сведения о конфигурации развертывания

Перед развертыванием проекта в тестовой или производственной среде следует рассмотреть перечисленные ниже вопросы.

  • Если тестовая или производственная среда уже настроена, возможно, нужно будет воспользоваться параметрами сортировки целевой базы данных.

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

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

  • Если резервное копирование объектов и данных не выполняется отдельно от процесса развертывании, возможно, в процессе развертывания нужно будет создать резервную копию базы данных.

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

  • Возможно, нужно будет создать инструкции DROP для объектов, находящихся в базе данных, но отсутствующих в проекте базы данных. Проект базы данных должен соответствовать правильной версии тестовых и производственных схем. Исключением может быть ситуация, когда данные нужно переместить вручную после развертывания обновлений в базе данных. В этом случае объекты не нужно удалять до тех пор, пока не будет выполнена миграция.

Переменные команд SQL

При развертывании в тестовой или производственной среде у переменных должны быть значения, соответствующие этой среде. Например, в тестовых или производственных средах для сервис-брокеров или сертификатов служб могут понадобиться значения, отличные от значений, используемых в среде разработки. Задав другой SQLCMDVARS-файл для каждой целевой среды, можно избежать необходимости внесения изменений в значения этих переменных при изменении целей разработки. Такая практика позволяет также избавиться от необходимости задавать SQLCMDVARS-файл с помощью переменных MSBuild, чтобы получить особые значения для конкретной конфигурации. Для каждой развертываемой конфигурации может существовать отдельный SQLCMDVARS-файл.

Развертывание серверных проектов

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

Для развертывания проекта сервера используются те же процедуры, которые используются для развертывания проекта схемы.

Развертывание ролей

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

Развертывание из командной строки

На компьютере без Visual Studio Premium проект базы данных можно развернуть из командной строки, если на нем установлены следующие обязательные компоненты.

  • Microsoft .NET Framework версии 3.5 с пакетом обновления 1 (SP1)

  • Управляющие объекты SQL Server (SMO)

    Их следует устанавливать на все компьютеры, на которых установлен сервер SQL Server.

Кроме этих обязательных компонентов на этот компьютер следует также переместить перечисленные ниже файлы. Возможно, их нужно будет предварительно скопировать на USB-диск.

  • Результаты построения проекта базы данных (отладочная конфигурация или конфигурация построения)

  • Содержимое папки развертывания для Visual Studio Premium

    Обычно к ней ведет следующий путь: [Program Files]\VSTSDB\Deploy.

  • Сборки для сервера SQL Server, выпуск Compact

После установки обязательных компонентов и перемещения файлов можно развернуть проект базы данных (в форме DBSCHEMA-файла) в целевой базе данных

Общие задачи

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

Задача

Справочные разделы

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

Развертывание только готовых объектов. Файлы, содержащие определения объектов базы данных, которые еще не готовы для развертывания или тестирования, можно исключить.

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

Настройка проекта базы данных для развертывания.

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

  • Сведениями развертывания можно управлять, изменяя файл, содержащий сведения о развертывании.

  • Задав соответствующие значения переменных, можно настроить использование различных сервис-брокеров или сертификатов служб при каждом развертывании.

  • Можно указать, должны ли обновляться свойства базы данных при ее развертывании, и какие значения эти свойства должны принимать.

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

Построение проекта базы данных. Проект базы данных можно построить в Visual Studio или в командной строке с помощью MSBuild для подготовки к развертыванию.

Развертывание проекта базы данных. Проект базы данных можно развернуть в Visual Studio с помощью MSBuild в процессе выполнения модульного теста базы данных или воспользовавшись VSDBCMD в командной строке, чтобы обновить целевую базу данных или сервер.

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

Устранение неполадок. Здесь можно узнать об устранении наиболее распространенных проблем при построении и развертывании проекта базы данных.

Связанные сценарии

См. также

Основные понятия

Написание и изменение кода базы данных

Создание и изменение объектов базы данных и сервера