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


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

Для развертывания приложения уровня данных (DAC) из пакета DAC на существующем экземпляре SQL Azure или на экземпляре SQL Server 2005 с пакетом обновления 4 (SP4) или более поздней версии используется мастер развертывания приложения уровня данных. В процессе развертывания экземпляр приложения уровня данных регистрируется путем сохранения определения приложения уровня данных в системной базе данных msdb (master в SQL Azure), создается база данных, после чего она заполняется объектами базы данных, определенными в приложении уровня данных.

Перед началом

Развернуть DAC можно только на экземпляре компонента Database Engine, имеющего версию не ниже SQL Server 2005 с пакетом обновления 4 (SP4), или на SQL Azure. Следует использовать клиентские средства SQL Server 2008 R2, а также, возможно, платформу DAC Framework 1.1. Дополнительные сведения см. в разделе Поддержка приложений уровня данных для объектов и версий SQL Server.

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

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

Требования

При наличии соединения с SQL Server 2005 с пакетом обновления 4 (SP4) или более поздней версией приложение уровня данных может быть развернуто только членами предопределенных ролей сервера sysadmin и serveradmin, а также членами предопределенной роли базы данных dbcreator, имеющими разрешение ALTER ANY LOGIN. Приложение уровня данных может быть развернуто членом учетной записи системного администратора SQL Server с именем sa. При развертывании DAC с применением имен входа в SQL Azure необходимо иметь членство в ролях loginmanager или serveradmin. При развертывании DAC без имен входа в SQL Azure необходимо иметь членство в ролях dbmanager или serveradmin.

Примечание по безопасностиПримечание по безопасности

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

Пароли имен входа

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

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

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

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

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

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

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

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

Развертывание DAC с помощью PowerShell

Создайте скрипт PowerShell (с расширением .ps1), содержащий следующий код.

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

    ## Set a SMO Server object to the default instance on the local computer.
    CD SQLSERVER:\SQL\localhost\DEFAULT
    $srv = get-item .
    
  2. Добавьте код, чтобы открыть объект ServerConnection и подключиться к тому же экземпляру.

    ## 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)
    
  3. Добавьте код для загрузки файла пакета DAC. В этом примере загружается файл MyApplication.dacpac.

    ## 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)
    
  4. Добавьте код для подписки на события развертывания DAC.

    ## 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})
    
  5. Добавьте код для развертывания DAC, создайте базу данных и закройте файл пакета DAC.

    ## 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()
    

Запустите DeployDAC.ps1 из сеанса PowerShell, в котором была выполнена загрузка оснасток SQL Server PowerShell, или с помощью программы командной строки sqlps.

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

В среде Management Studio, чтобы запустить мастер развертывания приложения уровня данных, в Обозревателе объектов необходимо перейти к узлу Управление в узле сервера, щелкнуть правой кнопкой мыши узел Приложения уровня данных и выбрать команду Развернуть приложение уровня данных…

Мастер развертывает приложение уровня данных на экземпляре компонента Database Engine, связанном с узлом, выбранным в иерархии Обозревателя объектов. Например, если мастер был запущен после щелчка правой кнопкой мыши узла сервера для экземпляра ProductionServer01/Accounting, то приложение уровня данных будет развернуто на этом экземпляре компонента Database Engine.

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

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

  • Выберите страницу пакета 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 Azure: версия операционной системы, язык, включенные именованные каналы, платформа и включенный протокол TCP.

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

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

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

Отмена — работа мастера завершается без развертывания DAC.

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

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

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

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

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

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

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

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

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

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

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

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

Отмена — работа мастера завершается без развертывания DAC.

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

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

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

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

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

Отмена — работа мастера завершается без развертывания DAC.

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

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

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

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

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

Журнал изменений

Обновленное содержимое

Добавлен раздел, посвященный использованию PowerShell.