Aplicativos da camada de dados (DAC)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

Um aplicativo da camada de dados (DAC) é uma entidade de gerenciamento de banco de dados lógico que define todos os objetos do SQL Server, assim como tabelas, exibições e objetos de instância, inclusive logons, associados do banco de dados de um usuário. Um DAC é uma unidade autônoma de todo o modelo de banco de dados e é portátil em um artefato conhecido como pacote de DAC ou .dacpac. O suporte de ferramentas para aplicativos da camada de dados permite que os desenvolvedores e administradores de banco de dados implementem dacpacs em bancos de dados novos ou existentes. As implantações em um banco de dados existente atualizam o modelo do banco de dados do estado existente para corresponder ao conteúdo do dacpac. Os desenvolvedores criam DACs a partir de projetos de banco de dados SQL, um conceito de desenvolvimento declarativo para a criação de objetos SQL que permite o controle do código-fonte no esquema do banco de dados.

Um .bacpac é um artefato relacionado que encapsula o esquema de banco de dados e também os dados armazenados no banco de dados. O caso de uso primário para um BACPAC é mover um banco de dados de um servidor para outro ou migrar um banco de dados de um servidor local para a nuvem e arquivar um banco de dados existente em um formato aberto.

Benefícios de aplicativos da camada de dados

O ciclo de vida de um aplicativo de banco de dados pode envolver desenvolvedores e DBAs que trocam scripts e compartilham notas de integração de uso único para atividades de atualização de aplicativos. Embora esse processo seja aceitável em algumas circunstâncias, pode ser difícil integrá-lo aos pipelines de DevOps e aos processos gerais de desenvolvimento.

Os aplicativos da camada de dados permitem o desenvolvimento de bancos de dados declarativos, simplificando o processo de desenvolvimento e proporcionando uma experiência de desenvolvimento mais consistente e previsível. Um desenvolvedor pode criar um banco de dados com projetos de banco de dados SQL em sua escolha de ambiente de desenvolvimento integrado (IDE). Um projeto de banco de dados SQL pode ser compilado em um pacote de DAC localmente ou em um pipeline de DevOps. O pacote de DAC, por sua vez, é implantado em um banco de dados de teste, preparação ou produção por um processo automatizado ou manualmente com uma ferramenta de CLI ou GUI. O .dacpac pode ser usado para atualizar um banco de dados com objetos novos ou modificados, para reverter para uma versão anterior do banco de dados ou para provisionar um banco de dados totalmente novo. Por outro lado, um .dacpac pode ser gerado a partir de um banco de dados existente e usado para estabelecer um projeto de banco de dados SQL com base no esquema de banco de dados atual.

A vantagem de uma implementação orientada por DAC em relação a um processo orientado por migração é que o processo permite a identificação e a validação de comportamentos de diferentes bancos de dados de origem e de destino. As ferramentas usadas durante a implementação/upgrade do banco de dados têm opções para sinalizar ações arriscadas, como alterações no tamanho da coluna que podem causar perda de dados, e a capacidade de criar diretamente o script do plano de upgrade. Esse plano pode ser avaliado manualmente antes de prosseguir com a atualização.

Operações

Um DAC simplifica o desenvolvimento, a implantação e o gerenciamento dos elementos da camada de dados que oferecem suporte a um aplicativo.

DACPAC

O DAC oferece suporte às seguintes operações:

Esses recursos podem ser encontrados em SqlPackage, no SQL Server Management Studio, no Azure Data Studio e no SQL Server Data Tools.

Projetos do banco de dados SQL

O DAC oferece suporte às seguintes operações:

  • BUILD - o usuário pode criar um projeto de banco de dados SQL em um .dacpac.

  • PUBLISH - o usuário pode publicar um projeto de banco de dados SQL em um servidor host.

  • EXTRACT - o usuário pode extrair um banco de dados em um projeto de banco de dados SQL.

Esses recursos podem ser encontrados no Azure Data Studio, no Visual Studio Code e no SQL Server Data Tools.

BACPAC

Por outro lado, um .bacpac destina-se a capturar esquema e dados com suporte a duas operações principais:

Esses recursos são compatíveis com as ferramentas SqlPackage, SQL Server Management Studio, Azure Data Studio e o portal do Azure.

Ferramentas de DAC

Artefatos de aplicativos da camada de dados e projetos SQL podem ser usados em várias ferramentas. Essas ferramentas atendem aos requisitos de diferentes personas de usuários.

DACPAC e BACPAC

As ferramentas a seguir aceitam o formato do pacote de DAC e do pacote de BAC:

Nessas ferramentas, um banco de dados pode ser extraído para um .dacpac ou exportado para um .bacpac. Por outro lado, um .bacpac pode ser importado para um novo banco de dados ou um .dacpac pode ser publicado em um banco de dados novo ou existente.

Projetos DACPAC e SQL

As ferramentas a seguir oferecem suporte ao formato de pacote de DAC, além de fornecer edição de projetos de banco de dados SQL:

Nessas ferramentas, os desenvolvedores podem projetar um banco de dados em um ambiente de desenvolvimento não conectado e do lado do cliente. As ferramentas podem ser usadas para criar um pacote de DAC, implementar um pacote de DAC em um banco de dados e importar um pacote de banco de dados para um projeto SQL.

Conceitos de DAC

Suporte à versão

Em geral, as ferramentas de DAC são capazes de ler arquivos arquivos .dacpac gerados por ferramentas de DAC de versões anteriores do SQL Server e também podem implantar pacotes de DAC em versões anteriores do SQL Server. No entanto, as ferramentas de DAC de versões anteriores não podem ler arquivos .dacpac gerados por ferramentas de DAC de versões posteriores. No mínimo, as ferramentas de DAC oferecem suporte às versões com suporte do SQL Server no momento de seu lançamento.

Formato de arquivo

Um .dacpac é uma pasta compactada com uma extensão .dacpac e, da mesma forma, um .bacpac é uma pasta compactada com uma extensão .bacpac. Um usuário avançado pode descompactar o arquivo para exibir as várias seções XML que representam detalhes da origem, os objetos no banco de dados e outras características. Para descompactar um .dacpac ou .bacpac, substitua a extensão do arquivo por .zip e use um utilitário de compactação de arquivos para descompactar o arquivo.

Registro de aplicativos da camada de dados

No SQL Server Management Studio, outras ações podem ser executadas em um banco de dados para registrá-lo como um aplicativo da camada de dados.

  • REGISTER – o usuário pode registrar um banco de dados como um aplicativo da camada de dados.

  • UNREGISTER – um banco de dados previamente registrado como um DAC pode ter o registro cancelado.

  • UPGRADE - um banco de dados pode ser atualizado usando um .dacpac.

Para obter mais informações sobre essas ações, consulte as tarefas abaixo.

Tarefa Link do artigo
Descreve como usar um novo arquivo do pacote de DAC para atualizar uma instância para uma nova versão do DAC. Atualizar um aplicativo da camada de dados
Descreve como remover uma instância do DAC. Você pode escolher também desanexar ou remover o banco de dados associado ou deixar o banco de dados intacto. Excluir um aplicativo da camada de dados
Descreve como elevar um banco de dados existente para ser uma instância do DAC. Uma definição de DAC é criada e armazenada nos bancos de dados do sistema. Registrar um banco de dados como um DAC
Descreve como examinar o conteúdo de um pacote de DAC e as ações que uma atualização de DAC executará antes de usar o pacote em um sistema de produção. Validar um pacote de DAC

Próximas etapas