Приложения уровня данных (DAC)
Область применения:
SQL Server (все поддерживаемые версии)
База данных SQL Azure
Управляемый экземпляр SQL Azure
Приложение уровня данных (DAC) — это логическая сущность базы данных, которая определяет все объекты SQL Server, такие как таблицы, представления и объекты экземпляров, включая имена входа, связанные с базой данных пользователя. DAC — это автономная единица всей модели базы данных и переносимая в артефакт, известный как пакет приложения уровня данных или DACPAC. Поддержка инструментов для приложений уровня данных позволяет разработчикам и администраторам баз данных развертывать dacpacs в новых или существующих базах данных. Развертывания в существующей базе данных обновляют модель базы данных из существующего состояния в соответствии с содержимым dacpac. Разработчики создают daCs из проектов базы данных SQL, декларативную концепцию разработки для создания объектов SQL, которые обеспечивают управление версиями в схеме базы данных.
BACPAC — это связанный артефакт, который по умолчанию инкапсулирует схему базы данных и данные, хранящиеся в базе данных. В основном файлы BACPAC используются для перемещения базы данных с одного сервера на другой или с локального сервера на облачный, а также для архивации существующих баз данных в открытом формате.
Преимущества приложений уровня данных
Жизненный цикл приложения базы данных может включать разработчиков и администраторов баз данных обмен скриптами и совместное использование заметок интеграции для действий обновления приложений. Хотя этот процесс является приемлемым в некоторых случаях, может быть трудно интегрировать с конвейерами DevOps и общими процессами разработки.
Приложения уровня данных обеспечивают декларативную разработку баз данных, упрощая процесс разработки и обеспечивая более последовательный и предсказуемый интерфейс разработки. Разработчик может создавать базу данных с проектами базы данных SQL в выбранной интегрированной среде разработки (IDE). Проект базы данных SQL можно скомпилировать в пакет приложения уровня данных локально или в конвейере DevOps. Пакет приложения уровня данных, в свою очередь, развертывается в тестовой, промежуточной или рабочей базе данных с помощью автоматизированного процесса или вручную с помощью интерфейса командной строки или графического пользовательского интерфейса. DACPAC можно использовать для обновления базы данных с новыми или измененными объектами, для возврата к предыдущей версии базы данных или для подготовки совершенно новой базы данных. И наоборот, DACPAC можно создать из существующей базы данных и использовать для создания проекта базы данных SQL на основе текущей схемы базы данных.
Преимущество развертывания на основе приложения уровня данных по сравнению с процессом, управляемым миграцией, заключается в том, что процесс обеспечивает идентификацию и проверку поведения из разных исходных и целевых баз данных. Средства, используемые во время развертывания или обновления базы данных, имеют возможность пометить рискованные действия, такие как изменения размера столбцов, которые могут привести к потере данных и возможности напрямую создать скрипт плана обновления. Этот план можно оценить вручную, прежде чем продолжить обновление.
Operations
Приложение уровня данных упрощает разработку, развертывание и управление элементами уровня данных, поддерживающими приложение.
DACPAC
Приложение уровня данных поддерживает следующие операции:
EXTRACT — пользователь может извлечь базу данных в DACPAC. Дополнительные сведения см. в статье sqlPackage.Извлечение и извлечение приложения уровня данных из базы данных.
РАЗВЕРТЫВАТЬ/PUBLISH — пользователь может развернуть DACPAC на сервере узла. Когда развертывание выполняется в существующей базе данных, разница между базой данных и приложением уровня данных применяется к базе данных в качестве операции обновления объектов. Термин "publish" часто используется взаимозаменяемо с "deploy". Дополнительные сведения см. в разделе публикации SqlPackage, развертывании приложения уровня данных и развертывании базы данных с помощью приложения уровня данных.
Эти возможности можно найти в SqlPackage, SQL Server Management Studio, Azure Data Studio и SQL Server Data Tools.
Проекты базы данных SQL
Проект SQL поддерживает следующие операции:
BUILD — пользователь может создать проект базы данных SQL в DACPAC.
PUBLISH — пользователь может опубликовать проект базы данных SQL на сервере узла.
EXTRACT — пользователь может извлечь базу данных в проект базы данных SQL.
Эти возможности можно найти в Azure Data Studio, Visual Studio Code и SQL Server Data Tools.
Пакет BAC
BACPAC, с другой стороны, сосредоточен на захвате схемы и данных, поддерживающих две основные операции:
EXPORT- Пользователь может экспортировать схему и данные базы данных в BACPAC. Дополнительные сведения см. в статье об экспорте и экспорте приложения уровня данныхSqlPackage.
IMPORT — пользователь может импортировать схему и данные в новую базу данных. Дополнительные сведения см. в разделе импорта и импортаBACPAC-файла SqlPackage для создания новой пользовательской базы данных.
Эти возможности поддерживаются средствами SqlPackage, SQL Server Management Studio, Azure Data Studio и портал Azure.
Средства приложения уровня данных
Артефакты приложений уровня данных и проекты SQL можно использовать в нескольких инструментах. Эти средства устраняют требования различных пользователей.
DACPAC и BACPAC
Следующие средства поддерживают формат пакета приложения уровня данных и пакета BAC:
В этих средствах базу данных можно извлечь в DACPAC или экспортировать в BACPAC. И наоборот, BACPAC-файл можно импортировать в новую базу данных или DACPAC-файл можно опубликовать в новой или существующей базе данных.
Проекты DACPAC и SQL
Следующие средства поддерживают формат пакета приложения уровня данных в дополнение к редактированию проектов базы данных SQL:
В этих средствах разработчики могут разрабатывать базу данных в несоединяемой клиентской среде разработки. Эти средства можно использовать для создания пакета приложения уровня данных, развертывания пакета приложения уровня данных в базе данных и импорта пакета базы данных в проект SQL.
Основные понятия приложения уровня данных
Поддерживаемые версии
Как правило, средства приложения уровня данных могут считывать DACPAC-файлы, созданные средствами DAC из предыдущих версий SQL Server, а также развертывать пакеты приложения уровня данных в предыдущих версиях SQL Server. Однако средства приложения уровня данных из более ранних версий не могут считывать DACPAC-файлы , созданные средствами приложения уровня данных из более поздних версий. Как минимум, средства приложения уровня данных поддерживают поддерживаемые версии SQL Server во время их выпуска.
Формат файла
DACPAC — это сжатая папка с расширением DACPAC, а BACPAC — это сжатая папка с расширением BACPAC. Расширенный пользователь может распаковать файл для просмотра нескольких разделов XML, представляющих сведения о источнике, объектах в базе данных и других характеристиках. Чтобы распаковать DACPAC или BACPAC-файл, замените расширение файла .zip и используйте служебную программу сжатия файлов для распаковки файла.
Регистрация приложения уровня данных
В SQL Server Management Studio другие действия можно выполнить в базе данных, чтобы зарегистрировать ее в качестве приложения уровня данных.
РЕГИСТРАЦИЯ — пользователь может зарегистрировать базу данных в качестве приложения уровня данных.
ОТМЕНА РЕГИСТРАЦИИ — можно отменить регистрацию базы данных, ранее зарегистрированной в качестве приложения уровня данных.
UPGRADE — базу данных можно обновить с помощью DACPAC.
Дополнительные сведения об этих действиях см. в следующих задачах.
| Задача | Ссылка на статью |
|---|---|
| Описывает, как с помощью нового файла пакета DAC обновить экземпляр DAC до новой версии. | Обновление приложения уровня данных |
| Описывает порядок удаления экземпляра DAC. Также можно отсоединить или удалить связанную базу данных или оставить ее без изменений. | Удаление приложения уровня данных |
| Описывает процедуру просмотра состояния исправности развернутых DAC с помощью служебной программы SQL Server. | Наблюдение за приложениями уровня данных |
| Описывает процедуру обновления существующей базы данных до экземпляра DAC. Определение DAC строится и хранится в системной базе данных. | Регистрация базы данных в качестве приложения уровня данных |
| Описывает процесс анализа содержимого пакета DAC, а также действия, которые выполняет обновление DAC перед использованием пакета в рабочей системе. | Проверка пакета приложения уровня данных |