Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Перед развертыванием пакета приложения уровня данных рекомендуется просмотреть его содержимое и проверить действия по обновлению перед обновлением существующего пакета приложения уровня данных. Тем более это истина для развертывания пакетов, которые ранее в организации не развертывались.
Перед началом работы:Предварительные требования
Для обновления приложения уровня данных с помощью:View the Contents of a DAC, View Database Changes, View Upgrade Actions, Compare DACs
Необходимые компоненты
Рекомендуется не выполнять развертывание пакетов DAC, полученных из неизвестных или ненадежных источников. Такие daCs могут содержать вредоносный код, который может выполнять непреднамеренный код Transact-SQL или вызвать ошибки, изменив схему. Прежде чем использовать DAC из неизвестного или ненадежного источника, разверните его в изолированном тестовом экземпляре ядро СУБД, запустите DBCC CHECKDB (Transact-SQL) в базе данных, а также изучите код, например хранимые процедуры или другой определяемый пользователем код в базе данных.
Просмотр содержимого приложения уровня данных
Просматривать содержимое пакета приложения уровня данных можно с помощью двух механизмов. Можно импортировать пакет приложения уровня данных в проект приложения уровня данных в средствах разработчика SQL Server. Можно распаковать содержимое пакета в папку.
Просмотр приложения уровня данных в средствах разработчика SQL Server
Откройте меню Файл, выберите Создать, затем Проект....
Выберите шаблон проекта SQL Server и укажите Имя, Расположениеи Имя решения.
В обозревателе решений щелкните правой кнопкой мыши узел проекта и выберите пункт Свойства.
На вкладке Параметры проекта в разделе Типы вывода установите флажок Приложение уровня данных (файл с расширением DACPAC) и закройте диалоговое окно свойств.
В обозревателе решений щелкните правой кнопкой мыши узел проекта и выберите Импорт приложения уровня данных....
Используйте Обозреватель решений , чтобы открыть любые файлы в приложении уровня данных, например политику выбора сервера, а также скрипты, выполняемые до и после развертывания.
Используйте Представление схемы , чтобы просмотреть все объекты, составляющие схему, обращая особое внимание на код таких объектов, как функции или хранимые процедуры.
Просмотр приложения уровня данных в папке
Распакуйте пакет приложения уровня данных в папку, следуя инструкциям в Unpack a DAC Package.
Просмотрите содержимое скриптов Transact-SQL, открыв их в ядро СУБД Редактор запросов в Management Studio.
Просмотрите содержимое текстовых файлов с помощью таких средств, как Блокнот.
просмотр изменений базы данных
Непосредственно в связанной базе данных после развертывания текущей версии приложения уровня данных на рабочем сервере могут быть выполнены изменения, конфликтующие со схемой, которая определена в новой версии приложения уровня данных. Прежде чем обновлять приложение уровня данных, проверьте, могут ли изменения, внесенные в базу данных, повлиять на процесс обновления.
Просмотр изменений базы данных с помощью мастера
Запустите мастер обновления приложения уровня данных , указав текущую развернутую версию приложения уровня данных и пакет приложения уровня данных, содержащий новую версию приложения уровня данных.
На странице Обнаружение изменений просмотрите отчет об изменениях, которые были выполнены в базе данных.
Выберите Отмена , если не желаете продолжать обновление.
Дополнительные сведения об использовании мастера см. в разделе Обновление приложения уровня данных.
Просмотр изменений базы данных с помощью PowerShell
Создайте объект SMO Server и задайте его равным экземпляру, содержащему приложение уровня данных, которое требуется просмотреть.
Откройте объект
ServerConnectionи подключитесь к тому же экземпляру.Укажите имя приложения уровня данных в переменной.
Используйте метод
GetDatabaseChanges()для вызова объектаChangeResultsи направьте объект по каналу в текстовый файл, чтобы сформировать простой отчет о новых, удаленных и измененных объектах.
Просмотр примера изменений базы данных (PowerShell)
В следующем примере сообщается о любых изменениях в базе данных, которые были выполнены в развернутом приложении уровня данных с именем MyApplicaiton.
## 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)
## Specify the DAC instance name.
$dacName = "MyApplication"
## Generate the change list and save to file.
$dacChanges = $dacstore.GetDatabaseChanges($dacName) | Out-File -Filepath C:\DACScripts\MyApplicationChanges.txt
просмотр действий по обновлению
Прежде чем использовать новую версию пакета DAC для обновления уровня данных, развернутого из более раннего пакета DAC, можно создать отчет, содержащий инструкции Transact-SQL, которые будут выполняться во время обновления, а затем просмотреть инструкции.
Действия по обновлению отчета с помощью мастера
Запустите мастер обновления приложения уровня данных , указав текущую развернутую версию приложения уровня данных и пакет приложения уровня данных, содержащий новую версию приложения уровня данных.
На странице Сводка просмотрите отчет о действиях обновления.
Выберите Отмена , если не желаете продолжать обновление.
Дополнительные сведения об использовании мастера см. в разделе Обновление приложения уровня данных.
Действия по обновлению отчета с помощью PowerShell
Создайте объект SMO Server и задайте его равным экземпляру, содержащему развернутое приложение уровня данных.
Откройте объект
ServerConnectionи подключитесь к тому же экземпляру.Используйте
System.IO.Fileдля загрузки файла пакета приложения уровня данных.Укажите имя приложения уровня данных в переменной.
Используйте метод
GetIncrementalUpgradeScript()для получения списка инструкций Transact-SQL, которые будут выполняться при обновлении, и направьте этот список по каналу в текстовый файл.Закройте файловый поток, используемый для чтения файла пакета приложения уровня данных.
Просмотр примера действий по обновлению (PowerShell)
Следующий пример предоставляет сведения об инструкциях Transact-SQL, которые будут выполняться для обновления приложения уровня данных с именем MyApplicaiton с переходом на схему, указанную в файле 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)
## Specify the DAC instance name.
$dacName = "MyApplication"
## Generate the upgrade script and save to file.
$dacstore.GetIncrementalUpgradeScript($dacName, $dacType) | Out-File -Filepath C:\DACScripts\MyApplicationUpgrade.sql
## Close the filestream to the new DAC package.
$fileStream.Close()
сравнение приложений уровня данных
Перед обновлением приложения уровня данных рекомендуется проанализировать различия в базе данных и объектах уровня экземпляра между текущим и новым приложениями уровня данных. В случае отсутствия копии пакета действующего приложения уровня данных его можно извлечь из текущей базы данных.
Если импортировать оба пакета приложений уровня данных в проекты приложений уровня данных в средствах разработчика SQL Server, то для анализа различий между ними станет возможным использовать средство «Сравнение схем».
Можно также распаковать приложения уровня данных в отдельные папки. После этого проанализировать различия можно будет с помощью средства поиска отличий, например программы WinDiff.
См. также
Приложения уровня данных
Развертывание приложения уровня данных
Обновление приложения уровня данных