Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте мастер обновления приложений уровня данных или скрипт Windows PowerShell, чтобы изменить схему и свойства приложения уровня данных (DAC), развернутого на данный момент, для соответствия схеме и свойствам, заданным в новой версии приложений уровня данных.
Перед началом работы:Выбор параметров обновления уровня данных, ограничений и ограничений, предварительных требований, безопасности, разрешений
Обновление приложения уровня данных с помощью мастера обновления приложений уровня данных PowerShell
Перед началом
Обновление приложения уровня данных — это процесс, который выполняется на месте и изменяет схему существующей базы для соответствия схеме, заданной в новой версии приложения уровня данных. Новая версия приложения уровня данных содержится в файле пакета приложения уровня данных. Дополнительные сведения о создании пакета DAC см. в разделе Приложения уровня данных.
выбор параметров обновления DAC
Для обновления на месте существует четыре варианта:
Игнорировать потерю данных. Если
Trueобновление продолжится, даже если некоторые операции приводят к потере данных. если этот параметр равенFalse, обновление прекращается при обнаружении таких операций. Например, если какая-то таблица текущей базы данных отсутствует в схеме нового приложения уровня данных и этот параметр равенTrue, такая таблица будет удалена. Значение по умолчанию равноTrue.Блокировать изменения . Если
Trueобновление завершается, если схема базы данных отличается от схемы базы данных, определенной в предыдущем DAC. Если этот параметр равенFalse, обновление продолжится даже в случае обнаружения изменений. Значение по умолчанию равноFalse.Откат при сбое . Если
Trueобновление заключено в транзакцию, и если возникают ошибки отката, будет предпринята попытка. Если этот параметр равенFalse, все изменения фиксируются по мере внесения, а в случае сбоя придется восстанавливать предыдущую версию базы данных с резервной копии. Значение по умолчанию равноFalse.Пропустить проверку политики. Если
Trueполитика выбора сервера DAC не вычисляется. Если этот параметр равенFalse, проверка политики производится, а в случае обнаружения несоответствия обновление прекращается. Значение по умолчанию равноFalse.
Ограничения
Uprades DAC можно выполнять только в База данных SQL или SQL Server 2005 с пакетом обновления 4 (SP4) или более поздней версии.
Необходимые компоненты
Перед началом обновления рекомендуется сделать полную резервную копию базы данных. Если при обновлении возникнет ошибка и откатить все изменения не удастся, может потребоваться восстановление с резервной копии.
Прежде чем начинать обновление, необходимо выполнить некоторые шаги для проверки пакета DAC и действий обновления. Дополнительные сведения о том, как выполнить эти проверки, см. в разделе Validate a DAC Package.
Рекомендуется не выполнять обновление с помощью пакета приложения уровня данных, полученного из неизвестных или ненадежных источников. Эти пакеты могут содержать вредоносный код, который может выполнить непредусмотренный код Transact-SQL или вызвать ошибки, изменив схему. Прежде чем использовать пакет из неизвестного или ненадежного источника, распакуйте приложение уровня данных и проверьте такой код, как хранимые процедуры или другой пользовательский код.
Если в действующую базу данных вносились изменения после развертывания последней версии приложения уровня данных, некоторые такие изменения могут помешать успешному обновлению или будут удалены при обновлении. Сначала следует создать и проанализировать отчет обо всех изменениях, внесенных в базу данных.
Рекомендуется создать список изменений схемы, которые будут внесены при обновлении, и проанализировать его на предмет возможных проблем.
Имя приложения в пакете приложения уровня данных должно быть таким же, как и имя приложения развернутого приложения уровня данных. Например, если имя текущего приложения уровня данных — GeneralLedger, то обновить его можно только с помощью пакета приложения уровня данных с именем приложения GeneralLedger.
Проверить, что в журнале транзакций достаточно места для регистрации всех изменений.
Безопасность
Для повышения безопасности имена входа, использующие проверку подлинности SQL Server, хранятся в пакете DAC без пароля. При развертывании или обновлении пакета имя входа создается как отключенное имя входа с созданным паролем. Чтобы включить имена входа, войдите в систему под учетной записью, имеющей разрешение ALTER ANY LOGIN и с помощью команды ALTER LOGIN включите имя входа и присвойте ему новый пароль, который можно передать пользователю. Это не требуется для имен входа, использующих проверку подлинности Windows, поскольку SQL Server не управляет их паролями.
Разрешения
Обновление DAC может проводиться только членами стандартных ролей сервера sysadmin или serveradmin , либо членами стандартной роли сервера dbcreator с правами доступа ALTER ANY LOGIN. Имя входа должно быть владельцем существующей базы данных. Встроенная учетная запись системного администратора SQL Server с именем sa также может обновить DAC.
Использование мастера обновления приложения уровня данных
Обновление приложения уровня данных с помощью мастера
В Обозревателе объектовразверните узел экземпляра с приложением уровня данных, которое требуется обновить.
Разверните узел Управление , а затем узел Приложения уровня данных .
Щелкните правой кнопкой мыши узел с обновляемым приложением уровня данных и выберите пункт Обновить приложение уровня данных….
Выполните шаги в диалоговых окнах мастера.
Вводная страница
На этой странице описаны шаги обновления приложения уровня данных.
Больше не показывать эту страницу. — щелкните этот флажок, чтобы предотвратить отображение этой страницы в будущем.
Далее > — переходит на страницу выбора пакета .
Отмена — работа мастера завершается без обновления DAC.
Страница «Выбор пакета»
На этой странице указывается пакет приложения уровня данных, содержащий новую версию приложения уровня данных. Страница проходит через два состояния.
Выбор пакета DAC
Чтобы выбрать пакет DAC для развертывания, воспользуйтесь первоначальным состоянием страницы. Пакет DAC должен представлять собой работоспособный файл пакета DAC с расширением DACPAC. Имя приложения уровня данных в пакете приложения уровня данных должно быть таким же, как и имя текущего приложения уровня данных.
Пакет приложения уровня данных — укажите путь и имя файла пакета приложения уровня данных, содержащего новую версию приложения уровня данных. Чтобы указать расположение пакета DAC, можно нажать кнопку Обзор в правой части окна.
Имя приложения — доступное только для чтения текстовое поле, в котором отображается имя приложения уровня данных, присвоенное при создании приложения уровня данных или извлечении из базы данных.
Версия — доступное только для чтения поле, в котором отображается версия, присвоенная пакету DAC при создании или извлечении из базы данных.
Описание — доступное только для чтения поле, в котором отображается описание, сделанное при создании или извлечении пакета DAC из базы данных.
< Назад — возврат на страницу Введение .
Далее > — отображает индикатор выполнения, как мастер подтверждает, что выбранный файл является допустимым пакетом DAC.
Отмена — работа мастера завершается без обновления DAC.
Проверка пакета DAC
Отображается индикатор выполнения, когда мастер подтверждает, что выбранный файл является исправным пакетом DAC. Если выполняется проверка пакета приложения уровня данных, то мастер перейдет на страницу Просмотр политики . Если файл не является допустимым пакетом DAC, мастер остается на странице Выбор пакета DAC . Выберите другой исправный пакет DAC, либо выйдите из мастера и создайте новый пакет DAC.
Проверка содержимого DAC — индикатор выполнения, отражающий текущее состояние процесса выполнения.
< Предыдущая — возвращает начальное состояние страницы выбора пакета .
Далее > — переходит к окончательной версии страницы выбора пакета .
Отмена — мастер прекращает работу без развертывания DAC.
Страница «Просмотр политики»
На этой странице можно просмотреть результаты проверки политики выбора на сервере DAC, если у DAC есть политика. Политика выбора сервера приложения уровня данных не является обязательной, она назначается приложению уровня данных, созданному в среде Microsoft Visual Studio. Политика использует аспекты политики выбора сервера для указания условий, которые должны соответствовать экземпляру ядро СУБД для размещения DAC.
Результаты проверки условий политики — доступный только для чтения отчет, показывающий, успешно ли прошла оценка условий в политике выбора сервера приложения уровня данных. Результаты проверки каждого из условий выводятся отдельной строкой.
Пропускать нарушения политик — установите этот флажок, чтобы приступить к обновлению, если не удалось соблюсти одно или несколько условий политики. Этот параметр следует выбирать только при уверенности, что ни одно из невыполненных условий не будет препятствовать успешной работе DAC.
< Назад — возвращается на страницу выбора пакета .
Далее > — переходит на страницу "Обнаружение изменений ".
Отмена — работа мастера завершается без обновления DAC.
Страница «Обнаружение изменений»
На этой странице отображаются результаты проверки изменений в базе данных, выполненной мастером. Это изменения, из-за которых схема базы данных отличается от определения схемы, которое хранится в метаданных приложения уровня данных в базе данных msdb. Например, если после развертывания исходного приложения уровня данных с помощью инструкций CREATE, ALTER или DROP выполнялось добавление, изменение или удаление объектов из базы данных. Сначала на этой странице отображается индикатор выполнения, а затем результаты анализа.
Выполняется обнаружение изменений, это может занять несколько минут — отображает индикатор выполнения во время проверки мастером различий между текущей схемой базы данных и объектами из определения приложения уровня данных.
Результаты обнаружения изменений: — указывается, что анализ завершен, а его результаты приводятся ниже.
База данных "ИмяБазыДанных" не изменилась — мастер не обнаружил отличий объектов, определенных в базе данных, и их копий из определения приложения уровня данных.
База данных "ИмяБазыДанных" изменилась — мастер обнаружил отличия между объектами из базы данных и их копиями из определения приложения уровня данных.
Продолжить, несмотря на возможную потерю изменений — указывает, что пользователь понимает, что некоторые объекты или данные из текущей базы данных не будут перенесены в новую базу данных, но все равно хочет продолжить обновление. Эту кнопку следует нажимать только после анализа отчета об изменениях, понимая, какие действия необходимо выполнить, чтобы вручную передать объекты или данные, которые потребуются в новой базе данных. Если такой уверенности нет, нажмите кнопку Сохранить отчет , чтобы сохранить отчет об изменениях, а затем нажмите кнопку Отмена. Проанализируйте отчет, запланируйте перенос необходимых объектов и данных после завершения обновления, а затем повторно запустите мастер.
Сохранить отчет — нажмите эту кнопку, чтобы сохранить отчет об изменениях, обнаруженных мастером, между объектами из базы данных и их копиями из определения приложения уровня данных. Отчет можно будет проанализировать, чтобы определить, потребуются ли дополнительные действия после завершения обновления для внесения некоторых или всех объектов, приведенных в отчете, в новую базу данных.
< Предыдущая — возвращается на страницу выбора пакета DAC.
Далее > — переходит на страницу параметров .
Отмена — мастер прекращает работу без развертывания DAC.
Страницы параметров
Используйте эту страницу, чтобы выбрать для обновления параметр отката при сбое.
Откатить при сбое — выберите этот параметр, чтобы заключить обновление в транзакцию, которую в случае сбоя мастер может попытаться откатить. Дополнительные сведения об этом параметре см. в разделе Выбор параметров обновления DAC.
Восстановить значения по умолчанию — параметр возвращается к значению по умолчанию (false).
< Предыдущая — возвращается на страницу "Обнаружение изменений ".
Далее > — переходит на страницу "Обзор плана обновления".
Отмена — мастер прекращает работу без развертывания DAC.
Просмотр страницы «План обновления»
На этой странице можно увидеть, какие действия будут выполнены в процессе обновления. Продолжайте только в случае, если уверены, что обновление не вызовет проблем.
Следующие действия будут использоваться для обновления приложения уровня данных. Просмотрите отображенные сведения для проверки правильности произведенных действий. В столбце Действие показаны все действия, которые будут выполняться для обновления (например, инструкции Transact-SQL). Столбец Потеря данных будет содержать предупреждение, если соответствующее действие может вызвать удаление данных.
Обновить — обновляет список действий.
Сохранить отчет действия — сохраняет содержимое окна действия в виде HTML-файла.
Продолжить, несмотря на возможную потерю изменений — указывает, что пользователь понимает, что некоторые объекты или данные из текущей базы данных не будут перенесены в новую базу данных, но все равно хочет продолжить обновление. Эту кнопку следует нажимать только после анализа отчета об изменениях, понимая, какие действия необходимо выполнить, чтобы вручную передать объекты или данные, которые потребуются в новой базе данных. Если вы не уверены, нажмите кнопку Сохранить отчет о действии , чтобы сохранить отчет о выполнении, а затем кнопку Сохранить скрипты , чтобы сохранить скрипт Transact-SQL. После этого нажмите кнопку Отмена. Проанализируйте отчет и скрипт, запланируйте перенос необходимых объектов и данных после завершения обновления, а затем повторно запустите мастер.
Сохранить скрипты — сохраняет инструкции Transact-SQL, которые будут выполнены для обновления, в текстовом файле.
Восстановить значения по умолчанию — параметр возвращается к значению по умолчанию (false).
< Предыдущая — возвращается на страницу "Обнаружение изменений ".
Далее > — переходит на страницу сводки .
Отмена — мастер прекращает работу без развертывания DAC.
Страница «Сводка»
Используйте эту страницу для окончательного анализа действий, которые мастер выполнит для обновления приложения уровня данных.
Следующие параметры будут использоваться для обновления приложения уровня данных. Просмотрите отображенные сведения для проверки правильности произведенных действий. В этом окне отображается выбранное для обновления приложение уровня данных и пакет приложения уровня данных, содержащий новую версию приложения уровня данных. В нем также отображается, совпадает ли текущая версия базы данных с текущим определением приложения уровня данных или она изменилась.
< Предыдущий — возвращает вас на страницу "Просмотр плана обновления".
Далее > — развертывает DAC и отображает результаты на странице обновления уровня данных.
Отмена — мастер прекращает работу без развертывания DAC.
Страница «Обновление DAC»
Эта страница сообщает об успешном или неуспешном завершении операции обновления.
Обновление приложения уровня данных — сообщает об успехе или неуспехе каждого действия, предпринятого для обновления приложения уровня данных. Просмотрите эти сведения, чтобы выяснить результаты каждого действия. Для каждого действия, в котором обнаружена ошибка, предусмотрена ссылка в столбце Результат . Выберите эту ссылку, чтобы просмотреть отчет об ошибках, относящихся данному действию.
Сохранить отчет — сохранение отчета об обновлении в HTML-файле. В этом файле содержится отчет о состоянии каждого из действий, в том числе все выданные сообщения об ошибках. Папка по умолчанию используется SQL Server Management Studio\DAC Packages, вложенная в папки Documents рабочего каталога учетной записи пользователя Windows.
Готово — завершает работу мастера.
Использование PowerShell
Обновление приложения уровня данных с помощью метода IncrementalUpgrade() в скрипте PowerShell
Создайте объект SMO Server и задайте его экземпляру с приложением уровня данных, которое должно быть обновлено.
Откройте объект
ServerConnectionи подключитесь к тому же экземпляру.Используйте
System.IO.Fileдля загрузки файла пакета приложения уровня данных.Используйте
add_DacActionStartedиadd_DacActionFinishedдля подписки на обновление событий приложения уровня данных.Задайте
DacUpgradeOptions.Для обновления приложения уровня данных используйте метод
IncrementalUpgrade.Закройте файловый поток, используемый для чтения файла пакета приложения уровня данных.
Пример (PowerShell)
В следующем примере обновляется DAC с именем MyApplication в экземпляре ядро СУБД по умолчанию с помощью новой версии DAC в пакете MyApplicationVNext.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\MyApplicationVNext.dacpac"
$fileStream = [System.IO.File]::Open($dacpacPath,[System.IO.FileMode]::OpenOrCreate)
$dacType = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)
## Subscribe to the DAC upgrade events.
$dacstore.add_DacActionStarted({Write-Host `n`nStarting at $(get-date) :: $_.Description})
$dacstore.add_DacActionFinished({Write-Host Completed at $(get-date) :: $_.Description})
## Upgrade the DAC and close the package.
$dacName = "MyApplication"
## Set the upgrade options.
$upgradeProperties = New-Object Microsoft.SqlServer.Management.Dac.DacUpgradeOptions
$upgradeProperties.blockonchanges = $true
$upgradeProperties.ignoredataloss = $false
$upgradeProperties.rollbackonfailure = $true
$ upgradeProperties.skippolicyvalidation = $false
## Upgrade the DAC
$dacstore.IncrementalUpgrade($dacName, $dacType, $upgradeProperties)
## Close the package file.
$fileStream.Close()