Развертывание приложения уровня данных

Приложение уровня данных (DAC) вы можете развернуть из пакета DAC на существующем экземпляре Компонент Database Engine или База данных SQL с помощью мастера или скрипта Powershell. Процесс развертывания регистрирует экземпляр приложения уровня данных путем сохранения определения приложения уровня данных в системной базе данных msdb (master в База данных SQL), создает базу данных и заполняет ее всеми объектами базы данных, заданными в приложении уровня данных.

  • Перед началом работы выполните следующие действия. Служебная программа SQL Server, Настройка параметров баз данных, Ограничения, Предварительные требования, Безопасность, Разрешения

  • Чтобы развернуть приложение уровня данных, используя: Мастер развертывание приложений уровня данных, PowerShell

Перед началом работы

Один и тот же пакет приложения уровня данных может быть развернут на одном экземпляре компонента Компонент Database Engine несколько раз, но каждый раз можно развертывать только по одному пакету. На экземпляре компонента Компонент Database Engine имя экземпляра приложения уровня данных, указанное для каждого развертывания, должно быть уникальным.

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

Служебная программа SQL Server

Если приложение уровня данных развертывается на управляемом экземпляре компонента Database Engine, развернутое приложение уровня данных будет включено в служебную программу SQL Server при следующей отправке набора элементов сбора программы из экземпляра в пункт управления программой. После этого приложение уровня данных появится в узле Развернутые приложения уровня данных в окне Среда Management Studio Проводник служебной программы, а соответствующие сведения будут отображаться на странице подробностей Развернутые приложения уровня данных.

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

По умолчанию база данных, созданная при развертывании, получит все параметры по умолчанию из инструкции CREATE DATABASE, кроме следующих.

  • Параметры сортировки и уровень совместимости базы данных устанавливаются в соответствии со значениями, заданными в пакете DAC. Пакет приложения уровня данных (DAC), созданный на основе проекта базы данных в средствах разработчика SQL Server (SQL Server Developer Tools), использует значения, заданные в проекте базы данных. Пакет, извлеченный из существующей базы данных, использует значения этой базы данных.

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

Некоторые параметры баз данных, например TRUSTWORTHY, DB_CHAINING и HONOR_BROKER_PRIORITY, нельзя изменять в рамках процедуры развертывания. Физические свойства, например количество файловых групп или количество и размер файлов, нельзя изменять в рамках процедуры развертывания. После завершения развертывания можно настроить базу данных с помощью инструкции ALTER DATABASE, среды Среда SQL Server Management Studio или программы SQL Server PowerShell. Дополнительные сведения см. в разделе Изменение базы данных.

[В начало]

Ограничения

Развернуть компонент DAC можно на экземпляре компонента База данных SQL или экземпляре Компонент Database Engine, где работает SQL Server 2005 с пакетом обновления 4 (SP4) или более поздней версии. Если приложение уровня данных (DAC) создается с помощью SQL Server 2012 или SQL Server 2008 R2, это приложение может содержать объекты, не поддерживаемые в SQL Server 2005. Невозможно развернуть данные приложения уровня данных для экземпляров SQL Server 2005.

[В начало]

Предварительные требования

Рекомендуется не выполнять развертывание пакетов DAC, полученных из неизвестных или ненадежных источников. Эти пакеты могут содержать вредоносный код, который может выполнить непредусмотренный код Transact-SQL или вызвать ошибки, изменив схему. Прежде чем использовать пакет из неизвестного или ненадежного источника, распакуйте приложение уровня данных и проверьте такой код, как хранимые процедуры или другой пользовательский код. Дополнительные сведения о том, как выполнить эти проверки, см. в разделе Проверка пакета приложения уровня данных.

[В начало]

Безопасность

Для повышения безопасности имена входа, использующие проверку подлинности SQL Server, хранятся в пакете DAC без пароля. При развертывании или обновлении пакета имя входа создается как отключенное имя входа с созданным паролем. Чтобы включить имена входа, войдите в систему под учетной записью, имеющей разрешение ALTER ANY LOGIN и с помощью команды ALTER LOGIN включите имя входа и присвойте ему новый пароль, который можно передать пользователю. Это не требуется для имен входа, использующих проверку подлинности Windows, поскольку SQL Server не управляет их паролями.

[В начало]

Разрешения

Развертывать приложения уровня данных могут только члены предопределенных ролей сервера sysadmin или serveradmin либо члены предопределенной роли сервера dbcreator с разрешениями ALTER ANY LOGIN. Встроенная учетная запись системного администратора SQL Server с именем sa также может развертывать приложения уровня данных. При развертывании DAC с именами входа в База данных SQL необходимо иметь членство в ролях loginmanager или serveradmin. При развертывании приложения уровня данных без имен входа в База данных SQL необходимо членство в ролях dbmanager или serveradmin.

[В начало]

Использование мастера развертывания приложения уровня данных

Развертывание приложения уровня данных с помощью мастера

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

  2. Щелкните правой кнопкой мыши узел Базы данных и выберите Развернуть приложение уровня данных…

  3. Выполните шаги в диалоговых окнах мастера.

    • Вводная страница

    • Выберите страницу пакета DAC

    • Страница «Просмотр политики»

    • Страница «Обновление конфигурации»

    • Страница «Сводка»

    • Страница «Развертывание»

[В начало]

Вводная страница

На этой странице описаны шаги развертывания приложения уровня данных.

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

Далее> — переход на страницу Выбор пакета приложения уровня данных.

Отмена — завершение работы мастера без развертывания приложения уровня данных.

[мастер развертывания]

Выберите страницу пакета DAC

Эта страница используется для указания пакета приложения уровня данных, содержащего приложение уровня данных для развертывания. Страница проходит через три состояния.

[мастер развертывания]

Выбор пакета DAC

Чтобы выбрать пакет DAC для развертывания, воспользуйтесь первоначальным состоянием страницы. Пакет DAC должен представлять собой работоспособный файл пакета DAC с расширением DACPAC.

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

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

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

Описание — доступное только для чтения поле, в котором отображается описание, сделанное при создании или извлечении пакета DAC из базы данных.

< Назад — возврат к странице Введение.

Далее > — отображается индикатор выполнения, когда мастер подтверждает, что выбранный файл является исправным пакетом DAC.

Отмена — мастер прекращает работу без развертывания DAC.

[мастер развертывания]

Проверка пакета DAC

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

Проверка содержимого DAC — индикатор выполнения, отражающий текущее состояние процесса выполнения.

< Назад — возврат к первоначальному состоянию страницы Выбор пакета.

Далее > — переход к окончательной версии страницы Выбор пакета.

Отмена — мастер прекращает работу без развертывания DAC.

[мастер развертывания]

Страница «Просмотр политики»

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

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

Следующие политики выбора сервера всегда возвращают False при развертывании DAC в База данных SQL: версия операционной системы, язык, включенные именованные каналы, платформа и включенный протокол TCP.

Игнорировать нарушения политики — установите этот флажок, чтобы приступить к развертыванию, если не удалось соблюсти одно или несколько условий политики. Этот параметр следует выбирать только при уверенности, что ни одно из невыполненных условий не будет препятствовать успешной работе DAC.

< Назад — возврат на страницу Выбор пакета.

Далее > — переход на страницу Обновление конфигурации.

Отмена — мастер прекращает работу без развертывания DAC.

[мастер развертывания]

Страница «Обновление конфигурации»

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

Имя базы данных: — укажите имя базы данных, которая будет создана при развертывании. По умолчанию указывается имя базы данных-источника, из которой было извлечено приложение уровня данных. Имя должно быть уникальным на данном экземпляре компонента Компонент Database Engine и должно соответствовать правилам для идентификаторов компонентов Компонент Database Engine.

При изменении имени базы данных имена файлов данных и журналов также изменятся с учетом этого нового значения.

Имя базы данных также используется в качестве имени экземпляра приложения уровня данных. Имя экземпляра отображается в узле для приложения уровня данных, расположенном в узле Приложения уровня данных в Обозревателе объектов или в узле Развернутые приложения уровня данных в Обозревателе программ.

Следующие параметры не применяются к База данных SQL и не отображаются при выполнении развертывания в База данных SQL.

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

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

Путь и имя файла данных: — укажите полный путь к файлу данных и его имя. В этом поле содержится путь и имя файла по умолчанию. Измените строку в этом поле, чтобы изменить значение по умолчанию, либо с помощью кнопки «Обзор» перейдите в папку, в которую следует поместить файл данных.

Путь и имя файла журнала: — укажите полный путь и имя файла журнала. В этом поле содержится путь и имя файла по умолчанию. Измените строку в этом поле, чтобы изменить значение по умолчанию, либо с помощью кнопки Обзор перейдите в папку, в которую следует поместить файл журнала.

< Назад — возврат на страницу Выбор пакета DAC.

Далее > — переход на страницу Сводка.

Отмена — мастер прекращает работу без развертывания DAC.

[мастер развертывания]

Страница «Сводка»

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

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

< Назад ― возврат на страницу Обновление конфигурации для изменения выбранных параметров.

Далее> — развертывание приложения уровня данных и отображение результатов на странице Развертывание приложения уровня данных.

Отмена — мастер прекращает работу без развертывания DAC.

[мастер развертывания]

Страница «Развертывание»

Эта страница сообщает об успешном или неуспешном завершении операции развертывания.

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

Сохранить отчет — сохранить отчет о развертывании в HTML-файле. В этом файле содержится отчет о состоянии каждого из действий, в том числе все выданные сообщения об ошибках. По умолчанию используется папка «SQL Server Management Studio\DAC Packages», вложенная в папку Documents рабочего каталога учетной записи пользователя Windows.

Готово — завершает работу мастера.

[мастер развертывания]

Использование PowerShell

Развертывание приложения уровня данных с помощью метода Install() в скрипте PowerShell

  1. Создайте объект SMO Server и задайте его экземпляру, в котором хотите развернуть приложение уровня данных.

  2. Откройте объект ServerConnection и соединитесь с тем же экземпляром.

  3. Используйте System.IO.File для загрузки файла пакета приложения уровня данных.

  4. Используйте add_DacActionStarted и add_DacActionFinished, чтобы подписаться на события приложения уровня данных.

  5. Задайте DatabaseDeploymentProperties.

  6. Используйте метод DacStore.Install для развертывания приложения уровня данных.

  7. Закройте файловый поток, используемый для чтения файла пакета приложения уровня данных.

[В начало]

Пример (PowerShell)

В следующем примере приложение уровня данных MyApplication развертывается на экземпляре Компонент Database Engine по умолчанию с использованием определения приложения уровня данных из пакета MyApplication.dacpac.

## Set a SMO Server object to the default instance on the local computer.
CD SQLSERVER:\SQL\localhost\DEFAULT
$srv = get-item .

## Open a Common.ServerConnection to the same instance.
$serverconnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($srv.ConnectionContext.SqlConnectionObject)
$serverconnection.Connect()
$dacstore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverconnection)

## Load the DAC package file.
$dacpacPath = "C:\MyDACs\MyApplication.dacpac"
$fileStream = [System.IO.File]::Open($dacpacPath,[System.IO.FileMode]::OpenOrCreate)
$dacType = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)

## Subscribe to the DAC deployment events.
$dacstore.add_DacActionStarted({Write-Host `n`nStarting at $(get-date) :: $_.Description})
$dacstore.add_DacActionFinished({Write-Host Completed at $(get-date) :: $_.Description})

## Deploy the DAC and create the database.
$dacName  = "MyApplication"
$evaluateTSPolicy = $true
$deployProperties = New-Object Microsoft.SqlServer.Management.Dac.DatabaseDeploymentProperties($serverconnection,$dacName)
$dacstore.Install($dacType, $deployProperties, $evaluateTSPolicy)
$fileStream.Close()

[В начало]

См. также

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

Приложения уровня данных

Извлечение приложения уровня данных из базы данных

Идентификаторы баз данных