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

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

Приложение уровня данных может быть извлечено из баз данных, размещенных в экземплярах SQL Azure или SQL Server 2005 с пакетом обновления 4 (SP4) или более поздней версии.

Мастер извлечения приложения уровня данных не выполняет регистрацию определения DAC на текущем экземпляре компонента Database Engine. Дополнительные сведения о регистрации пользовательских элементов отчета см. в разделе Как зарегистрировать базу данных в качестве приложения уровня данных.

Извлечение DAC с помощью PowerShell

Построение и запуск скриптов

  1. Создайте файл ExtractDAC.ps1.

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

    ## Set a SMO Server object to the default instance on the local computer.
    CD SQLSERVER:\SQL\localhost\DEFAULT
    $srv = get-item .
    
  3. Добавьте код для указания базы данных. В данном примере указана база данных MyDB.

    ## Specify the database to extract to a DAC.
    $dbname = "MyDB"
    
  4. Укажите метаданные для DAC. В данном примере задаются имя, версия и описание DAC.

    ## Specify the DAC metadata.
    $applicationname = "MyApplication"
    $version = "1.0.0.0"
    $description = "This DAC defines the database used by my application."
    
  5. Укажите путь к извлеченному файлу пакета DAC и его имя.

    ## Specify the location and name for the extracted DAC package.
    $dacpacPath = "C:\MyDACs\MyApplication.dacpac"
    
  6. Добавьте код для запуска метода Extract с использованием данных, указанных выше.

    ## Extract the DAC.
    $extractionunit = New-Object Microsoft.SqlServer.Management.Dac.DacExtractionUnit($srv, $dbname, $applicationname, $version)
    $extractionunit.Description = $description
    $extractionunit.Extract($dacpacPath)
    
  7. Запустите ExtractDAC.ps1 из сеанса PowerShell, в котором была выполнена загрузка оснасток SQL Server PowerShell, или с помощью программы командной строки sqlps.

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

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

  1. В обозревателе объектов разверните узел Базы данных, щелкните правой кнопкой мыши базу данных, укажите пункт Задачи, а затем выберите Извлечение приложения на уровне данных.

  2. Чтобы создать пакет DAC на основе выбранной базы данных, следуйте указаниям мастера. Дополнительные сведения см. в разделе Справка F1 мастера извлечения приложения на уровне данных.

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

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

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