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

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

Пакет BAC — это связанный артефакт, который инкапсулирует схему базы данных и данные, хранящиеся в базе данных.

Преимущества приложений уровня данных

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

Приложение уровня данных — это средство управления жизненным циклом базы данных и производительностью, обеспечивающее декларативную разработку базы данных для упрощения развертывания и управления. Разработчик может создавать базу данных в проекте базы данных SQL Server Data Tool, а также в пакете DAС для передачи администратору баз данных. Администраторы базы данных могут разворачивать приложение уровня данных с помощью среды SQL Server Management Studio на тестовый или производственный экземпляр SQL Server или База данных SQL Windows Azure. Кроме того, администратор базы данных может использовать пакет DAC для обновления ранее развернутой базы данных при помощи среды SQL Server Management Studio. Для завершения жизненного цикла администратор может извлечь базу данных в пакет DAC и передать ее разработчику для выполнения тестирования или производственных настроек или для выполнения изменений схемы базы данных в ответ на изменения в приложении.

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

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

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

Приложение уровня данных упрощает разработку, развертывание и управление элементами уровня данных, которые поддерживают приложение.

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

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

  • В общем, средства приложения уровня данных можно использовать для чтения файлов пакета DAC, созданных средствами приложения уровня данных в предыдущих версиях SQL Server, а также для развертывания пакетов DAC в предыдущих версиях SQL Server. Однако средства приложения уровня данных более ранних версий не могут читать файлы пакета DAC, созданные средствами приложения уровня данных более поздних версий. В частности:

    • Операции приложения уровня данных появились в SQL Server 2008 R2. Наряду с базами данных SQL Server 2008 R2, эти средства поддерживают создание файлов пакета DAC в базах данных SQL Server 2008, SQL Server 2005 и SQL Server 2000.

    • Наряду с базами данных SQL Server 2012 эти средства, поставляемые в составе SQL Server 2012, могут читать файлы DACPAC, созданные средствами приложения уровня данных, поставляемыми в составе SQL Server 2008 R2. В том числе базы данных SQL Server 2008 R2, SQL Server 2008 и SQL Server 2005, но не SQL Server 2000.

    • Средства приложения уровня данных в SQL Server 2008 R2 не могут читать файлы DACPAC, созданные средствами из SQL Server 2012.

  • Пакет DAC — это файл Windows с расширением DACPAC. Этот файл имеет открытый формат, состоящий из нескольких XML-разделов, которые отображают сведения об исходном объекте пакета DAC, объектах базы данных и других характеристиках. Опытный пользователь может распаковать файл с помощью служебной программы DacUnpack.exe, которая входит в состав продукта для подробного исследования каждого раздела.

  • Для создания базы данных, в том числе с помощью развертывания пакета DAC, пользователь должен быть членом роли dbmanager или иметь разрешения CREATE DATABASE. Для удаления базы данных пользователь должен быть членом роли dbmanager или иметь разрешения DROP DATABASE.

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

Файл DACPAC может свободно использоваться в нескольких средствах, поставляемых с SQL Server 2012. Эти средства удовлетворяют потребности различных пользователей с помощью пакета DAC в качестве единицы взаимодействия.

  • Разработчик приложений

    • Разработчик базы данных может использовать проект базы данных SQL Server Data Tools для проектирования базы данных. Успешное построение такого проекта приводит к созданию пакета DAC, который содержится в файле DACPAC.

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

    • Средства SQL Server Data Tools также поддерживают локальные базы данных для изолированной разработки приложений баз данных на стороне клиента. Разработчик может сделать моментальный снимок этой локальной базы данных для создания пакета DAC, содержащегося в файле DACPAC.

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

  • Администратор базы данных

    • Администратор базы данных может использовать среду SQL Server Management Studio для извлечения пакета DAC из существующей базы данных, а также для выполнения других операций приложения уровня данных.

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

  • Независимые поставщики программного обеспечения

    • Службы размещения и другие продукты управления данными SQL Server могут использовать API-интерфейс DACFx для операций приложения уровня данных.
  • ИТ-администратор

    • Системные интеграторы и ИТ-администраторы могут использовать программу командной строки SqlPackage.exe для операций приложения уровня данных.

Операции приложения уровня данных

Приложение уровня данных поддерживает следующие операции:

  • ИЗВЛЕЧЕНИЕ — пользователь может извлечь базу данных в пакет DAC.

  • РАЗВЕРТЫВАНИЕ — пользователь может развернуть пакет DAC на основном сервере. При развертывании из средств управления, например, среды SQL Server Management Studio или портала управления SQL Azure результирующая база данных на основном сервере будет неявно зарегистрирована в качестве приложения уровня данных.

  • РЕГИСТРАЦИЯ — пользователь может зарегистрировать базу данных в качестве приложения уровня данных.

  • ОТМЕНИТЬ РЕГИСТРАЦИЮ — можно отменить регистрацию базы данных, ранее зарегистрированную в качестве приложения уровня данных.

  • ОБНОВЛЕНИЕ — база данных может быть обновлена с помощью пакета DAC. Обновление обеспечивается даже для базы данных, которая не зарегистрирована ранее в качестве приложения уровня данных, но по мере выполнения обновления база данных будет зарегистрирована явным образом.

Пакет резервного копирования (BACPAC)

Пакет BAC — это артефакт, который инкапсулирует схему базы данных, а также хранящиеся в ней данные. Пакет BAC — это файл Windows с расширением BACPAC. Подобно пакету DAC, формат файла пакета BAC является открытым — содержимое схемы пакета BAC идентично содержимому схемы пакета DAC. Данные хранятся в формате JSON.

Пакеты DAC и BAC похожи, но предназначены для разных сценариев. Пакет DAC осуществляет захват и развертывание схемы, включая обновление существующей базы данных. В основном пакеты DAC используются для развертывания четко определенной схемы в средах проектирования, тестирования и работы и обратно: захват производственной схемы и применение ее в среде тестирования и разработки.

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

Пакет BAC обеспечивает две основных операции:

  • ЭКСПОРТ — пользователь может экспортировать схему и данные из базы данных в пакет BAC.

  • ИМПОРТ — пользователь может импортировать схему и данные в новую базу данных на основном сервере.

Обе эти возможности поддерживаются средствами управления базами данных: средой Server Management Studio, порталом управления для SQL Azure и API-интерфейсом DACFx.

Разрешения

Для создания базы данных, в том числе с помощью развертывания пакета приложения уровня данных, пользователь должен быть членом роли dbmanager или иметь разрешения CREATE DATABASE. Для удаления базы данных пользователь должен быть членом роли dbmanager или иметь разрешения DROP DATABASE.

Задачи приложений уровня данных

Описание задачи

Раздел

Описывает, как с помощью файла пакета DAC создать новый экземпляр DAC.

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

Описывает, как с помощью нового файла пакета DAC обновить экземпляр DAC до новой версии.

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

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

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

Описывает процедуру просмотра состояния исправности развернутых DAC с помощью служебной программы SQL Server.

Наблюдение за приложениями уровня данных

Описывает способ создания BACPAC-файла, содержащего архив данных и метаданных из DAC.

Экспорт приложения уровня данных

Описывает процедуру использования файла архива приложения уровня данных (BACPAC) для выполнения логического восстановления приложения уровня данных или для его переноса на другой экземпляр компонента Компонент Database Engine или База данных SQL.

Импорт файла BACPAC для создания новой пользовательской базы данных

Описывает процесс импорта BACPAC-файла для создания новой пользовательской базы данных на экземпляре SQL Server.

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

Описывает процедуру обновления существующей базы данных до экземпляра DAC. Определение DAC строится и хранится в системной базе данных.

Регистрация базы данных в качестве приложения уровня данных

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

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

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

Распаковка пакета DAC

Описывает использование мастера для развертывания существующей базы данных. Для выполнения развертывания мастер использует приложения уровня данных.

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

См. также

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

Поддержка приложений уровня данных для объектов и версий SQL Server