Como extrair um DAC de um banco de dados

Use o Assistente para Extrair um Aplicativo da Camada de Dados ou um script do Windows PowerShell para extrair um pacote de DAC (aplicativo da camada de dados) de um banco de dados do SQL Server existente. O processo de extração cria um arquivo de pacote de DAC que contém definições dos objetos de banco de dados e os elementos em nível de instância relacionados. Por exemplo, um arquivo de pacote de DAC contém as tabelas do banco de dados, os procedimentos armazenados, as exibições e os usuários junto com os logons que mapeiam para os usuários de banco de dados.

É possível extrair um DAC de bancos de dados que residam em instâncias do SQL Azure, do SQL Server 2005 Service Pack 4 (SP4) ou posterior.

O Assistente para Extrair um Aplicativo da Camada de Dados não registra a definição do DAC na instância atual do Mecanismo de Banco de Dados. Para obter mais informações sobre como registrar um DAC, consulte Como registrar um banco de dados como um DAC.

Extrair um DAC usando o PowerShell

Compilando e executando um script

  1. Crie um arquivo ExtractDAC.ps1.

  2. Adicione código para criar um objeto SMO Server e defini-lo como a instância que contém o banco de dados do qual você quer extrair um DAC. Este exemplo define um objeto Server como a instância padrão no computador local:

    ## Set a SMO Server object to the default instance on the local computer.
    CD SQLSERVER:\SQL\localhost\DEFAULT
    $srv = get-item .
    
  3. Adicione código para especificar o banco de dados. Esse exemplo especifica um banco de dados denominado MyDB:

    ## Specify the database to extract to a DAC.
    $dbname = "MyDB"
    
  4. Especifique os metadados do DAC. Esse exemplo especifica o nome, a versão e a descrição do DAC:

    ## Specify the DAC metadata.
    $applicationname = "MyApplication"
    $version = "1.0.0.0"
    $description = "This DAC defines the database used by my application."
    
  5. Especifique o caminho e o nome do arquivo de pacote de DAC extraído.

    ## Specify the location and name for the extracted DAC package.
    $dacpacPath = "C:\MyDACs\MyApplication.dacpac"
    
  6. Adicione código para executar o método Extract com as informações especificadas acima.

    ## Extract the DAC.
    $extractionunit = New-Object Microsoft.SqlServer.Management.Dac.DacExtractionUnit($srv, $dbname, $applicationname, $version)
    $extractionunit.Description = $description
    $extractionunit.Extract($dacpacPath)
    
  7. Execute o ExtractDAC.ps1 de uma sessão do PowerShell na qual você tenha carregado os snapins SQL Server PowerShell ou usando o utilitário de prompt de comando sqlps.

Assistente para Extrair um Aplicativo da Camada de Dados

Para abrir o Assistente para Extrair um Aplicativo da Camada de Dados

  1. No Pesquisador de Objetos, expanda Bancos de Dados, clique com o botão direito do mouse em um banco de dados, aponte para Tarefas e, em seguida, clique em Extrair Aplicativo da Camada de Dados.

  2. Siga as etapas no assistente para criar um pacote de DAC baseado no banco de dados que você selecionou. Para obter mais informações, consulte Assistente para Extrair um Aplicativo da Camada de Dados F1 Ajuda.

Histórico de alterações

Conteúdo atualizado

Adicionada a seção sobre o uso do PowerShell.