Aplicativos de camada de dados no SQL Server 2008 R2 (pt-BR)
SQL Artigo técnico do servidor
Aplicativos de camada de dados no SQL Server 2008 R2
Escritor: Alan Brewer, Roger Doherty, Prashant Choudhari, Shireesh Thota, Charlie Carson, Omri Bāḩat
Revisor Técnico: Jen Witsoe, Muralidhar S, Clifford Dibble, Sanjay Nagamangalam
Publicado em: fevereiro de 2010
Aplica-se a: SQL Server 2008 R2
Este artigo é uma tradução da (http://technet.microsoft.com/en-us/library/ff381683(SQL.100).aspx) feito por uma máquina de tradução. Nós encorajamos você a contribuir com o conteúdo visando a melhoria da qualidade do artigo
Resumo: os investimentos da Microsoft na aplicação e gerenciamento de vários servidores ajudará a reduzir a complexidade em torno de desenvolver, implantar e gerenciar aplicativos. Um conceito de núcleo de aplicativo e gerenciamento de vários servidores no SQL Server é o aplicativo da camada de dados (DAC). Um DAC é uma unidade independente de implantação que define e agrupa objetos de banco de dados, objetos de instância do SQL Server que estão associados com o banco de dados e requisitos de implantação de um aplicativo.
Direitos autorais
Este é um documento preliminar e pode ser alterado substancialmente antes para lançamento comercial final do software aqui descrito.
As informações contidas neste documento representam a visão atual da Microsoft Corporation sobre as questões discutidas na data da publicação. Como a Microsoft deve responder às mudanças do mercado, não deve ser interpretado como um compromisso por parte da Microsoft e a Microsoft não pode garantir a exactidão de qualquer informação apresentada após a data da publicação.
Este white paper é apenas para fins informativos. A MICROSOFT DISPONIBILIZA NÃO OFERECE GARANTIAS, EXPRESSAS, IMPLÍCITAS OU ESTATUTÁRIAS, COMO PARA AS INFORMAÇÕES CONTIDAS NESTE DOCUMENTO.
Obedecer a todas as leis de direitos autorais aplicáveis é responsabilidade do usuário. Sem limitar os direitos autorais, nenhuma parte deste documento pode ser reproduzida, armazenada em, ou introduzida em um sistema de recuperação ou transmitida sob qualquer forma ou por qualquer meio (eletrônico, mecânico, fotocópia, gravação ou de outro) ou para qualquer finalidade, sem a permissão expressa por escrito da Microsoft Corporation.
A Microsoft pode ter patentes ou requisições para obtenção de patente, marcas comerciais, direitos autorais ou outros direitos de propriedade intelectual que abrangem o conteúdo deste documento. A posse deste documento não lhe confere nenhum direito sobre as citadas patentes, marcas comerciais, direitos autorais ou outros direitos de propriedade intelectual, salvo aqueles expressamente mencionados em um contrato de licença, por escrito, da Microsoft.
A menos que especificado de outra forma, os exemplos de empresas, organizações, produtos, nomes de domínio , endereços de email, logotipos, pessoas, lugares e eventos aqui descritos são fictícios e nenhuma associação com qualquer empresa real, organização, produto, nome de domínio , endereço de email, logotipo, pessoa, lugar ou evento é intencional ou deve ser inferida.
© 2010 Microsoft Corporation. Todos os direitos reservados.
Microsoft IntelliSense, PowerShell, SQL Server, Visual Studio e Windows são marcas registradas do grupo de empresas Microsoft.
Todas as outras marcas comerciais pertencem a seus respectivos proprietários.
**
Sumário**
Aplicativos de camada de dados no SQL Server 2008 R2. 1
Introdução aos aplicativos de camada de dados. 6
O que é um aplicativo da camada de dados?. 6
Requisitos do sistema e limitações gerais. 7
Facilitar e automatizar o ciclo de vida de projetos de banco de dados. 8
Criação de aplicativos de camada de dados. 8
Movendo-se alterações de desenvolvimento para produção e exibindo o conteúdo DAC. 9
Implantar um aplicativo da camada de dados pela primeira vez. 9
Atualizando um existente aplicativo da camada de dados. 10
Extraindo um pacote de DAC de um banco de dados existente. 12
Registrando um banco de dados para criar um aplicativo da camada de dados. 12
Comparando um pacote de DAC para um banco de dados. 12
Excluir um aplicativo da camada de dados. 13
Movendo um aplicativo da camada de dados entre instâncias do SQL Server. 14
Passo a passo - aplicativos de camada de dados no SQL Server Management Studio. 14
Extrair dados-camada aplicação Assistente - criando um pacote de DAC de um banco de dados. 14
Instalar uma nova instância DAC com o Assistente de aplicativo de camada de dados implantar. 16
Atualizando um aplicativo da camada de dados para uma nova versão usando o Assistente. 20
A exclusão de um aplicativo da camada de dados de uma instância do SQL Server. 24
Registrar um banco de dados como um aplicativo da camada de dados. 25
Desembalagem DAC pacotes para exibir o script de implantação e conteúdo do pacote. 27
Alterar o nome do aplicativo ou a versão de um implantado aplicativo da camada de dados. 28
Comparando pacotes CAD para banco de dadoss. 29
Mover um aplicativo da camada de dados entre instâncias. 30
Usando PowerShell para trabalhar com aplicativos de camada de dados. 33
Extraindo um pacote de DAC de um banco de dados existente. 33
Registrar e criar um aplicativo da camada de dados para um banco de dados existente. 34
Implantação de um novo aplicativo da camada de dados. 35
Atualizar um aplicativo da camada de dados para uma nova versão. 36
Excluir um aplicativo da camada de dados. 38
Desenvolvimento e teste de aplicativos de camada de dados no Visual Studio 2010. 40
Criar e inicializar um aplicativo da camada de dados. 40
Adicionar tabelas para o projeto de aplicativo da camada de dados. 45
Adicionando exibições e procedimentos armazenados para o projeto e construção da solução. 48
Criação de uma política de seleção de servidor para declarar a intenção de implantação. 51
Adicionando um script de pós-implantação para o projeto. 53
Configurando um projeto aplicativo da camada de dados para implantação. 54
Implantar um aplicativo da camada de dados. 56
Atualizando um aplicativo da camada de dados. 57
Objetos com suporte em um aplicativo da camada de dados. 58
SQL Limitações da versão de servidor. 60
Limitações de tamanho depacote de DAC. 60
Permissões mínimas e notas de segurança. 60
Considerações de alta disponibilidade e recuperação de desastres. 62
Espelhamento e envio de logs. 62
Introdução aos aplicativos de camada de dados
Aplicativos de camada de dados (DACs) são introduzidos no software de gerenciamento de dados Microsoft ® SQL Server ® 2008 R2 e o sistema de desenvolvimento Microsoft Visual Studio ® 2010 para ajudar os usuários a desenvolver, implantar e gerenciar a parte da camada de dados de seus aplicativos com mais eficiência do que antes. Usando DACs, desenvolvedores e administradores de banco de dados (DBAs) podem automatizar e facilitar operações comuns e práticas do ciclo de vida dos sistemas de banco de dados.
O que é um aplicativo da camada de dados?
Um CAD é uma unidade independente de implantação que permite que os desenvolvedores de camada de dados e DBAs para objetos do pacote SQL Server, incluindo objetos de banco de dados e instância , em uma única entidade chamado pacote de DAC. Os desenvolvedores podem construir um pacote de DAC usando o aplicativo de camada de dados do projeto sistema no Visual Studio, Considerando que o SQL Server Management Studio (SSMS) os usuários podem extrair um DAC e gerar um arquivo de pacote de DAC para um banco de dados existente.
Um pacote de DAC podem ser implantados em uma instância do SQL Server para criar uma nova DAC instância. A implantação de DAC instala um novo banco de dados na instância, cria os objetos de banco de dados e cria os logons associados com os usuários do banco de dados. Se já tiver um anterior versão do CAD, o pacote de DAC pode ser usado para upgrade DAC instância existente para uma nova versão.
Figura 1: recursos de aplicativos de camada de dados no SQL Server 2008 R2 e Visual Studio 2010
Para simplificar o gerenciamento de ambientes SQL Server, a saúde dos recursos de CAD (por exemplo, CPU, espaço em disco) em vários computadores e instâncias pode ser exibido em uma interface central chamado o Explorer utilitário no SQL Server Management Studio. O utilitário Explorer exibe dados agregados e informações, permitindo que os DBAs facilmente obter relatórios de utilização e as estatísticas de suas instalações de servidor SQL . Além disso, os DBAs podem usar para personalizar os relatórios de desempenho de espaço da CPU e do disco, Utilitário de políticas de saúde para ajustar e controlar vistas mostrando o consumo de recursos do DAC.
Nota: A finalidade deste documento é explicar o desenvolvimento, implantação e recursos de CAD no ciclo de vida de projetos de banco de dados, como mostrado na Figura 1. Para obter mais informações sobre o utilitário SQL Server e o gerenciamento de DACs no Gerenciador de utilitário, consulte SQL Server Books Online.
Requisitos do sistema e limitações gerais
A versão inicial do recursos do aplicativo da camada de dados no SQL Server 2008 R2 e Visual Studio 2010 se destina a servir departamentais bancos de dados na empresa, bem como terceiros simples (também conhecido como ISV) aplicativos. Mais explicitamente, é recomendável que você use um aplicativo da camada de dados para um banco de dados que tem as seguintes características:
- O banco de dados deve conter até alguns gigabytes de dados (por exemplo, até 10 GB). Enquanto esta exigência não é obrigatória pela estrutura de aplicativo da camada de dados , trabalhar com bancos de dados maiores pode resultar em atrasos operacionais.
- O banco de dados atende a restrições de limitação e suporte de aplicativos de camada de dados.
- Não há requisitos hardware ou software específicos para aplicativos de camada de dados. No entanto, para gerenciar aplicativos de camada de dados com o SQL Server Utility, usuários devem considerar as limitações impostas pelo utilitário e instâncias gerenciadas, que são descritas nos tópicos adequados nos Manuais Online do SQL Server.
Introdução
Aplicativos de camada de dados podem ser usados para trabalhar com bancos de dados existentes, ou eles podem ser usados para implementar versões e novos projetos. Para começar, é recomendável que você cria aplicativos de camada de dados dos sistemas existentes por registrando cada banco de dados de produção como um aplicativo da camada de dados. Em seguida, os usuários podem extrair cada banco de dados para produzir um pacote de DAC e enviar os pacotes para a equipe de desenvolvimento. A partir daí, os desenvolvedores usar Visual Studio para alterações de dados-camada de autor, pacote -los adequadamente e para a frente o DAC Actualizado pacotes para produção. Por sua vez, os DBAs podem upgrade os aplicativos de produção usando métodos automáticos e ferramentas que são fornecidas pela estrutura de aplicativo da camada de dados .
Para novos projetos, os desenvolvedores podem criar um novo projeto de aplicativo da camada de dados em Visual Studio e construir um pacote de DAC para cada aplicativo. Em seguida, pacotes são encaminhados para os DBAs de produção para implantação. Estas e outras ações de ciclo de vida são ilustradas na Figura 1.
Facilitar e automatizar o ciclo de vida de projetos de banco de dados
Criação de aplicativos de camada de dados
Um projeto de aplicativo da camada de dados no Visual Studio Professional compreende três componentes chave : objetos do SQL Server, um política de seleção do servidor, e scripts personalizados (por vezes referido como adicionais ou arquivos extras). Para começar e definir a esquema de um aplicativo, os desenvolvedores podem Importar a pacote de DAC para o sistema de projeto, ou eles podem selecionar uma instância do SQL Server e importar objetos de um banco de dados existente. Em seguida, os usuários criar e modificar objetos de banco de dados e objetos de instância do SQL Server que estão associados com o banco de dados. Por exemplo, os desenvolvedores podem usar designers internos para criar tabelas e modos de exibição. Programação usuários pode utilizar códigos avançados recursos (tais como tecnologia IntelliSense ®, auto-completar, trechos de código e o compilador de Transact -SQL ) de edição para escrever código Transact -SQL para procedimentos armazenados, funções, usuários e logins.
Após compor a esquema, os desenvolvedores podem criar um pacote de DAC e implantar o projeto em um destinodeinstância do SQL Server para testar a versão. Para controlar implantações, um pacote de DAC pode conter um política de seleção de servidor que determina condições pré-requisitos em instâncias de destino . Por exemplo, uma diretiva pode restringir a implantação de um aplicativo da camada de dados para instâncias do SQL Server 2005 ou versões posteriores do SQL Server. A política de seleção servidor ajuda os desenvolvedores a express e ditar propósitos de implantação: cada vez que um pacote de DAC é implantado, a diretiva é avaliada contra o destino para assegurar que a instância satisfaz os requisitos do aplicativo.
Operações de manipulação de dados e ações de implantação personalizada também estão disponíveis no projeto através da aplicativo da camada de dados scripts personalizados. Os usuários podem fornecer scripts Transact -SQL e incluí-los no pacote de DAC. Enquanto o sistema não automaticamente executar ou razão sobre scripts personalizados, os usuários podem executar manualmente esses scripts durante implantação DAC ou upgrade. Os scripts personalizados são extremamente úteis para preencher e manipulação de dados ou executar ações automáticas antes ou depois de implantações; Eles também são úteis para lidar com objetos que não são suportados por um DAC (para obter mais informações, consulte limitações do CAD).
Movendo-se alterações de desenvolvimento para produção e exibindo o conteúdo DAC
Depois que um aplicativo da camada de dados é criado no Visual Studio e testados contra instâncias do SQL Server no ambiente de desenvolvimento, os usuários podem compactar o conteúdo do projeto do Visual Studio e criar um arquivo de pacote de DAC (com a extensão .dacpac). O arquivo de pacote pode então ser enviado para os DBAs no teste, teste ou produção SQL ambientes de servidor para implantação de CAD ou atualização, conforme ilustrado na Figura 1.
Ao receber um pacote de DAC de desenvolvedores, DBAs que executam o SQL Server Management Studio pode clicar duas vezes e descompactar o arquivo para exibir o conteúdo do pacote e examinar os objetos e código. Por sua vez, três arquivos XML e um arquivo SQL são criados no sistema de arquivos, juntamente com todos os pre/post-deployment e personalizados-scripts de usuário (se houver). Os arquivos XML mantêm a definição e metadados do CAD. O arquivo SQL é um script Transact -SQL que contém instruções DDL e criar para todos os objetos DAC. Este script Transact -SQL é executado durante a implantação DAC ou upgrade. O script é extremamente útil para a realização de revisões de código antes que as alterações são aplicadas na produção. Ele também pode ajudar compare objetos DAC para um banco de dados de destino antes que o DAC está atualizado.
Implantar um aplicativo da camada de dados pela primeira vez
Dizer que uma produção DBA recebe um pacote de DAC de desenvolvedores para um novo aplicativo chamado Finanças. Em outras palavras, suponha que o aplicativo de finanças e o banco de dados nunca foram instalados em produção antes. Para se preparar para a implantação, o DBA pode rever os objetos de banco de dados e código por desembalagem o arquivo de pacote e abrir o script Transact -SQL resultante chamado Finance.sql no SQL Server Management Studio. Em seguida, o DBA seleciona um destino instância do SQL Server que hospedará o banco de dados e objetos.
Os usuários podem implantar um pacote de DAC usando o aplicativo de camada de dados implantar Assistente no SQL Server Management Studio, ou através do Windows ® PowerShell® interfacede linha de comando. Quando inicia a implantação, se o DAC contém uma diretiva de seleção de servidor, a política é verificada contra o destino instância [D01]. Em seguida, o conteúdo DAC é instalado: um novo banco de dados, objetos de banco de dados e todos os logins de servidor relevantes são criados. Depois que o banco de dados e objetos são criados, a definição de DAC (ou seja, carga e metadados) é automaticamente registrada e armazenada na msdb banco de dados do sistema. Desse ponto em diante, o DAC e suas propriedades podem ser visualizadas no SQL Server Management Studio sob o nó de aplicativos de camada de dados localizado no nó do gerenciamento do destino instância no Pesquisador de objetos.
Figura 2: implantar um aplicativo da camada de dados chamado de finanças para uma instância do SQL Server usando o SQL Server Management Studio
Figura 3: visualização de aplicativos de camada de dados no Pesquisador de objetos e detalhes do Pesquisador de objeto no SQL Server Management Studio
Atualizando um existente aplicativo da camada de dados
Dizer que uma das finanças aplicativo da camada de dados com versão V1 (ou DAC V1 curto) já foi implantado em produção. Além disso, supor que os desenvolvedores feito alterações DAC V1 e construiu um arquivo de pacote contendo uma nova versão do DAC (ou seja, DAC V2). Depois de uma produção DBA recebe o último arquivo, o DBA pode atualizar o conteúdo do DAC V1 para V2. Antes de executar a atualização, o DBA pode compare o pacote de DAC da versão mais recente para o banco de dados utilizado pelo DAC V1.
Para atualizar um DAC, os usuários podem Clique com botão direito o DAC V1 no Pesquisador de objetos no SQL Server Management Studio e, em seguida, clique em atualização de camada de dados de aplicativo para lançar o Assistente. Como alternativa, os usuários podem atualizar DACs invocando o apropriado PowerShell comandos. Como no caso da implantação do DAC, se o DAC V2 pacote contém uma diretiva de seleção de servidor, as condições da apólice são avaliadas primeiro contra a instância. Em seguida, antes da atualização ocorre, o banco de dados do DAC V1 é comparado com a definição do DAC V1 na msdb para ver se as alterações foram feitas para o banco de dados diretamente, sem usar a camada de dados aplicativo atualizar API (por exemplo, por através da execução manual de SQL scripts para criar objetos de banco de dados). Se as alterações forem detectadas, o usuário deve reconhecer que essas alterações podem ser perdidas durante a atualização DAC [D02].
Finalmente, começa o processo de atualização: um novo banco de dados é criado com a esquema de DAC V2 e objetos, bem como qualquer logons que ainda não existem na instância. Então, os dados são copiados do banco de dados CAD V1 para o banco de dados usado pelo DAC V2. Para concluir o processo de atualização, o DAC V1 é renomeado para banco de dados, o banco de dados do DAC V2 leva o nome do banco de dados original do DAC V1, e a definição de DAC é atualizada em msdb para refletir as alterações e registrar DAC V2. Para ilustrar esse processo, a imagem na Figura 4 mostra as etapas para atualizar o DAC de finanças.
Figura 4: processo passo a passo de actualizar a finanças aplicativo da camada de dados da versão V1 para V2
Extraindo um pacote de DAC de um banco de dados existente
O aplicativo de camada de dados do extracto Assistente no SQL Server Management Studio e o correspondente PowerShell métodos permitem que os desenvolvedores e DBAs selecionar um banco de dados e gerar um arquivo de pacote de DAC (ver Figura 1) que contém uma definição do banco de dados, objetos de banco de dados e todos os logins de servidor relevantes.
A funcionalidade DAC extracto é projetada para atingir vários objetivos e fornecer soluções para diversas situações do ciclo de vida do aplicativo: para inicializar um projeto de aplicativo da camada de dados em Visual Studio com o esquema de produção mais recente, um DBA pode extrair um arquivo de pacote do banco de dados de produção e enviar o arquivo para desenvolvedores. Por sua vez, os desenvolvedores Importar o pacote de DAC para começar a trabalhar com o projeto do Visual Studio. Em outros aplicativos, extrair um DAC de acordo com um agendamento pré-configurados (por exemplo, usando um SQL trabalho) permite que os DBAs para registro esquema instantâneos para seus bancos de dados do SQL Server. Além disso, extração de DAC é uma etapa chave na comparando um pacote de DAC para um banco de dados antes de atualizar um aplicativo da camada de dados.
Registrando um banco de dados para criar um aplicativo da camada de dados
Se um banco de dados não é parte de um aplicativo da camada de dados, os usuários podem criar um DAC in loco. Para isso, registrando o banco de dados como um aplicativo da camada de dados, utilizando o Assistente de aplicativo de camada de dados de registo no SQL Server Management Studio ou através de PowerShell. Como no caso de extração, o processo de registro lê o conteúdo do banco de dados, objetos e logons e gera a definição de DAC (em memória). Em seguida, a definição de DAC é escrita para o msdb banco de dados do sistema e o novo aplicativo da camada de dados podem ser vistos nos painéis de Pesquisador de objetos e detalhes do Pesquisador de objeto no SQL Server Management Studio, como mostrado na Figura 3.
Os principais benefícios do registro de um banco de dados como um aplicativo da camada de dados incluem o seguinte:
- Se um banco de dados reside em um utilitário gerenciado instância (ou seja, uma instância do SQL Server que está inscrito no SQL Server Utility), o registro ativa os recursos de gerenciamento de utilidade para o aplicativo da camada de dados e banco de dados.
- Depois de um aplicativo da camada de dados é criado, versões futuras do aplicativo podem ser atualizadas automaticamente usando o DAC upgrade método e API.
Comparando um pacote de DAC para um banco de dados
SQL Server Management Studio no SQL Server 2008 R2 não fornece interfaces internas para comparar os bancos de dados e pacotes DAC. No entanto, os usuários podem comparar pacotes CAD para bancos de dados usando o SQL Server Management Studio em combinação com ferramentas de software normalmente disponíveis.
Dizer que a versão V1 de um DAC é executando em produção e que está disponível para um pacote de DAC com versão V2 upgrade. Para comparar as diferenças entre logons e V1 e V2 e exibir as alterações para o banco de dados, os usuários podem executar as seguintes ações:
- Instale qualquer utilitário de comparação de arquivos de Windows, tais como WinDiff ou WinMerge.
- Clique duas vezes no arquivo do pacote DAC V2 em um computador executando o SQL Server Management Studio para descompactar o conteúdo do pacote e os arquivos para uma pasta (digamos, uma pasta chamada V2Folder). Localize o arquivo chamado DACName. SQL na pasta, onde DACName é o nome do aplicativo da camada de dados.
- Extrair um aplicativo da camada de dados de banco de dados usado pelo DAC V1, para criar um pacote de DAC.
- Descompacte o arquivo de pacote do DAC V1 criado na etapa 3 e gravar o arquivo de pacote para alguma pasta (por exemplo, V1Folder). Localize o arquivo chamado DACName. SQL nesta pasta.
- Use o utilitário de comparação de arquivo da etapa 1 para comparar o arquivo. SQL da etapa 2 e o arquivo do passo 4, como mostrado na Figura 5.
Figura 5:** comparando o conteúdo de um arquivo de pacote de DAC para um banco de dados usando um utilitário de comparação de arquivo
Excluir um aplicativo da camada de dados
Aplicativos de camada de dados podem ser excluídos de uma instância do SQL Server, removendo os registros de definição e história do DAC da msdb banco de dados de sistema, deixando o banco de dados do DAC na instância intocado. Como resultado, o aplicativo da camada de dados não aparecerá mais no Pesquisador de objetos no SQL Server Management Studio. Além disso, os usuários podem escolher desanexar ou descartar o banco de dados do DAC. De qualquer forma, logons não são removidas da instância como parte do processo de exclusão.
Movendo um aplicativo da camada de dados entre instâncias do SQL Server
Um aplicativo da camada de dados que reside em uma instância do SQL Server consiste em um banco de dados, logons que são associados com os usuários de banco de dados e a definição de DAC e metadados em msdb. Por conseguinte, aplicativos de camada de dados podem ser movidos manualmente de uma instância do SQL Server para outro (por exemplo, de instância , A instância B) através de algumas simples etapas manuais:
- Crie um backup completo do banco de dados na instância , restauração o banco de dados de backup na instância B, mantendo o mesmo nome de banco de dados. Em seguida, registrar banco de dados como um aplicativo da camada de dados em instância b e uso o aplicativo de camada de dados Delete Assistente para excluir o registro DAC e soltar o banco de dados da instância A. Deve-se entender que a história de aplicativo da camada de dados na msdb na instância a estará perdida durante a movimentação. Além disso, se algum logons existirem na instância , mas não na instância B, os logons tem que ser criado manualmente. Argumentos semelhantes se aplicam para sincronizar os valores de SID para usuários e logons na instância b depois que o banco de dados é restaurado, que é um passo padrão do backup - processo derestauração .
- Separar o banco de dados de instância e anexar a instância b e então registrar banco de dados como um aplicativo da camada de dados na instância b. Comentários anteriores sobre msdb história registra, bem como criação de login ou sincronização aplicar aqui também.
Passo a passo - aplicativos de camada de dados no SQL Server Management Studio
Extrair dados-camada aplicação Assistente - criando um pacote de DAC de um banco de dados
Os usuários podem operar o Assistente de aplicativo de camada de dados do extracto para gerar e salvar um pacote de DAC para um banco de dados. Neste processo, o assistente recupera o conteúdo do banco de dados e os logons associados com o banco de dados e, em seguida, ele valida que um aplicativo da camada de dados , de facto, pode ser criado. Em seguida, o assistente grava o pacote de DAC no sistema de arquivos. Para extrair um pacote de DAC, execute as seguintes etapas:
- Registrar a instância do SQL Server: no painel de Pesquisador de objetos, clique em Connect e siga as instruções no conectar-se ao servidor caixa de diálogo. Verifique se o login usado para registrar a instância atende a extração mínima permissões. Também, certifique-se de que a instância você registra atende a aplicativo da camada de dados SQL Server versão limitações.
- No Pesquisador de objetos, selecione o nó da instância do qual você deseja extrair um aplicativo da camada de dados e expandir sua bancos de dados nó.
- Selecione o banco de dados para a extração. Clique com o botão direito no nó banco de dados, aponte para tarefase, em seguida, clique em aplicativo de camada de dados do extracto para iniciar o Assistente de aplicativo de camada de dados do extracto.
- A primeira tela do assistente é uma introdução. Leia a descrição e, em seguida, clique em próximo.
- Sobre a Set propriedades página, rever ou alterar as propriedades mostradas na Figura 6 e, em seguida, clique em próximo. Essas propriedades são exibidas no Visual Studio e no SQL Server Management Studio e são usadas como segue:
- Nome do aplicativo — identifica o aplicativo. Por exemplo, se um banco de dados chamado FinanceDB serve a aplicação de finanças, o nome do aplicativo deve ser conjunto como Finanças. O nome do aplicativo é usado quando um aplicativo da camada de dados é atualizado: para atualizar um DAC V1 para um V2 DAC, os nomes dos aplicativos de V1 e V2 devem ser idênticos.
- Versão — A versão do aplicativo da camada de dados. Por padrão, o número de versão é 1.0.0.0.
- Descrição - opcional.
- Salvar em arquivo de pacote de DAC — O nome do arquivo e o caminho para o arquivo de pacote de DAC . Este arquivo deve terminar com a .dacpac extensão.
Figura 6:** definindo as propriedades pacote de DAC no Assistente de aplicativo de camada de dados do extracto
6. Quando inicia a validação e a página de resumo, o assistente recupera os objetos de banco de dados e logins relevantes e verifica que um pacote de DAC pode ser criado para o banco de dados. O processo de validação garante que todos os objetos de banco de dados são com suporte por um DAC e que todos os objetos dependentes estão disponíveis no banco de dados. Por exemplo, se um modo de exibição depende de uma tabela e o último saiu do banco de dados, um DAC não pode ser extraído.
Quando a validação completa, todos os problemas e erros que impedem a criação de um pacote de DAC aparecem na árvore de resumo. Se não há problemas (como na Figura 7), o relatório de validação de revisão e, em seguida, clique em próximo para criar e salvar o arquivo de pacote de DAC .
Figura 7: rever os resultados da validação e resumo no Assistente de aplicativo de camada de dados do extracto
7. Sobre a construir pacote página, verificar o status do arquivo pacote de DAC de construção. Quando a compilação estiver concluída, clique em terminar para fechar o assistente. Por fim, verifique se que foi criado um novo arquivo de pacote de DAC no caminho especificado na etapa 5.
O extraído pacote de DAC arquivo agora pode ser importado para um projeto de aplicativo de camada de dados em Visual Studio. Além disso, o pacote de DAC pode ser implantado para criar um novo aplicativo da camada de dados em uma instância do SQL Server, ou para upgrade uma antiga versão de um existente aplicativo da camada de dados.
Instalar uma nova instância DAC com o Assistente de aplicativo de camada de dados implantar
O Assistente de aplicativo de camada de dados implantar permite aos usuários instalar um pacote de DAC para criar um novo banco de dados para um aplicativo. É recomendável que o Assistente para ser usado quando um aplicativo é instalado pela primeira vez. Se o aplicativo da camada de dados foi instalado no passado, o Assistente para Upgrade do aplicativo de camada de dados deve ser usado em vez disso, para enviar as alterações de um pacote de DAC para o banco de dados existente.
Para implantar um novo aplicativo da camada de dados, siga estas instruções:
- Localize o arquivo pacote de DAC que você deseja implantar.
- limitações e que a instância é registrada no Pesquisador de objetos em um login que atenda o mínimo exigido credenciais. Depois de selecionar a instância, expanda a gestão nó, clique com botão direito o aplicativos de camada de dados nó e, em seguida, clique em implantar aplicativo de camada de dados para iniciar o assistente.
- A primeira tela do assistente é uma introdução. Leia a descrição e, em seguida, clique em próximo.
- Sobre a Selecionar pacote da página, clique em procurar e navegue até o arquivo localizado na etapa 1. Examinar e analisar os detalhes DAC para o pacote selecionado (consulte a Figura 8) e, em seguida, clique em próximo.
Figura 8: selecionando o pacote de DAC no Assistente de aplicativo de camada de dados implantar
5. o pacote de DAC contém uma diretiva de seleção de servidor, o política de revisão a página é exibida. A política de seleção do servidor é criada no Visual Studio para garantir que o destinodeinstância do SQL Server atende a certos requisitos de implantação, que são definidos pelos desenvolvedores. Por exemplo, o pacote de DAC selecionado na Figura 9 só pode ser implantado para instâncias do SQL Server 2005. Se todas as condições forem atendidas, clique em próximo. Caso contrário, você pode substituir os resultados da avaliação política, selecionando o ignorar violações de políticas caixa de seleção e, em seguida, clicar em próximo.
**
Figura 9:** resultados da avaliação da política de seleção de servidor
6. Como parte da implantação, o assistente irá criar um novo banco de dados e, em seguida, preencher o banco de dados e o SQL Server instância com os objetos necessários. Na a configuração de atualização página, o assistente exibe o nome do banco de dados e o caminho dos arquivos de banco de dados onde o novo banco de dados será criado. Examine as opções de configuração de banco de dados, atualizá-los se necessário e, em seguida, clique em próximo.
Figura 10:** atualizar o banco de dados de configuração antes de implantar o aplicativo da camada de dados
7. Sobre a resumo página, revise o relatório sobre as ações que serão tomadas para implantar o aplicativo da camada de dadose, em seguida, clique em próximo.
Figura 11:** revisar a página de resumo no Assistente de aplicativo de camada de dados implantar
8. Sobre a implantar DAC página, reveja o status da série de ações tomadas para implantar o aplicativo da camada de dados. O assistente executa as seguintes etapas:
- Marca a implantação do msdb e prepara os scripts de implantação na memória.
- Cria um novo banco de dados. O nome do banco de dados contém um GUID aleatório cadeia de caracteres.
- Cria os objetos de banco de dados e logins.
- Altera o nome de banco de dados aleatórios para o nome atribuído na etapa 7.
- Atualizações msdb para gravar a definição de DAC e concluir a implantação.
Se o processo de implantação encontrar erros, todas as alterações são automaticamente desfeitas e revertidas pelo assistente. Quando a implantação for concluída, clique em terminar para fechar o assistente.
Figura 12: Final os passos no Assistente de aplicativo de camada de dados implantar
9. No painel Pesquisador de objetos, expanda o nó da instância selecionada na etapa 2 e, em seguida, atualizar e expandir sua bancos de dados nó. Procure o novo banco de dados, que contém os objetos de banco de dados implantados a partir de pacote de DAC. Também, sob o gestão nó, selecionar e atualizar o aplicativos de camada de dados nó e, em seguida, expandi-lo para exibir a entrada para o novo aplicativo da camada de dados.
Atualizando um aplicativo da camada de dados para uma nova versão usando o Assistente
O Assistente de aplicativo de camada de dados atualização permite aos usuários atualizar uma versão de uma instância de DAC para uma nova versão. Por exemplo, se um DAC instância para o aplicativo de finanças com a versão 1.0 está instalado em produção, e um pacote de DAC que contém a versão 2.0 é fornecido pelos desenvolvedores, o Assistente de atualização de camada de dados aplicativo deve ser executado para aplicar as alterações e empurrar a mais recente versão.
Antes de atualizar um aplicativo da camada de dados, é recomendável que você compare o conteúdo do pacote DAC 2.0 para o banco de dados do DAC 1.0 para entender as diferenças e as alterações. Após a comparação, siga estas etapas para atualizar o aplicativo da camada de dados:
- Localize o arquivo de pacote que contém a mais recente versão do aplicativo da camada de dados.
- No SQL Server Management Studio, no painel Pesquisador de objetos, selecione a instância do SQL Server onde o atual aplicativo da camada de dados é implantado. Certifique-se de que o login foi usado para registrar a instância no Pesquisador de objetos tem suficiente permissões para atualizar um aplicativo da camada de dados. Sob o nó da instância , expanda a gestão nó e, em seguida, expanda o dados-aplicativos de nível nó. Botão direito do mouse o aplicativo da camada de dados para atualizar e, em seguida, clique em atualização de camada de dados de aplicativo para iniciar o assistente.
- A primeira tela do assistente é uma introdução. Leia a descrição e, em seguida, clique em próximo.
- Sobre a Selecionar pacote da página, clique em procurar e navegue até o arquivo da etapa 1. Reveja os detalhes do DAC para o pacote selecionado (consulte a Figura 13) e, em seguida, clique em próximo.
Para atualizar um aplicativo da camada de dados, a umaplicação nome no pacote de DAC deve coincidir com o nome do aplicativo do aplicativo da camada de dados sobre a instânciado SQL Server. O nome do aplicativo para o pacote de DAC pode ser conjunto no Visual Studio. No SQL Server Management Studio, o nome do aplicativo de um existente aplicativo da camada de dados pode ser exibido em detalhes do Pesquisador de objeto (consulte a Figura 3). Os usuários podem Alterar o nome do aplicativo no SQL Server Management Studio através de algumas etapas manuais, embora não seja recomendável.
Figura 13: selecionando um pacote de DAC com uma nova versão do Assistente de aplicação de Upgrade de camada de dados
5. Se o pacote de DAC contém uma diretiva de seleção de servidor, o política de revisão página aparece próxima. Esta política é composto por em Visual Studio por desenvolvedores, para verificar que o destinodeinstância do SQL Server satisfaz os requisitos de implantação do aplicativo. Para ilustrar a política de seleção do servidor, a Figura 14 mostra um pacote de DAC que só pode ser implantado para instâncias do SQL Server 2005. Se as condições forem atendidas, clique em próximo. Caso contrário você pode substituir os resultados da avaliação, selecionando o ignorar violações de políticas caixa de seleção e, em seguida, clicar em próximo.
Figura 14:** rever os resultados da avaliação da política de seleção de servidor
6. SQL Servidor Management Studio leva os passos ilustrados na Figura 4 para atualizar aplicativos de camada de dados em forma de side-by-side. Essas etapas são explicadas em detalhes posteriormente nesta seção. Seguindo o exemplo em curso, durante a atualização, um novo banco de dados é criado para armazenar os objetos especificados no arquivo de pacote do DAC 2.0. O nome do novo banco de dados contém um aleatório cadeia de caracteres. Em seguida, o banco de dados original usado pelo DAC 1.0 é conjunto para o modo somente leitura, e dados são copiados do banco de dados original para o banco de dados recém-criado. Finalmente, o banco de dados original é renomeado, o novo banco de dados leva o nome do banco de dados original do DAC 1.0, e a definição de DAC é atualizada em msdb.
O processo de atualização é chamado side-by-side porque ele cria um novo banco de dados para objetos mantenha o DAC 2.0, que coexiste com o banco de dados do DAC 1.0 na mesma instância do SQL Server. Neste processo, é importante notar que, se as alterações foram feitas para o banco de dados do DAC 1.0 fora do âmbito de aplicativo da camada de dados , essas alterações serão perdidas durante a atualização. Exemplos de tais alterações incluem executando scripts SQL manualmente para criar objetos do banco de dados do DAC 1.0 (em vez de usar Visual Studio para fazer alterações no esquema, construindo um novo pacote de DACe actualizar a aplicativo da camada de dados no SQL Server Management Studio).
Para identificar os objetos que podem ser perdidos durante a atualização, o detectar alterações página do assistente compara a definição de DAC 1.0 em msdb para o banco de dados usado pelo DAC 1.0. Se as alterações forem encontradas, o Assistente de alerta e solicita que você reconhece a possível perda de objetos. Além disso, você pode salvar a lista de objetos modificados para um relatório em html, clicando em Salvar relatório. Quando terminar, clique em próximo.
**
Figura 15:** comparando as alterações entre a definição de DAC 1.0 e banco de dados
7. Sobre a resumo página, revise o relatório sobre as ações que serão tomadas para atualizar o DAC e, em seguida, clique em próximo.
Figura 16: Visualizar o relatório de resumo do Assistente de aplicativo de camada de dados Upgrade
8. Sobre a DAC Upgrade página, revise o status das medidas tomadas para atualizar o aplicativo da camada de dados. O assistente executa as seguintes etapas:
- Verifica as permissões de usuário e certifica-se de que o nome do aplicativo corresponde entre DAC 1.0 e o arquivo de pacote do DAC 2.0.
- Marca o início do processo de atualização em msdb.
- Cria o script de implantação que cria um novo banco de dados para DAC 2.0, juntamente com os objetos de banco de dados e logins relevantes.
- Cria um novo banco de dados para DAC 2.0. O nome do banco de dados contém um aleatório cadeia de caracteres.
- Instala os objetos do DAC 2.0 pacote no novo banco de dados e criar todos os logons que já existe na instância.
- Atualizações msdb para denotar a implantação do DAC 2.0 e armazenar a definição de DAC 2.0.
- Define o banco de dados usado pelo DAC 1.0 para o modo somente leitura e termina conexões de usuário para ele.
- Gera um script para copiar os dados para o novo banco de dados executando uma comparação de três vias:
- Compara a definição de DAC 1.0 do msdb para o banco de dados original usado pelo DAC 1.0 e compara com o novo banco de dados que contém os objetos de DAC 2.0.
- Para cada tabela e coluna que existe em todas as três fontes, gera uma instrução INSERT para preencher tabelas e colunas do banco de dados do DAC 2.0 de tabelas correspondentes e colunas do banco de dados original do DAC 1.0.
- Desabilita restrições de tabela no banco de dados CAD 2.0.
- Executa o script contendo todas as instruções INSERT das etapas anteriores.
- Permite que as restrições que foram desativadas antes.
- Define o banco de dados original do DAC 1.0 para o modo de leitura/gravação.
- Renomeia o banco de dados original do DAC 1.0. O novo nome contém o DAC versão e um aleatório cadeia de caracteres.
- Renomeia o novo banco de dados do DAC 2.0 para o nome do banco de dados original usado pelo DAC 1.0.
- Atualizações msdb para gravar a conclusão da actualização.
Se ocorrerem erros durante a atualização, todo o processo é revertido automaticamente. Quando a atualização estiver concluída, clique em terminar para fechar o assistente.
Após a atualização, o banco de dados do DAC 1.0 renomeado permanece na instância. Desta forma, dados ou alterações no banco de dados CAD 1.0 não são perdidas e podem ser migradas manualmente para o banco de dados do DAC 2.0. Além disso, pós-implantação scripts podem ser executados manualmente no banco de dados cujo nome foi mudado para transformar ou manipular o banco de dados original e dados, conforme necessário.
Figura 17:** executando as etapas para concluir a atualização do aplicativo da camada de dados
9. No painel Pesquisador de objetos, expanda o nó da instância selecionada na etapa 2 e, em seguida, atualizar e expandir sua bancos de dados nó. Navegar e procurar os bancos de dados CAD 2.0 e 1.0 DAC. Também, sob o gestão nó, selecionar e atualizar o aplicativos de camada de dados nó. Em seguida, selecione atualizado aplicativo da camada de dados e consulte o painel de detalhes do Gerenciador de objetos a fim de verificar a nova versão.
A exclusão de um aplicativo da camada de dados de uma instância do SQL Server
Um aplicativo da camada de dados pode ser removido de uma instância do SQL Server usando o Assistente de aplicativo Excluir camada de dados ou através de PowerShell. Para usar o assistente, execute as etapas a seguir no SQL Server Management Studio:
- No Object Explorer, localize a instância do SQL Server que contém o aplicativo da camada de dados que deseja remover. Certifique-se de que o login foi usado para registrar a instância tem suficiente permissões para excluir um aplicativo da camada de dados. Sob o nó da instância , expanda a gestão nó e o aplicativos de camada de dados nó sob ele. Selecione o aplicativo da camada de dados para remover, clique com botão direito-lo e, em seguida, clique em excluir aplicativo de camada de dados.
- A primeira tela do assistente é uma introdução que descreve o assistente. Lê-lo e, em seguida, clique em próximo.
- Sobre a escolha método da página, selecione uma das três técnicas para excluir a aplicativo da camada de dados:
- Excluir o registro— remove a definição de DAC de msdb sem fazer alterações para o banco de dados ou logons. Após a definição do DAC é removida, o aplicativo da camada de dados já não existe na instância e ele não aparece no SQL Server Management Studio.
- Desanexar Banco de dados— separa o banco de dados da instância e, em seguida, remove a definição de DAC de msdb. Logons que estão associados com o banco de dados não são alterados.
- Soltar banco de dados— apaga o banco de dados usado pelo aplicativo da camada de dados da instânciae, em seguida, remove a definição de DAC de msdb. Como antes, todos os logins permanecem inalterados.
Figura 18:** selecionar o método para remover o aplicativo da camada de dados da instância
** **
4. Sobre a resumo página, revise o relatório sobre as ações que serão tomadas para eliminar o DAC e, em seguida, clique em próximo.
5. Sobre a DAC excluir página, reveja o status da série de ações tomadas para eliminar a aplicativo da camada de dados e, em seguida, clique em terminar para fechar o assistente.
6. No painel Pesquisador de objetos, clique no aplicativos de camada de dados nó e atualizá-la para certificar-se de que a entrada de aplicativo da camada de dados foi removida. Se você escolheu as segunda ou terceiros opções na etapa 3, clique o bancos de dados nó sob a instância do SQL Server e atualizar para verificar se o banco de dados usado pelo DAC foi removido.
Registrar um banco de dados como um aplicativo da camada de dados
Um aplicativo da camada de dados consiste em um banco de dados, objetos de banco de dados, os logons que mapeiam para os usuários de banco de dados e a definição de DAC em msdb. Para criar um aplicativo da camada de dados no local de um banco de dados existente, a definição de DAC deve ser assinalada no msdb. Para este efeito, o Assistente de aplicativo de camada de dados de registo permite que os usuários preencher msdb com os metadados necessários e criar um DAC para um determinado banco de dados.
Use as etapas a seguir para registrar um aplicativo da camada de dados no SQL Server Management Studio:
- Consulte o painel de Pesquisador de objetos e selecione a instância do SQL Server que contém o banco de dados para registrar. Certifique-se de que o logon usado ao conectar-se à instância no Pesquisador de objetos tem suficiente permissões para registrar um aplicativo da camada de dados. Sob o nó da instância , expanda a bancos de dados nó e selecione o banco de dados. Clique com o botão direito no nó banco de dados e clique em tarefas e, em seguida, clique em registrar como aplicativo de camada de dados para iniciar o assistente.
- A primeira tela do assistente é uma introdução. Leia a descrição e, em seguida, clique em próximo.
- Sobre a Set propriedades página, rever ou alterar as propriedades mostradas na Figura 19 e, em seguida, clique em próximo. Essas propriedades são exibidas no Visual Studio e no SQL Server Management Studio e são usadas como segue:
- Nome do aplicativo — identifica o aplicativo. Por exemplo, se um banco de dados chamado FinanceDB serve a aplicação de finanças, o nome do aplicativo deve ser conjunto como Finanças. O nome do aplicativo é usado é um aplicativo da camada de dados atualizado: para atualizar um DAC V1 para um DAC V2 versão, o nome do aplicativo de DAC V1 e V2 DAC deve ser idêntico.
- Versão — A versão do aplicativo da camada de dados. Por padrão, o número de versão é 1.0.0.0.
- Descrição - opcional.
Figura 19: especificando propriedades antes de registrar um aplicativo da camada de dados
4. A validação e resumo página recupera o conteúdo do banco de dados, verifica as dependências entre objetos de banco de dados e garante que todos os objetos de banco de dados são suportados em um aplicativo da camada de dados. O processo de validação e o conteúdo da página Resumo são semelhantes às mostradas para o aplicativo da camada de dados extração processo. Leia o relatório de resumo e, em seguida, clique em próximo.
5. Sobre a DAC registrar página, revise o status de registrar o aplicativo da camada de dados. Quando o registo estiver concluído, clique em terminar para fechar o assistente.
6. Verificar se o aplicativo da camada de dados é registrada no Pesquisador de objetos, expandindo a gestão nó para a instância e, em seguida, o aplicativos de camada de dados nó sob ele. Selecione o novo aplicativo da camada de dados e exibir suas propriedades no painel de detalhes do Gerenciador de objetos.
Desembalagem DAC pacotes para exibir o script de implantação e conteúdo do pacote
O descompactar funcionalidade é fornecida para permitir que os usuários exibir o conteúdo de um pacote de DAC e gerar o script Transact -SQL que corresponde à implantação ou atualização de um aplicativo da camada de dados. Em geral, é altamente recomendável que você use o recurso de descompactar antes de você implantar ou atualiza um pacote de DAC em produção, para revisar o código e compare ou identificar as alterações.
Siga estas etapas para descompactar um pacote de DAC:
- Certifique-se de que as ferramentas de cliente para o SQL Server 2008 R2 são instaladas em sua máquina.
- Localize um arquivo de pacote de DAC (com a extensão .dacpac).
- Clique duas vezes no pacote de DAC. Como alternativa, você pode clique com botão direito o pacote de DAC e, em seguida, clique em Descompacteoarquivo, como mostrado na Figura 20.
Figura 20:** selecionando a opção descompactar o menu de atalho de um arquivo de pacote de DAC
5. Na Unpack Microsoft SQL Server arquivo de pacote do DAC caixa de diálogo, especifique uma pasta na qual deseja gravar os arquivos CAD.
**
Figura 21:** selecionar uma pasta para gravar o conteúdo do pacote de DAC
6. Clique em Descompacteoarquivo para gravar os arquivos pacote de DAC e o script de implantação no sistema de arquivos.
7. Exiba os arquivos. O nome do script de implantação é DACName. SQL, onde DACName é o nome do aplicativo da camada de dados extraídos do arquivo de pacote .
Alterar o nome do aplicativo ou a versão de um implantado aplicativo da camada de dados
O nome do aplicativo para um aplicativo da camada de dados pode ser conjunto em vários locais em todo o ciclo de vida de um projeto de banco de dados. A lista a seguir descreve esses locais e onde eles aparecem no ciclo de vida:
- Extrair um aplicativo da camada de dados aceita o nome do aplicativo como usuário-entrada, antes que seja criado um arquivo de pacote de DAC . O nome do aplicativo, em seguida, é incorporado no pacote de DAC.
- No Visual Studio, o nome do aplicativo pode ser conjunto nas configurações de projeto do aplicativo da camada de dados .
- Quando um aplicativo da camada de dados é implantado, o nome do aplicativo é extraído o arquivo de pacote de DAC e é gravado no msdb.
- Se um usuário se registra um banco de dados como um aplicativo da camada de dados, o usuário deve digitar um nome do aplicativo, que é, em seguida, gravado em msdb.
O nome do aplicativo pode ser exibido no painel de detalhes do Gerenciador de objetos no SQL Server Management Studio, quando você seleciona o aplicativos de camada de dados nó no Pesquisador de objetos para uma determinada instância do SQL Server. Além disso, o nome do aplicativo desempenha um papel chave no processo de atualização de aplicativo da camada de dados : um pacote de DAC contendo uma nova versão de um aplicativo da camada de dados pode ser usado para atualizar uma antiga versão apenas se o nome do aplicativo é idêntico em ambas as versões.
Alterar o nome do aplicativo não é recomendado. Em vez disso, os desenvolvedores e DBAs devem conjunto o nome do aplicativo usando adequadamente as ferramentas fornecidas pela estrutura. No entanto, se for absolutamente necessário, os usuários podem alterar o nome do aplicativo para um implantado (ou registados) aplicativo da camada de dados as seguintes etapas:
- Identifica o aplicativo da camada de dados que será alterado. Além disso, identifica o banco de dados usado pelo aplicativo da camada de dados.
- No SQL Server Management Studio, no Pesquisador de objetos, localize e selecione o nó de aplicativo da camada de dados da etapa 1, clique com botão direito-lo e, em seguida, clique em Excluir camada de dados aplicativo. Uso o Excluir camada de dados aplicativo Assistente para remover o registro de msdb: na escolha método página do assistente, clique em Excluir registroe, em seguida, conclua o assistente.
- No Object Explorer, localize e selecione o nó banco de dados da etapa 1, clique com botão direito-lo, aponte para tarefas e , em seguida, clique em registrar como aplicativo de camada de dados. Passar o registro processo de aplicativo da camada de dados e digite o nome do aplicativo correto na definir propriedades página.
O mesmo procedimento pode ser usado para atualizar a versão de um anteriormente implantado (ou registados) aplicativo da camada de dados. No entanto, é importante observar que cada vez que a definição de DAC é removida do msdb, a história de ações associadas a aplicativo da camada de dados também é removida da instância. Portanto, em geral, não se recomenda que você altera o nome do aplicativo ou versão.
Comparando pacotes CAD para banco de dadoss
As ferramentas fornecidas pela estrutura de aplicativo da camada de dados no SQL Server 2008 R2 permitem que os usuários comparar um pacote de DAC para um banco de dados, ou comparar dois bancos de dados ou pacotes de CAD para encontrar diferenças. A comparação pode ser conseguida usando ferramentas de comparação e diferenciação de texto simples, como WinDiff ou WinMerge.
**
Comparar um pacote de DAC para um banco de dados**
As etapas a seguir permitem que os usuários comparar uma pacote de DAC chamado Finance.dacpac para um banco de dados chamado FinanceDB.
- Descompacte o arquivo de pacote de DAC Finance.dacpac. Localize o script de implantação Finance.sql.
- Extrair a aplicativo da camada de dados de banco de dados FinanceDB e, em seguida, criar um pacote de DAC chamado Finance1.dacpac.
- Descompacte o arquivo pacote de DAC criado na etapa 2. Localize o arquivo descompactado do SQL .
- Usando um texto de diferenciação ferramenta, compare os scripts SQL criados na etapa 1 e 3.
Etapas semelhantes podem ser executadas para comparar dois bancos de dados ou pacotes DAC.
Comparando dois pacotes DAC
Para comparar dois pacotes DAC (por exemplo, Finance.dacpac e Payroll.dacpac), siga estas etapas:
- Descompacte o arquivo de pacote de DAC Finance.dacpac. Localize o script de implantação Finance.sql.
- Descompacte Payroll.dacpac e encontrar o script Payroll.sql.
- Use um texto de diferenciação ferramenta para comparar os etapas 1 e 2 de scripts SQL .
Compare bancos de dados
A comparação em curso conceitos e técnicas podem ser aplicadas para comparar o conteúdo de dois bancos de dados (por exemplo, os bancos FinanceDB e PayrollDB):
- Extrair a aplicativo da camada de dados de banco de dados FinanceDB e, em seguida, criar um pacote de DAC chamado Finance.dacpac.
- Descompacte o arquivo de pacote de DAC Finance.dacpac. Localize o script de implantação Finance.sql.
- Extrair um aplicativo da camada de dados do banco de dados PayrollDB e, em seguida, criar um pacote de DAC chamado Payroll.dacpac.
- Descompacte o Payroll.dacpac e, em seguida, encontrar o script Payroll.sql.
- Use um texto de diferenciação ferramenta para comparar os scripts SQL obtidos na etapa 2 e 4.
Mover um aplicativo da camada de dados entre instâncias
Um aplicativo da camada de dados podem ser movidos entre instâncias do SQL Server por meio de várias etapas manuais. Por exemplo, um aplicativo da camada de dados podem ser movidos, criando um backup completo de banco de dados usado por um aplicativo da camada de dados, restaurando o backup em outra instânciae então registrando banco de dados restaurado como um aplicativo da camada de dados. Como alternativa, o banco de dados pode ser separado da primeira instância e, em seguida, anexado ao segundo. Esta seção descreve como usar ométodode backup e restauração.
As etapas a seguir ilustram como mover um aplicativo da camada de dados entre dois computadores utilizando os comandos de backup e restauração :
- Crie um backup completo do banco de dados de aplicativo da camada de dados . Isso pode ser feito executando o seguinte script Transact -SQL contra a instância do SQL Server que contém o banco de dados. Neste exemplo, suponha que o nome do banco de dados é FinanceDB e que os arquivos de backup de dados e de log são criados na pasta chamada C:\temp\
BACKUP DATABASE FinanceDB
DISCO = 'C:\temp\FinanceDB.bak'
GO
BACKUP LOG FinanceDB
DISCO = 'C:\temp\FinanceDB.log'
GO
2. Copie os arquivos de backup para a máquina de destino . Neste exemplo, suponha que os arquivos são copiados para a pasta denominada C:\share\ no computador de destino .
3. Restaure o backup e a transação log na instância do SQL Server em execução na máquina de destino . Por exemplo, use o script a seguir para restauração o banco de dados ao mover os arquivos de dados e de log para a pasta de dados principal usada pela instância.
FinanceDB de banco de dados de restauração
DO disco = 'C:\Share\FinanceDB.bak' com NORECOVERY,
Mover 'financedb_data' a ' C:\Program Files\Microsoft SQL Server\MSSQL10_50.MyInstanceName\MSSQL\DATA\FinanceDB.mdf',
Mover 'financedb_log' a ' C:\Program Files\Microsoft SQL Server\MSSQL10_50.MyInstnceName\MSSQL\DATA\FinanceDB.ldf';
GO
Restaurar LOG FinanceDB
DO disco = 'C:\Share\FinanceDB.ldf'
GO
4. Certifique-se de que todos os usuários no banco de dados restaurado adequadamente são mapeados para os logons na instânciado SQL Server.
5. registrar e criar um aplicativo da camada de dados de banco de dados restaurado.
6. Remover a aplicativo da camada de dados da primeira instância do SQL Server.
É importante observar que registros de história para um aplicativo da camada de dados são armazenados em msdb. Movendo um aplicativo da camada de dados usando a técnica de backup e restauração (ou anexar e desanexar técnica) não manter os registros da história.
Usando PowerShell para trabalhar com aplicativos de camada de dados
PowerShell permite aos usuários gravar scripts e automatizar as operações do ciclo de vida do aplicativo da camada de dados, como demonstrado neste capítulo através de exemplos simples. Além disso, amostras de código avançado podem ser encontradas no Microsoft project hosting e open fonte software site da Web na http://www.codeplex.com.
Extraindo um pacote de DAC de um banco de dados existente
O procedimento a seguir cria um pacote de DAC de um banco de dados usando o PowerShell:
- Em Pesquisador, inicie o programa SQLPS PowerShell right-clicking a instância do SQL Server que contém o banco de dados e, em seguida, clicando em Iniciar PowerShell.
- Instanciar o objeto de servidor e atribuir o valor da instância atual-lo executando o seguinte.
srv $ = get -item .
3. Defina os parâmetros para a extração executando as instruções a seguir. O aplicativo da camada de dados é extraído de um banco de dados chamado FinanceDB, que serve a aplicação de finanças; a versão é 1.0.0.0; e o pacote de DAC é criado em C:\temp\Finance.dacpac.
$dbname = "financedb"
$applicationname = "Finanças"
$versão = "1.0.0.0"
$dacpacPath = "C:\temp\Finance.dacpac"
Descrição de $ = "Esta DAC é usado para a aplicação de Finanças"
4. Extrair o aplicativo da camada de dados e criar o arquivo pacote de DAC executando o seguinte.
$extractionunit = New-Object Microsoft.SqlServer.Management.Dac.DacExtractionUnit($srv, $dbname, $applicationname, $versão)
$extractionunit.Descrição = $Descrição
$extractionunit.Extract($dacpacPath)
Registrar e criar um aplicativo da camada de dados para um banco de dados existente
Você pode registrar um banco de dados como um aplicativo da camada de dados em uma instância do SQL Server por meio do PowerShell. As etapas a seguir ilustram como fazer isso:
- Em Pesquisador, inicie o programa SQLPS PowerShell right-clicking a instância do SQL Server que contém o banco de dados e, em seguida, clicando em Iniciar PowerShell.
- Criar um servidor de objeto e conjunto -o para o atual instância do SQL Server executando o seguinte.
srv $ = get -item .
3. Defina os parâmetros para o registo de aplicativo da camada de dados executando instruções a seguir. O nome do banco de dados para registrar é FinanceDB, o nome do aplicativo para o aplicativo da camada de dados é finanças e a versão 1.0.0.0 é.
$databasename = "financedb"
$applicationname = "Finanças"
$versão = "1.0.0.0"
Descrição de $ = "This is a DAC para a aplicação de Finanças"
4. Extrair o aplicativo da camada de dados e criar o arquivo pacote de DAC executando o seguinte.
$registerunit = New-Object Microsoft.SqlServer.Management.Dac.DacExtractionUnit($srv, $databasename, $applicationname, $versão)
$registerunit.Descrição = $Descrição
$registerunit.Permite
Implantação de um novo aplicativo da camada de dados
Os usuários podem executar as instruções a seguir para implantar um aplicativo da camada de dados pela primeira vez através do PowerShell, de um pacote de DAC para uma instância do SQL Server. Para obter mais informações sobre o processo de implantação, consulte o Visão geral e descrição da implantação do Assistente.
- Em Pesquisador, inicie o programa SQLPS PowerShell right-clicking a instância do SQL Server que você deseja implantar o aplicativo da camada de dados e, em seguida, clicando em Iniciar PowerShell.
- Criar um servidor de objeto e conjunto -o para o atual instância do SQL Server executando o seguinte.
srv $ = get -item .
3. Criar uma conexão para sua instância do SQL Server e conectar-se à loja do DAC, executando o seguinte.
$serverconnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection
($srv.ConnectionContext.SqlConnectionObject)
$serverconnection.Connect)
$dacstore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverconnection)
4. Carregar um pacote de DAC de um arquivo, executando o próximo conjunto das demonstrações. Neste exemplo, que o arquivo Finance.dacpac é carregado forma a pasta C:\temp\
$dacpacPath = "C:\temp\Finance.dacpac"
$fileStream = [System.IO.File]::Open ($dacpacPath,[System.IO.FileMode]::OpenOrCreate)
$dacType = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)
5. Inscrever-se para os eventos de implantação do aplicativo da camada de dados executando o seguinte.
$dacstore.add_DacActionStarted ({write-Host ' n'nStarting em $(get-date):: $_.Descrição})
$dacstore.add_DacActionFinished ({write-Host concluído em $(get-date):: $_.Descrição})
6. Substitua as configurações nas instruções a seguir com os valores apropriados para a sua implantação e, em seguida, executar as instruções para implantar o aplicativo da camada de dados. Aqui, $dacName contém o nome do aplicativo da camada de dados (que é também o nome do banco de dados que será criado para armazenar os objetos de aplicativo da camada de dados ), $evaluateTSPolicy é uma variável booleana que instrui o processo de implantação se ignorar violações de políticas de seleção do servidor (se houver uma diretiva e ocorrem violações).
$dacName = "financedb"
$evaluateTSPolicy = $true
$deployProperties = New-Object Microsoft.SqlServer.Management.Dac.DatabaseDeploymentProperties($serverconnection,$dacName)
$dacstore.Instalar ($dacType, $deployProperties, $evaluateTSPolicy)
$fileStream.Close()
Atualizar um aplicativo da camada de dados para uma nova versão
As instruções desta seção descrevem como atualizar um existente aplicativo da camada de dados (por exemplo, DAC V1) para uma nova versão (por exemplo, DAC V2) usando o PowerShell. Para obter mais informações sobre o processo de atualização, consulte o Visão geral seção e a descrição do aplicativo de camada de dados Upgrade Assistente.
O exemplo a seguir atualiza a finanças aplicativo da camada de dados de versão V1 para versão V2. Aqui, supor que V1 do aplicativo da camada de dados foi implantado anteriormente através dos contornos de etapas de implantação no anterior seção.
- Em Pesquisador, iniciar o programa de SQLPS PowerShell clicando com a instância do SQL Server que contém o existente versão do aplicativo da camada de dados que será atualizado (ou seja, onde V1 DAC está sendo executado) e, em seguida, clicando em Iniciar PowerShell.
- Criar um servidor de objeto e conjunto -o para o atual instância do SQL Server executando o seguinte.
srv $ = get -item .
3. Criar uma conexão para sua instância do SQL Server e conectar-se à loja do DAC, executando o seguinte.
$serverconnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection
($srv.ConnectionContext.SqlConnectionObject)
$serverconnection.Connect)
$dacstore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverconnection)
4. Inscrever-se para os eventos de armazenamento do DAC, executando o seguinte:
$dacstore.add_DacActionStarted ({write-Host ' n'nStarting em $(get-date):: $_.Descrição})
$dacstore.add_DacActionFinished ({write-Host concluído em $(get-date):: $_.Descrição})
5. Carregar o DAC V2 executando as seguinte instruções. Neste exemplo, o arquivo de pacote do DAC V2 é chamado FinanceV2.dacpac e está localizado na pasta C:\temp\
US $v2dac = "C:\temp\FinanceV2.dacpac"
$fileStream = [System.IO.File]::Open (US $v2dac, [System.IO.FileMode]::OpenOrCreate)
$v2type = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)
6. Defina as opções de upgrade. Aqui, $dacNameToUpgrade é o nome do existente aplicativo da camada de dados (e o nome do banco de dados que será atualizado), $evaluateTSPolicy é um valor booleano que instrui o processo de atualização se os resultados da política de seleção de servidor devem ser ignorado, e $ignoreDriftOption é um valor booleano que é fornecido para reconhecer o fato de que, se as alterações foram feitas para o banco de dados de aplicativo da camada de dados fora do âmbito de aplicativo da camada de dados, tais alterações podem ser perdidas durante o processo de atualização (para obter mais informações, consulte o Upgrade aplicativos de camada de dados Assistente seção).
$dacNameToUpgrade = "financedb"
$evaluateTSPolicy = $true
$ignoreDriftOption = $true
7. Upgrade do aplicativo da camada de dados executando o seguinte.
opções de $ = New-Object Microsoft.SqlServer.Management.Dac.DacUpgradeOptions($evaluateTSPolicy, $ignoreDriftOption)
$dacstore.Atualização ($$ dacNameToUpgrade, $v2type,$ options)
$fileStream.Close()
Excluir um aplicativo da camada de dados
O processo para excluir um aplicativo da camada de dados de uma instância do SQL Server é descrito em detalhes no Visão geral seção deste documento. Informações adicionais também estão disponíveis na seção que descreve o aplicativo de camada de dados Delete Assistente.
As seguintes instruções PowerShell podem ser executadas para remover um aplicativo da camada de dados:
- Em Pesquisador, inicie o programa SQLPS PowerShell right-clicking a instância do SQL Server que contém o aplicativo da camada de dados que será removido e, em seguida, clicando em Iniciar PowerShell.
- Criar um servidor de objeto e conjunto -o para o atual instância do SQL Server executando o seguinte.
srv $ = get -item .
3. Iniciar a conexão para a instância do SQL Server e para o armazenamento de DAC e assinar os eventos executando o seguinte.
$serverconnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($srv.ConnectionContext.SqlConnectionObject)
$serverconnection.Connect)
$dacstore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverconnection)
$dacstore.add_DacActionStarted ({write-Host ' n'nStarting em $(get-date):: $_.Descrição})
$dacstore.add_DacActionFinished ({write-Host concluído em $(get-date):: $_.Descrição})
4. Defina o nome do aplicativo da camada de dados que será removido. Neste exemplo, o aplicativo da camada de dados e o banco de dados são nomeados FinanceDB.
$dacName = "financedb"
5. Remover o aplicativo da camada de dados , executando um dos seguintes três conjuntos de ações (para obter mais informações, consulte o aplicativo de camada de dados Delete Assistente seção).
- Remover o aplicativo da camada de dados eliminando a definição de DAC de msdb.
$dacstore.Unmanage($dacName)
- Remover a definição de DAC de msdb e desconectar o banco de dados usado pelo aplicativo da camada de dados.
$dacstore.Desinstalar ($dacName, [Microsoft.SqlServer.Management.Dac.DacUninstallMode]::DetachDatabase)
- Remover a definição de DAC de msdb e excluir o banco de dados usado pelo aplicativo da camada de dados.
$dacstore.Desinstalar ($dacName, [Microsoft.SqlServer.Management.Dac.DacUninstallMode]::DropDatabase) **
**
Desenvolvimento e teste de aplicativos de camada de dados no Visual Studio 2010
Introdução
Microsoft Visual Studio 2010 oferece vários projetos de banco de dados e modelos que permitem aos usuários desenvolver a parte de dados de seus aplicativos, nas edições do Visual Studio Professional, Visual Studio Premium e Ultimate de Visual Studio:
Projeto de banco de dados: modelos de projeto de banco de dados estão disponíveis para o SQL Server 2005 e SQL Server 2008. Você pode usar esses modelos para definir bancos de dados para aplicativos de missão críticos e essenciais para os negócios. Todos os objetos implementados pelos respectivos do SQL Server versão são suportados nos projetos de banco de dados.
Projeto de servidor: modelos de projeto de servidor estão disponíveis para o SQL Server 2005 e SQL Server 2008. Você pode usar esses modelos para definir objetos de nível de servidor, bem como as modificações para o SQL Server mestre banco de dados. Exemplos de servidor -nível objetos são logins e mensagens de erro personalizadas.
Aplicativo de camada de dados: camada de dados aplicativo (DAC) projetos são úteis para execução de aplicativos departamental (ou outros aplicativos simples) que siga a limitações e apoio do DAC orientações. Com o novo sistema de projeto de aplicativo da camada de dados , objetos de banco de dados e servidor de autor de desenvolvedores para sua aplicação, declarar sua intenção de implantação e, em seguida, compilação e pacote sua versão em um arquivo de pacote de DAC . Depois que estiver disponível, o pacote de DAC podem ser transferidas para os DBAs nos ambientes de teste e produção. Portanto, o pacote de DAC Opera como uma única unidade de implantação durante todo o ciclo de desenvolvimento, teste e produção de um aplicativo.
Além desses projetos e modelos, Visual Studio 2010 introduz mais sofisticados recursos de desenvolvimento e experiências, incluindo um novo editor de Transact -SQL e depurador, IntelliSense on-line e off-line que permite aos usuários gravar código mais rápido independentemente de se a janela do editor é conectado a um banco de dados subjacente, serviços linguísticos reforçada, um designer de política e Transact -SQL construir serviços e análise estática de código. Para obter mais informações sobre esses novos recursos de desenvolvimento, consulte SQL Server Books Online e documentos de treinamento on-line.
Criar e inicializar um aplicativo da camada de dados
Para começar a usar aplicativos de camada de dados no Visual Studio 2010, os desenvolvedores devem primeiro criar um novo projeto de aplicativo da camada de dados . Depois que o projeto estiver disponível, os usuários podem autor novos objetos de banco de dados e servidor. Como alternativa, para inicializar o projeto com o esquema existente, os desenvolvedores podem empregar uma das duas técnicas para preencher o projeto com objetos de banco de dados e servidor de aplicativos e bancos de dados existentes. Mais explicitamente, os usuários podem importar um aplicativo da camada de dados de um banco de dados existente, ou eles podem carregar objetos de esquema de um arquivo pacote de DAC . A criação do projeto e as etapas para importar objetos são explicadas em detalhes aqui:
Crie um novo projeto de aplicativo da camada de dados . No Visual Studio, clique em arquivo, clique em Novae, em seguida, clique em projeto. Sob Installed Templates, expanda o banco de dados nó e, em seguida, clique no SQL Server nó. No painel, clique em aplicativo de camada de dados doSQL Server. Em seguida, digite o nome do projeto, a localização e o nome da solução nas caixas de texto apropriado na parte inferior do formulário. Para usar o controle de fonte para o código de banco de dados, selecione o Adicionar fonte controle caixa de seleção. Depois de todas as seleções são inseridas, clique em OK para criar o projeto.
Figura 22: selecione o modelo de projeto aplicativo da camada de dados
Explore o projeto de camada de dados. Na Solution Explorer painel no Visual Studio, localizar e navegar através das seguintes nós e tipos de objetos:
- Propriedades: contém valores de propriedade que permitem aos usuários controlar como o projeto é implantado.
- Planos de geração de dados: contém informações sobre como gerar dados de teste realista e representativo para o banco de dados e a instância do SQL Server onde será implantado o DAC.
- Comparações de esquema: contém informações sobre uma comparação específica entre seu projeto e outro esquema.
- Objetos de esquema: contém o banco de dados e objetos de instância do SQL Server que são armazenados em arquivos de SQL . Para a maioria dos objetos, um arquivo é usado para armazenar um objeto na pasta do projeto.
- Scripts de: contém scripts de pré-implantação e pós-implantação, além de quaisquer scripts que você pode usar para gerenciar seu banco de dados ou servidor. Quando você cria o projeto, esses scripts são incluídos no arquivo pacote de DAC .
Figura 23:** explorando os nós do projeto aplicativo da camada de dados
Inicialize o projeto. Há várias maneiras para preencher objetos e código para o sistema de projeto. Você pode importar objetos de um banco de dados, importar objetos de um arquivo de pacote de DAC ou importar scripts Transact -SQL individuais que contêm código de banco de dados:
- Para importar objetos de um banco de dados, siga as etapas abaixo. Aqui, é importante observar que os objetos podem ser importados de um banco de dados apenas uma vez, para inicializar os objetos de projeto.
-
- Abra o Assistente de aplicativo de camada de dados. Clique com o botão direito no nó do projeto e, em seguida, clique em aplicativo de camada de dados de importação.
Figura 24: selecionando a opção de importação para carregar objetos para o projeto de aplicativo da camada de dados
-
- Na boas-vindas página do assistente, leia as instruções e clique próximo.
-
- Na Especificar opções de importação da página, clique em importação de uma existente instância do SQL Server. Em seguida, digite um valor na conexão cadeia de caracteres para a instânciado SQL Server, ou clique em Editar para configurar uma conexão. Depois disso, escolher um banco de dados do nome do banco de dados lista. Quando terminar, clique em próximo.
-
- O Resumo página lista todos os objetos de banco de dados que são suportados por um DAC. Se não houver suporte para todos os objetos, a importação não pode ser executada com sucesso. Se há suporte para todos os objetos, clique em próximo.
-
- O Importar objetos página controla o progresso enquanto o assistente cria os scripts SQL para o banco de dados de objetos e carrega-los para o projeto. Quando a página estiver concluída, clique em terminar para fechar o assistente.
- Objetos podem ser importados de um pacote de DAC depois de um arquivo de pacote está disponível (por exemplo, após a extração de um arquivo de pacote de DAC para um sistema existente em produção usando o Assistente de aplicativo do extrato de camada de dados no SQL Server Management Studio). A importação de um pacote de DAC pode ser feita apenas uma vez, para inicializar um novo projeto de aplicativo da camada de dados , tal como explicado nas instruções a seguir:
-
- Inicie o Assistente de aplicativo de camada de dados de importação como ilustrado na Figura 24. Clique com o botão direito no nó do projeto e, em seguida, clique em aplicativo de camada de dados de importação.
-
- Leia as instruções a boas-vindas página e, em seguida, clique em próximo.
-
- Na Especificar opções de importação da página, clique em importação de um aplicativo da camada de dadospacote e, em seguida, clique em Procurar para selecionar o arquivo de pacote de DAC . Quando terminar, clique em próximo.
-
- O Resumo página mostra a lista de objetos de banco de dados no pacote de DAC. Revise a lista de objetos e, em seguida, clique em próximo.
-
- O Importar objetos página controla o progresso como o assistente cria os scripts SQL para o banco de dados de objetos e carrega-los para o projeto. Clique em terminar para fechar o assistente quando a página for concluída.
- Você pode importar objetos de scripts SQL para inicializar o projeto de aplicativo da camada de dados , ou você pode carregar scripts depois que o projeto tenha sido inicializado (por carregar objetos de um pacote de DAC, por exemplo). Para carregar objetos de um script, siga estas instruções:
-
- Inicie o Assistente para importação de arquivo de Script SQL , clicando com o botão direito no nó do projeto e, em seguida, clicando em Importação Script.
-
- Leia as instruções a boas-vindas página e, em seguida, clique em próximo.
-
- Na Select File da página, clique em Procurar para selecionar um ou mais arquivos SQL para carregar para o projeto. Quando terminar, clique em próximo.
-
- O Especificar opções página permite que você escolha como objetos devem ser importados. Se o script SQL contém objetos que já fazem parte do projeto, selecione o Substituir objetos que já existem no projeto caixa de seleção para substituir os objetos do projeto. Para incluir propriedades estendidas e permissões de objeto de script SQL , selecione a importação propriedades estendidas e o permissões de importação Marcar caixas, respectivamente. Além disso, você pode usar os itens no Encoding lista para especificar a codificação método que foi utilizado para criar o script SQL . Quando terminar, clique em terminar para processar o script.
-
- Na Resumo página, exibir o log de ações e detalhes do assistente e, em seguida, clique em terminar para fechar o assistente.
Após ter sido criado um projeto de aplicativo da camada de dados , os usuários podem adicionar objetos de banco de dados do SQL Server, bem como instância objetos (tais como logons) para o projeto. Objetos podem ser adicionados usando modelos internos ou escrevendo código Transact -SQL diretamente no editor, sem o uso de modelos. Nesta seção, vários exemplos de adicionar objetos diferentes são explorados, ou seja, adicionar tabelas, exibições e procedimentos armazenados.
Adicionar tabelas para o projeto de aplicativo da camada de dados
Para ver como tabelas podem ser adicionadas para o sistema de projeto, veja as tabelas a seguir como exemplo. Aqui, supor que ambas as tabelas pertencem ao esquema dbo. A primeira tabela, chamado produto, tem uma restrição primary chave no ProductID coluna. A segunda tabela, ProductPhoto, tem uma restrição primary chave sobre o valor combinado das colunas ProductID e ProductPhtoID, e a tabela tem um relacionamento de chave estrangeira com o produtotabela.
Figura 25: tabelas para adicionar o sistema de projeto
** **
Para adicionar as tabelas na Figura 25 para o sistema de projeto, siga estas instruções:
- Em Solution Explorer, clique com botão direito o tabelas nó localizado sob o Esquema Objects\Schemas\dbo pasta para o projeto, aponte para Adde, em seguida, clique em tabela.
Figura 26: adicionando um objeto de tabela para o projeto
2. Na Add New Item caixa de diálogo, conjunto a tabela de nomes para produtoe, em seguida, clique em Add. O produto.tabelaarquivo. SQL é adicionado ao projeto e, em seguida, aberto no editor de Transact -SQL .
Figura 27: adicionando uma tabela para o projeto de um modelo
3. No editor, substitua o código do modelo no arquivo do produto.tabela. SQL com o seguinte código Transact -SQL e, em seguida, salve o arquivo e as alterações.
CREATE TABLE [dbo].[Product] (
[ID] [INT] IDENTITY(1,1) NOT NULL,
[Nome] [NVARCHAR](50) NOT NULL,
[ListPrice] [DINHEIRO] NOT NULL,
[Tamanho] [NVARCHAR](5) NULL,
RESTRIÇÃO [PK_Product_ProductID] principal chave em cluster (
[ID] ASC)
4. Repita as etapas 1 e 2 para criar a tabela ProductPhoto.
5. Repita a etapa 3 para a tabela ProductPhoto e substituir o código do modelo com o código a seguir.
CREATE TABLE [dbo].[ProductPhoto] (
[ID] [int] IDENTITY(1,1) NOT NULL,
[ProductID] [int] NOT NULL,
[ThumbNailPhoto] [varbinary](MAX) NOT NULL,
RESTRIÇÃO [PK_ProductPhoto_ProductID_ProductPhotoID] principal chave em cluster (
[ProductID] ASC,
[ID] ASC
),
RESTRIÇÃO [FK_ProductPhoto_Product_ProductID] estrangeiros chave ([ProductID]) referências [produtos] ([ID])
)
Neste momento, as duas tabelas são agora parte do projeto de aplicativo da camada de dados . É importante observar que as instruções CREATE TABLE usadas neste exemplo estão em conformidade com as seguintes práticas recomendadas e aplicativo da camada de dados limitações:
- Todas as restrições são definidas na instrução CREATE TABLE e explicitamente são nomeadas no script. Em outras palavras, o exemplo usa a instrução ALTER TABLE e existem sem restrições do sistema nomeado. Este facto é importante porque instruções ALTER TABLE não são suportadas no projeto de aplicativo da camada de dados .
- A instrução CREATE TABLE não usa o opcional na cláusula [principal], que permite ao usuário especificar o grupo de arquivos em que a tabela é criada. A cláusula opcional é omitida porque vários grupos de arquivos não são suportados na primeira versão de aplicativos de camada de dados no Visual Studio 2010 e o SQL Server 2008 R2.
Adicionando exibições e procedimentos armazenados para o projeto e construção da solução
Na seção anterior, duas tabelas foram adicionadas ao projeto de aplicativo da camada de dados . Agora que as tabelas estão disponíveis no sistema de projeto, você pode criar exibições e procedimentos armazenados que dependem dessas tabelas, executando as instruções a seguir. Estas instruções também demonstram como criar a solução global após todos os objetos são adicionados ao projeto.
- Criar um novo modo de exibição chamado ProductAndPhoto que seleciona o produtos e ProductPhoto tabelas. Para fazê-lo, em Gerenciador de soluções, com o botão direito o vistas pasta localizada sob o Esquema Objects\Schemas\dbo pasta do projeto. Aponte para Add, e, em seguida, clique em Exibir.
Figura 28: adicionando um modo de exibição para o projeto
2. Na Add New Item caixa de diálogo, conjunto o modo de exibição de nomes para ProductAndPhoto e, em seguida, clique em Add. O arquivo ProductAndPhoto.view.sql é adicionado ao projeto e aberto no Editor Transact -SQL .
Figura 29: definindo o nome de exibição
3. No editor, substitua o código no arquivo ProductPhoto.view.sql com o código a seguir e, em seguida, salvar as alterações.
CREATE VIEW [dbo].[ProductAndPhoto]
AS
Selecioneproduto. *,
Foto.[ThumbNailPhoto]
FROM [dbo].[Produtos]AS produto
JOIN [dbo].[ProductPhoto] AS foto
ON produto.[ID] = photo.[ProductID]
Ao escrever o código no editor, observe que o IntelliSense permite que você digite o código rapidamente, mesmo que a janela não é conectado a um banco de dados. Este é um novo recurso no Visual Studio 2010 chamado IntelliSense off-line (ou desconectado IntelliSense). Aqui, os itens listados na lista de conclusão são aqueles que aparecem em scripts de projeto de aplicativo da camada de dados e arquivos.
Figura 30: recursos Offline IntelliSense no Visual Studio 2010
4. Crie um novo procedimento armazenado chamado RetrieveProducts que Obtém os produtos da tabela produto e ProductPhoto: no Solution Explorer, clique com botão direito o Stored Procedures pasta localizada sob o Esquema Objects\Schemas\dbo\Programmability pasta, aponte para Adde, em seguida, clique em Stored Procedure.
5. Na Add New Item caixa de diálogo, conjunto o procedimento armazenado nome de RetrieveProductse, em seguida, clique em Add. O arquivo RetrieveProducts.proc.sql é adicionado ao projeto e aberto no editor de Transact -SQL .
6. No editor, substituir o código do procedimento armazenado com o código a seguir e salvar as alterações.
CRIAR procedimento [dbo].[RetrieveProducts]
@param1 int = 3300
AS
SELECT *
FROM [dbo].[Produtos]
ONDE [ListPrice] > = 3300
ORDER BY [ID] DESC
RETORNAR 0
7. Pressione CTRL + SHIFT + B para construir a solução e pagamento atenção para a janelade saída. Na saída janela, examine o log de saída para verificar se um arquivo de pacote de DAC foi criado. Neste exemplo, o pacote de DAC é armazenada como o arquivo SampleDatatierApp.dacpac.
8. Exiba o conteúdo do arquivo pacote de DAC de navegar para a pasta de saída e alterando a extensão do arquivo SampleDatatierApp.dacpac para. ZIP. Em seguida, clique duas vezes no arquivo renomeado. Um arquivo pacote de DAC contém arquivos XML com um manifesto que define todos os banco de dados e objetos de instância do SQL Server usados pelo aplicativo. Como alternativa, se as ferramentas de cliente para o SQL Server 2008 R2 são instaladas no computador, use o Unpack funcionalidade para exibir o conteúdo do CAD e revisar o código de implantação do DAC.
Figura 31: exibindo o conteúdo descompactado do pacote de DAC
Criação de uma política de seleção de servidor para declarar a intenção de implantação
Uma política de seleção de servidor permite que os desenvolvedores conjunto pré-requisitos e condições nainstância de destinodo SQL Server onde o aplicativo da camada de dados é implantado. Por exemplo, políticas de seleção de servidor permitem que os desenvolvedores restringir a implantação de aplicativo da camada de dados para instâncias do SQL Server 2005 ou versões posteriores.
Políticas de seleção de servidor são compostas durante o de criação de projetos de aplicativo da camada de dados no Visual Studio, e eles são avaliados durante implantação de projeto ou upgrade. Para criar uma diretiva de seleção de servidor no projeto de aplicativo da camada de dados , siga estas etapas:
- No Solution Explorer, sob o Propriedades nó, clique duas vezes em ServerSelection.sqlpolicy.
Figura 32: criando uma política de seleção de servidor
2. Propriedades da faceta lista as facetas de política que podem ser definidas como parte das condições. Para o exemplo em curso, selecione a VersionMajor a opção e selecione a caixa de seleção ao lado para abrir o Editar valores caixa de diálogo. Na caixa de diálogo conjunto operadorde comparação a é maior ou igual ae, em seguida, conjunto o valor campo para 9, como ilustrado na Figura 33. Em seguida, clique em OK. Quando você executa essa ação, a implantação do aplicativo da camada de dados é restrita para SQL Server 2005 ou versões posteriores.
Figura 33: definir uma condição política sobre a faceta propriedade VersionMajor
3. Ver o arquivo ServerSelection.sqlpolicy no editor. Para salvar as alterações, clique em Salvar todos os na barra de ferramentas ou pressione CTRL + SHIFT + S.
Figura 34: ver a política de seleção de servidor
Adicionando um script de pós-implantação para o projeto.
Você pode especificar ações que terão lugar depois de uma aplicativo da camada de dados é implantado em uma instância do SQL Server. Você especificar essas ações pós-implantação no script pós-implantação que reside sob Scripts, sob a Post-Deployment pasta no Solution Explorer.
Para incluir código Transact -SQL em um script de pós-implantação, clique duas vezes no arquivo Script.PostDeployment.sql e adicionar código para o script usando o editor. Depois que forem feitas alterações, salve o script para incluir as alterações. Em seguida, pressione F6 para compilar a solução.
Ao trabalhar com scripts de pós-implantação, você deve ter várias considerações e práticas recomendadas em conta:
- Na primeira versão de aplicativos de camada de dados, o script pós-implantação pode ser usado para manipular (por exemplo, preencher) dados após a implantação do projeto. Além disso, o script pós-implantação pode ser usado para criar objetos que não podem ser com suporte na versão inicial de aplicativos de camada de dados.
- Quando você cria a solução para criar um pacote de DAC, o post-deployment script Script.PostDeployment.sql torna-se parte do pacote de DAC.
- Quando você trabalha no Gerenciador de soluções, é recomendável que você incluir comandos todos pós-implantação a Script.PostDeployment.sql arquivo de script. Isto é porque somente um arquivo pós-implantação está incluído no pacote de DAC. Em outras palavras, você não deve criar vários arquivos.
- Se você quiser ver o script pós-implantação pacote de DAC, é recomendável que você use o aplicativo de camada de dados Unpack funcionalidade, que está disponível em computadores que estejam executando as ferramentas cliente do SQL Server 2008 R2.
- Quando um aplicativo da camada de dados é implantado em Visual Studio, o script pós-implantação é executado automaticamente no banco de dados mestre nainstância de destinodo SQL Server. No entanto, ao implantar um aplicativo da camada de dados do SQL Server Management Studio, o script pós-implantação não é executado automaticamente contra o destino instância. Para aplicar as alterações de script para o aplicativo da camada de dados, você deve executar e executar manualmente o script contra o destino instância e banco de dados usado pelo aplicativo da camada de dados.
- Visual Studio identifica um script pós-implantação por meio do Build Action propriedade associada com o script. Para ver a propriedade, selecione o script no Solution Explorer e pressione F4 para conjunto o foco na propriedades janelae, em seguida, localizar e rever o Build Action propriedade. Para um script de pós-implantação, deve ser o valor da propriedade PostDeploy.
Configurando um projeto aplicativo da camada de dados para implantação
Antes de implantar um novo aplicativo da camada de dados para um destinodeinstância do SQL Server, ou antes de atualizar um anteriormente implantado aplicativo da camada de dados para uma nova versão do Visual Studio, você deve primeiro configurar as configurações do projeto. O projeto configuração é necessária para fornecer Visual Studio com as informações de conexão para o destinodeinstância do SQL Server, para conjunto o nome do banco de dados que será usado pelo aplicativo da camada de dadose para conjunto o nome do aplicativo.
Para configurar um projeto de aplicativo da camada de dados , siga estas etapas:
- Clique com o botão direito no nó do projeto e, em seguida, clique em Propriedades. A página de propriedades principal com vários guias de propriedade é aberta na área do editor.
Figura 35: exibir as guias de propriedade para o projeto
2. No As configurações do projeto guia, abaixo dos Propriedades de camada de dados aplicativo, digite o nome do aplicativo da camada de dados na nome campo. Esse valor representa o nome do seu aplicativo. Por exemplo, se o aplicativo é usado para manipular dados financeiros, você pode conjunto o nome de Finanças. O nome do aplicativo da camada de dados desempenha um papel chave durante upgrades: se um anteriormente implantado aplicativo da camada de dados que tem a versão 1.0 é atualizado para a versão 2.0 usando um pacote de DAC que contém a mais recente versão, para realizar a atualização, o nome de aplicativos de camada de dados devem corresponder. Em outras palavras, o nome do aplicativo armazenado no arquivo de pacote do DAC 2.0 deve ser idêntico ao nome armazenado nas tabelas de metadados em msdb para o DAC 1.0 versão. Para obter mais informações sobre o processo de atualização, consulte a seção relevante descrevendo a atualizar operação no SQL Server Management Studio. Além disso, é importante notar que o nome de um implantado aplicativo da camada de dados pode ser alterado; no entanto, essas alterações não são recomendadas.
No As configurações de projeto guia, você também pode atualizar o versão campo para inserir o aplicativo da camada de dados versão para fins de acompanhamento e desenvolvimento. Além disso, é recomendável que você insira uma descrição curta para o projeto no Descrição campo. Quando terminar, pressione CTRL + S para salvar os valores atualizados.
3. Clique na construir guia. Certifique-se de que banco de dados agrupamento é conjunto como o valor apropriado, ou alterá-lo conforme necessário.
4. Clique na implantar guia e referir-se a destino cadeia de conexão. Clique em Editar para abrir o Conectar-se ao servidor caixa de diálogo e selecione o nome da instância do SQL Server onde o aplicativo da camada de dados será implantado. Nessa caixa de diálogo, certifique-se de usar o login que você usará para implantar ou atualizar o aplicativo da camada de dados (para obter mais informações sobre permissões de acesso mínimo, consulte o permissões mínimas e notas de segurança seção). Além disso, certifique-se de que a versão da instância do SQL Server atende a limitações deaplicativo da camada de dados.
Figura 36: a caixa de diálogo de conexão
- Na implantar , introduza o nome do banco de dados que será usado na nome da instância do aplicativo de camada de dados caixa. Quando a aplicativo da camada de dados é implantado, os objetos do projeto serão criados neste banco de dados.
- Para garantir que o destino instância atenda os pré-requisitos especificados na política de seleção de servidor, selecione o política de seleção Validar servidor caixa de seleção. Observe que esta opção não afeta o SQL Server Management Studio, onde a política de seleção do servidor é sempre avaliada contra o destino instância antes da implantação ou atualização.
Depois que o projeto está configurado, se o aplicativo da camada de dados nunca tiver sido implantada, você pode usar Visual Studio para implantar o projeto e criar o novo banco de dados e objetos. Se o aplicativo da camada de dados foi implantado anteriormente, você pode usar Visual Studio para upgrade esse existente para incluir os objetos especificados no sistema do projeto.
Implantar um aplicativo da camada de dados
Depois de um projeto é configurado para a implantação, você pode exibir a saída. Clique em Exibir, e, em seguida, clicar saída ou pressione CTRL + W para mostrar o painel saída. Em seguida, clique com o botão direito no nó do projeto no Solution Explorer e, em seguida, clique em implantar para aplicar as alterações de aplicativo da camada de dados , conforme ilustrado na Figura 37.
Figura 37: implantar o aplicativo da camada de dados
Se esta é a primeira vez que o aplicativo da camada de dados foi implantado (ou seja, não há nenhum banco de dados com o nome digitado no implantar guia de propriedades para o projeto), Visual Studio cria um novo banco de dados com o nome especificado e instala os objetos de banco de dados e instância . No entanto, se o banco de dados já existe nainstância de destinoe o aplicativo da camada de dados está sendo reimplantado, Visual Studio atualiza o existente aplicativo da camada de dados. O primeiro tempo de implantação e atualizar oaplicativo da camada de dados são descritas em detalhes anteriormente neste documento.
A saída janela, observa que, antes de inicia a implantação, Visual Studio cria o projeto e cria um arquivo de pacote de DAC com o .dacpac de extensão. Em seguida, o pacote de DAC é implantado contra o destino instância. Figura 28 mostra o log de rastreamento relatado na janela de saída para uma implantação de sucesso amostra. Para verificar a implantação, use Visual Studio ou SQL Server Management Studio para fazer logoninstância de destinodo SQL Server e explorar o banco de dados associado com o aplicativo da camada de dados.
Figura 38: o log de saída para uma implantação bem-sucedida
Em vários cenários, implantações de Visual Studio irão resultar em erros. Por exemplo, esses eventos ocorrem se as condições no política de seleção de servidor não são satisfeitas por destino instância do SQL Server, se o projeto não é configurado corretamente, se forem encontrados erros de Transact -SQL no código do projeto, ou se o projeto contém objetos que são não suportado por um aplicativo da camada de dados. Se ocorrerem erros de implantação, é altamente recomendável que você consulte a saída janela e exibir o log de erros.
Atualizando um aplicativo da camada de dados
Quando você está Implantando um projeto de aplicativo da camada de dados em Visual Studio, se o aplicativo da camada de dados anteriormente foi implantado nainstânciado destino, Visual Studio executa os mesmos passos que o processo de atualização de aplicativo da camada de dados . Este processo e suas ações associadas são descritas em detalhes anteriores no documento e na aplicativo da camada de dados atualizar a seção para o SQL Server Management Studio.
Limitações e suporte
Objetos com suporte em um aplicativo da camada de dados
A versão inicial de aplicativos de camada de dados é projetada para sistemas de simples-tecnologia da informação (TI) do endereço. Conseqüentemente, várias restrições são impostas pela estrutura de aplicativo da camada de dados .
Aplicativos de camada de dados e pacotes DAC destinam-se a servir de bancos de dados de usuário. DACs não podem ser operados para modelar e trabalhar com bancos de dados do sistema. Por exemplo, os usuários não é possível extrair, registrar ou implantar pacotes DAC para os master ou msdb bancos de dados do sistema.
A lista de banco de dados objeto-tipos com suporte em um DAC está disponível no SQL Server Books Online em . aspx (SQL.105) http://msdn.microsoft.com/en-us/library/ee210549. Objetos de banco de dados comum que não são suportados em um DAC incluem:
- Objetos marcados para substituição, incluindo padrões, regras e procedimentos armazenados numerados
- Tipos de dados e objetos CLR (tais como espacial, geografia, geometria, tipos de dados ID de hierarquia, assemblies SQL , procedimentos armazenados CLR e funções)
- Definido pelo usuário (CLR) tipos e agregados definidos pelo usuário
- Esquemas de partição e funções de partição
- Coleções de esquema XML, índices XML e índices espaciais
- Objetos do Service broker
- Colunas FILESTREAM
- As chaves simétricas, chaves assimétricas, certificados
- DisparadoresDDL
- Funções de aplicativo
- Objetos de catálogo de texto completo
- Procedimentos armazenados estendidos
- Criptografados objetos (por exemplo, procedimentos armazenados criptografados, exibições, funções e gatilhos)
- Objetos que contém as dependências entre banco de dados e referências de servidor vinculado
- Propriedades estendidas
- Sinônimos
As senhas não são armazenadas em pacote de DACou na definição do DAC em msdb. Quando SQL logons são criados durante a implantação do DAC ou atualização, cada logon do SQL é criado como um logon desabilitado com uma senha forte aleatória e a cláusula MUST_CHANGE. Daí em diante, os usuários devem habilitar e alterar a senha para cada novo logon SQL (usando o comando ALTER LOGIN, por exemplo).
Vários banco de dados e SQL Server instância-nível objetos não podem ser colocados em um pacote de DAC (quando um DAC em é construído ou importado em Visual Studio ou quando um DAC é extraído no SQL Server Management Studio). Quando um DAC é registrado ou extraído, estes instância-nível itens não são capturados na definição do DAC e não são armazenados em msdb ou o pacote de DAC, respectivamente. No entanto, esses objetos não impor quaisquer outras limitações ou impedir a utilização de DACs. Em outras palavras, os usuários podem extrair, registrar, implantar e atualizar DACs em instâncias que contenham tais itens.
Os objetos de banco de dados que se enquadram nesta categoria incluem:
- Permissões de objeto
- Associação de função (mapeamentos entre usuários e funções de banco de dados)
- Propriedades estendidas
- Estatísticas
- Diagramas
- Guias de plano
SQL instânciade servidor -nível objetos nesta categoria incluem:
- Servidores vinculados
- Trabalhos doSQL
- Certificados
- Pontos de extremidade
- Objetos de credencial
- Condições e políticas definidas pelo usuário
- Associação de função (mapeamentos entre logins e funções de servidor)
O comprimento do nome do banco de dados usado para extrair, registrar ou implantar o aplicativo da camada de dados não pode exceder 87 caracteres.
Arquivos e grupos de arquivos: O DAC framework fornece suporte limitado para arquivos de banco de dados e grupos de arquivos. DACs podem ser extraídos de um banco de dados com vários grupos de arquivos, e um banco de dados com vários grupos de arquivos pode ser registrado como um DAC. No entanto, grupos de arquivos não são armazenados na definição do DAC no pacote de DAC ou em msdb, após a extração ou registo processar, respectivamente. Como resultado, quando um DAC é implantado, o novo banco de dados criado durante a implantação terá um grupo de arquivos e um único arquivo. O tamanho inicial deste novo banco de dados é conjunto como 3 MB com 1MB irrestrito auto-crescimento. O arquivo de log do banco de dados é conjunto para um tamanho inicial de 1 MB, com aumento automático de 10 por cento, e ela é restrita a um tamanho máximo de 2 terabytes.
SQL Limitações da versão de servidor
Aplicativos de camada de dados podem ser extraídos do SQL Server 2000 ou versões posteriores, para criar um arquivo de pacote de DAC . No entanto, atualmente, aplicativos de camada de dados só podem ser implantados em uma instância do mecanismo de banco de dados do SQL Server 2008 R2. Da mesma forma, registrando um banco de dados como um aplicativo da camada de dados ou atualizar um aplicativo da camada de dados é suportada apenas no SQL Server 2008 R2. Suporte de implantação para versões adicionais do SQL Server pode tornar-se disponível em versões futuras.
Limitações de tamanho depacote de DAC
Um pacote de DAC pode ser criado usando uma das seguintes técnicas:
- No SQL Server Management Studio, escolher um banco de dados e executar o Assistente de aplicativo de camada de dados do extracto. O assistente produz um arquivo de pacote de DAC (com a extensão .dacpac) que contém os objetos de banco de dados e os logons associados com os usuários de banco de dados.
- No Visual Studio, use o recurso de compilação para criar um pacote de DAC do sistema de projeto de aplicativo de camada de dados. Nesse cenário, o arquivo pacote de DAC incluirá uma política de seleção do servidor, bem como usuário-scripts personalizados, como scripts de implantação pre/post (por exemplo, scripts pós-implantação contendo instruções INSERT para manipular os dados durante a implantação ou atualizar).
Com qualquer técnica, o tamanho da arquivos extras seção do pacote de DAC que armazena o scripts de pós-implantação de aplicativo da camada de dados não pode exceder 50 MB.
Permissões mínimas e notas de segurança
As seguintes permissões são necessárias no ciclo de vida de um aplicativo da camada de dados:
- Para extrair um DAC, você deve ter permissões de definição de modo de exibição e privilégios SELECT em sql_expression_dependencies no banco de dados de usuário, bem como o privilégio ALTER ANY LOGIN na instância do SQL Server. Se você pertence a função de banco de dados db_owner e a função de servidor securityadmin, você automaticamente atender a esses requisitos.
- A capacidade de implantar um DAC é limitada aos membros da função de servidor dbcreator que também têm permissões ALTER ANY LOGIN.
- Para atualizar um aplicativo da camada de dados de V1 (digamos) v2, você deve ser um membro da função de servidor dbcreator, deve ter permissões de ALTER ANY LOGIN e também deve ser um dbo do banco de dados CAD V1.
- Registrar um aplicativo da camada de dados requer as mesmas permissões como implantação.
- Para excluir um DAC, você deve ser um dbo do banco de dados usado pelo DAC.
- A operação de descompactar DAC usa o contexto de segurança do usuário do Windows logado. A funcionalidade de descompactar não requer permissões elevadas. Para com êxito descompactar os arquivos contidos em um pacote de DAC para uma determinada pasta, os usuários devem ter permissões de gravação para a pasta de destino .
Para logons DAC, há várias considerações relacionadas à segurança:
- anteriores, senhas para logons SQL não são modeladas em CAD. Senhas devem ser conjunto manualmente depois de novos SQL logons são criados durante a implantação ou atualização.
- Cruz -domínio Windows logins e implantações – dizem que os desenvolvedores usar Visual Studio para compor e implantar um aplicativo da camada de dados em um domíniodo Windows. Quando eles são feitos, os desenvolvedores criar um pacote de DAC e enviá-lo para produção para implantação em um outro domínio. No entanto, o nome do primeiro domínio é codificado para todos os logins do Windows no pacote; por conseguinte, Cruz -domínio logins do Windows não podem ser implantados com êxito. Tais cenários resultam em avisos (mas não erros) e fazem não bloco ou solicitar uma reversão da implantação. Para evitar esses avisos, especifique as instruções DDL para criar logins em um script pre/post-deployment em Visual Studio.
- Banco de dados padrão para logons DAC - O mestre banco de dados é o banco de dados padrão para todos os logons criado durante a implantação do DAC ou atualização.
- Login nome conflicts– durante a implantação, se um nome de login contido no pacote de DAC já existe na instância (possivelmente com propriedades diferentes), a criação de logon é ignorada e o logon existente não é alterado. O mesmo comportamento ocorre quando uma versão de um aplicativo da camada de dados é atualizado usando um pacote de DAC que contém uma nova versão.
Considerações de alta disponibilidade e recuperação de desastres
Um aplicativo da camada de dados consiste em um banco de dados, os objetos de banco de dados e conteúdo, e os logons associado com os usuários do banco de dados. Portanto, dependendo da arquitetura de ambientes SQL Server onde são utilizados os aplicativos de camada de dados, sua organização pode precisar ajustar ou adicionar etapas para recuperação de desastres existente (DR) e soluções de alta disponibilidade (HA) de modo a acomodar as restrições de aplicativos de camada de dados. Vários ajustes e recomendações são descritas nesta seção para soluções de alta disponibilidade-DR comuns.
Backup e restauração
SQL Servidor oferece recursos de backup e restauração de banco de dados para recuperação de desastres. No entanto, para planejar soluções de recuperação para aplicativos de camada de dados, você deve tomar várias medidas adicionais. Por exemplo, digamos que um aplicativo da camada de dados está sendo executado na instância do SQL Server chamado Instance1, e que uma segunda instância chamada instância2 será usado para recuperar o aplicativo da camada de dados. As considerações a seguir são recomendadas para garantir a recuperação fácil de Instance1 para instância2:
- Certifique-se de que todos os logins de Instance1 também estão disponíveis em instância2.
- Certifique-se de que o banco de dados usado pelo aplicativo da camada de dados em Instance1 é backup periodicamente, e que os arquivos de backup são acessíveis a partir de instância2.
- registrar banco de dados como um aplicativo da camada de dados em instância2. Durante o processo de registro, forneça o nome do aplicativo e DAC versão que foram usados em Instance1.
- Após o registo, altere as informações de conexão para seus aplicativos (por exemplo, a cadeia de conexão em um arquivo Web. config) para acessar o banco de dados em instância2.
Em geral, também é recomendável que você faça o backup periódico do msdb banco de dados ou o DAC tabelas na msdb, porque o nome do aplicativo e DAC versão necessária podem ser obtidos o backup. Além disso, em vez de registrar um aplicativo da camada de dados, você pode restauração o msdb banco de dados do sistema de backup de Instace1, para preencher automaticamente a definição de DAC em msdb em instância2.
Espelhamento e envio de logs
Aplicativos de camada de dados são operáveis com espelhamento de banco de dados. No entanto, ações especiais do ciclo de vida de um aplicativo da camada de dados podem afetar o processo de espelhamento e devem ser consideradas em conformidade. Para fins de discussão, dizer que um fonte banco de dados é usado em um principal instância do SQL Server chamado Instance1 e que um destino banco de dados espelhado situa-se no espelho instância nomeada instância2.
Pode ser um aplicativo da camada de dados extraído de banco de dados de fonte na máquina principal. No entanto, extrair um banco de dados do espelho (ou seja, o banco de dados em instância2) não é um cenário com suporte. Da mesma forma, o banco de dados de fonte em Instance1 pode ser registrado como um aplicativo da camada de dados, mas o registo funcionalidade não está disponível para o banco de dados de destino em instância2.
Depois de um novo aplicativo da camada de dados é implantado a partir de um pacote de DAC (por exemplo, usando o aplicativo de camada de dados implantar Assistente), um novo banco de dados é criado para armazenar os objetos pacote de DAC . Depois que o banco de dados estiver disponível, você pode conjunto o espelhamento entre as instâncias principal e espelho usando as configurações padrão de espelhamento.
Se um banco de dados é usado por um aplicativo da camada de dados e é o banco de dados de fonte em uma instânciade principal, cada vez que o aplicativo da camada de dados é atualizado, várias ações manuais é necessário para executar com êxito a atualização. As etapas manuais são necessárias porque o upgrade processo é executado em uma moda de side-by-side: quando você atualiza uma versão (digamos, DAC V1) para uma nova versão (por exemplo, DAC V2), um novo banco de dados é criado para armazenar os objetos para o DAC, o banco de dados espelhado de DAC V1 é renomeado e o novo banco de dados leva o nome do banco de dados espelhado original. Portanto, para atualizar um aplicativo da camada de dados, você deve remover o espelhamento sessão. Uma maneira de terminar a sessão de espelhamento é executar o seguinte sobre a principal instância.
ALTER DATABASE DatabaseName definir parceiro fora;
Depois de espelhamento é desconectado, o processo de atualização pode ser executado. Quando a atualização estiver concluída, crie um backup de banco de dados usado pelo aplicativo da camada de dados (ou seja, o recém-criado database), restauração ele no espelho instânciae conjunto o espelhamento novamente entre o principal e as instâncias de espelho.
Para exclusão, aplicativos de camada de dados podem ser removidos de uma instância do SQL Server em uma das três formas: removendo a definição de DAC de msdb, removendo a definição de DAC e desanexar o banco de dados, ou removendo a definição e descartando o banco de dados. Se o banco de dados usado pelo aplicativo da camada de dados é espelhado, a instrução ALTER DATABASE acima deve ser executada antes do banco de dados pode ser desanexado ou removido. No entanto, não há etapas são necessárias para remover a definição de DAC de msdb, porque ele não afeta o banco de dados de fonte .
Finalmente, é importante observar que conceitos similares se aplicam para envio de logs: ações de extração e inscrição estão disponíveis no banco de dados de fonte . Também, o envio de logs deve ser desconectado antes de atualizar um aplicativo da camada de dados, e deve ser conjunto até novamente depois que a atualização seja concluída.
Clustering
As diferentes acções do ciclo de vida de aplicativos de camada de dados podem ser executadas em um ambiente em cluster sem a necessidade de realizar ações especiais. Disse de maneira diferente, aplicativos de camada de dados podem ser operados, implantados ou atualizados em instâncias clusterizadas sem a necessidade de executar etapas manuais adicionais ou personalizadas.
Conclusão
Com a introdução de aplicativos de camada de dados no SQL Server 2008 e Visual Studio 2010, Microsoft facilita o ciclo de vida de projetos de banco de dados, permitindo que os desenvolvedores para compor o código de banco de dados sob controle de fonte , declarar e propósitos de implantação express, pacote se transforme em um único pacote de DAC e transferência altera para o teste e produção SQL ambientes de servidor. Os administradores de banco de dados em ambientes de teste e produção podem implantar automaticamente as alterações de banco de dados usando ferramentas internas, que omite a necessidade de executar erros e scripts potencialmente demorados.
Notas de fim
[D01] Se uma ou mais das condições não forem satisfeitos, você pode optar por ignorar a violação de política e prosseguir, ou você pode anular a implantação.
[D02] O banco de dados original do DAC V1 é renomeado e deixou sobre a instância do SQL Server depois que a atualização seja concluída. Portanto, as alterações não são completamente perdidas, como eles podem ser recuperados manualmente e mudou-se para o banco de dados do DAC V2.
Comentários
Este livro ajudá-lo? Por favor, dê-nos seus comentários. Diga-nos em uma escala de 1 (pobres) a 5 (excelente), como você classificaria este documento e por que você deu, esta classificação? Por exemplo:
- É você classificação alta devido a ter bons exemplos, capturas de tela excelente, claro escrever ou outra razão?
- É você classificação baixa devido à pobres exemplos, capturas de tela difusa ou escrita clara?
Esse feedback nos ajudará a melhorar a qualidade de white papers que lançamos.