Atualizar um aplicativo da camada de dados
Use o Assistente para Atualizar Aplicativo da Camada de Dados ou um script do Windows PowerShell para alterar o esquema e as propriedades de um DAC (aplicativo da camada de dados) implantado no momento para coincidir com o esquema e as propriedades definidos em uma nova versão do DAC.
Antes de começar: Escolhendo Opções de Atualização de DAC, Limitações e Restrições, Pré-requisitos, Segurança, Permissões
Para atualizar um DAC, usando: O Assistente para Atualizar o Aplicativo da Camada de Dados, PowerShell
Antes de começar
Uma atualização de DAC é um processo no local que altera o esquema do banco de dados existente para corresponder ao esquema definido em uma nova versão do DAC. A nova versão do DAC é fornecida em um arquivo de pacote DAC. Para obter mais informações sobre como criar um pacote de DAC, consulte Aplicativos da camada de dados.
Escolhendo opções de atualização de DAC
Há quatro opções de atualização para uma atualização no local:
Ignorar Perda de Dados – Se True, a atualização continuará mesmo que algumas das operações resultem na perda de dados. Se False, estas operações finalizarão a atualização. Por exemplo, se uma tabela no banco de dados atual não estiver presente no esquema do novo DAC, a tabela será removida se True for especificado. A configuração padrão é True.
Bloquear Alterações - Se True, a atualização será finalizada se o esquema de banco de dados for diferente daquele definido no DAC anterior. Se False, a atualização continuará mesmo que sejam detectadas alterações. A configuração padrão é False.
Reversão em Falha - Se True, a atualização será incluída em uma transação. Se forem encontrados erros, haverá uma tentativa de reversão. Se False, todas as alterações serão confirmadas à medida que ocorrerem. Se houver erros, talvez você precise restaurar um backup anterior do banco de dados. A configuração padrão é False.
Ignorar a Validação da Política - Se True, a política de seleção de servidor de DAC não será avaliada. Se False, a política será avaliada e a atualização finalizará se houver um erro de validação. A configuração padrão é False.
[Início]
Limitações e restrições
Só podem ser executados uprades de DAC em Banco de dados SQLou SQL Server 2005 Service Pack 4 (SP4) ou posterior.
[Início]
Pré-requisitos
Convém fazer um backup completo do banco de dados antes de iniciar a atualização. Se uma atualização encontrar um erro e não puder reverter todas as suas alterações, talvez seja preciso restaurar o backup.
Antes de iniciar a atualização, há várias ações a serem adotadas para validar o pacote de DAC e as ações de atualização. Para obter mais informações sobre como executar essas verificações, consulte Validar um pacote de DAC.
É recomendável não atualizar usando um pacote de DAC de origens desconhecidas ou não confiáveis. Esses pacotes podem conter código mal-intencionado que possivelmente executarão códigos Transact-SQL inesperados ou provocarão erros ao modificar o esquema. Antes de usar um pacote de uma origem desconhecida ou não confiável, desempacote o DAC e examine o código, como procedimentos armazenados ou outro código definido pelo usuário.
Se ocorreram alterações no banco de dados atual após a implantação da última versão do DAC, algumas dessas alterações talvez impeçam a conclusão bem-sucedida da atualização, ou talvez elas sejam removidas pela atualização. Você deve primeiro gerar e examinar um relatório de revisão que inclua as alterações feitas no banco de dados.
É aconselhável gerar uma lista das alterações a serem feitas pela atualização no esquema, além de examinar essa lista para verificar se há problemas.
O nome do aplicativo no pacote de DAC deve corresponder ao nome do aplicativo do DAC implantado no momento. Por exemplo, se o DAC atual tiver um nome de aplicativo GeneralLedger, somente será possível atualizar usando um pacote de DAC que também tenha um nome de aplicativo GeneralLedger.
Verifique se há bastante espaço de log de transação disponível para registrar todas das modificações.
[Início]
Segurança
Para melhorar a segurança, os logons de autenticação do SQL Server são armazenados em um pacote do DAC sem senha. Quando o pacote é implantado ou atualizado, o logon é criado como um logon desabilitado com uma senha gerada. Para habilitar os logons, faça logon usando um logon que tenha a permissão de ALTER ANY LOGIN e use ALTER LOGIN para habilitar o logon e atribuir uma nova senha que possa ser comunicada ao usuário. Isso não é necessário para logons de Autenticação do Windows porque suas senhas não são gerenciadas pelo SQL Server.
[Início]
Permissões
Um DAC pode ser atualizado somente pelos membros das funções de servidor fixas sysadmin ou serveradmin ou por logons que estejam na função de servidor fixa dbcreator e tenham permissões ALTER ANY LOGIN. O logon deve ser o proprietário do banco de dados existente. A conta interna do administrador de sistema do SQL Server chamada sa também pode atualizar um DAC.
[Início]
Usando o Assistente para Atualizar Aplicativo da Camada de Dados
Para atualizar um DAC usando um assistente
No Pesquisador de Objetos, expanda o nó da instância que contém o DAC a ser atualizado.
Expanda os nós Gerenciamento e Aplicativos da Camada de Dados.
Clique com o botão direito do mouse no nó do DAC a ser atualizado e selecione Atualizar Aplicativo da Camada de Dados…
Conclua as etapas das caixas de diálogo do assistente:
Página de introdução
Página Selecionar Pacote
Página Analisar Política
Página Detectar Alterações
Analisar um plano de atualização
Página de resumo
Página Atualizar DAC
Página de introdução
Esta página descreve as etapas para atualizar um aplicativo da camada de dados.
Não mostrar esta página novamente. - Clique na caixa de seleção para interromper a exibição da página no futuro.
Avançar> - Vai para a página Selecionar Pacote.
Cancelar - Finaliza o assistente sem atualizar o DAC.
[Assistente de atualização]
Página Selecionar Pacote
Use esta página para especificar o pacote de DAC que contém a nova versão do aplicativo da camada de dados. A página faz a transição por dois estados.
[Assistente de atualização]
Selecionar o pacote de DAC
Use o estado inicial da página para escolher o pacote de DAC a ser implantado. O pacote de DAC deve ser um arquivo de pacote de DAC válido e deve ter uma extensão .dacpac. O nome do aplicativo de DAC no pacote de DAC deve ser igual ao nome do aplicativo do DAC atual.
Pacote de DAC - Especifique o caminho e o nome de arquivo do pacote de DAC que contém a nova versão do aplicativo da camada de dados. Você pode selecionar o botão Procurar no lado direito da caixa para procurar o local do pacote de DAC.
Nome do Aplicativo - Uma caixa somente leitura que exibe o nome do aplicativo de DAC atribuído quando o DAC foi criado ou extraído de um banco de dados.
Versão - Uma caixa somente leitura que exibe a versão atribuída quando o DAC foi criado ou extraído de um banco de dados.
Descrição - Uma caixa somente leitura que exibe a descrição escrita quando o DAC foi criado ou extraído de um banco de dados.
< Anterior - Volta à página de Introdução.
Avançar> - Exibe uma barra de progresso enquanto o assistente confirma se o arquivo selecionado é um pacote de DAC válido.
Cancelar - Finaliza o assistente sem atualizar o DAC.
[Assistente de atualização]
Validando o pacote de DAC
Exibe uma barra de progresso enquanto o assistente confirma se o arquivo selecionado é um pacote de DAC válido. Se o pacote de DAC for validado, o assistente seguirá para a página Examinar Política. Se o arquivo não for um pacote de DAC válido, o assistente permanecerá na página Selecionar Pacote de DAC. Selecione outro pacote de DAC válido ou cancele o assistente e gere um novo pacote de DAC.
Validando o conteúdo do DAC - A barra de progresso que relata o status atual do processo de validação.
< Anterior - Retorna ao estado inicial da página Selecionar Pacote.
Avançar> - Vai para a versão final da página Selecionar Pacote.
Cancelar - Finaliza o assistente sem implantar o DAC.
[Assistente de atualização]
Página Analisar Política
Use esta página para examinar os resultados da avaliação da política de seleção de servidor de DAC, se o DAC tiver uma política. A política de seleção de servidor de DAC é opcional e atribuída a um DAC criado no Microsoft Visual Studio. A política usa as facetas de política de seleção de servidor para especificar as condições que uma instância do Mecanismo de Banco de Dados deve atender para hospedar o DAC.
Resultados da avaliação das condições da política - Um relatório somente leitura que mostra se as avaliações das condições na política de seleção de servidor de DAC foram bem-sucedidas. Os resultados da avaliação de cada condição são relatados em uma linha separada.
Ignorar violações de política - Use esta caixa de seleção para continuar com a atualização se uma ou mais condições de política falharem. Somente selecione essa opção se você tiver certeza de que todas as condições que falharam não impedirão o funcionamento bem-sucedido do DAC.
< Anterior - Retorna à página Selecionar Pacote.
Avançar >- Continua na página Detectar Alterações.
Cancelar - Finaliza o assistente sem atualizar o DAC.
[Assistente de atualização]
Página Detectar Alterações
O uso desta página relata os resultados da verificação dos assistentes das alterações feitas ao banco de dados que tornam esse esquema diferente da definição do esquema armazenado nos metadados do DAC no msdb. Por exemplo, se as instruções CREATE, ALTER ou DROP tiverem sido usadas para adicionar, alterar ou remover objetos do banco de dados após a implantação original do DAC. Primeiro, a página exibe uma barra de progresso e depois relata os resultados da análise.
Detectando alteração, isso pode demorar alguns minutos - Exibe uma barra de progresso enquanto o assistente verifica as diferenças entre o esquema atual do banco de dados e os objetos na definição do DAC.
Resultados da detecção de alterações: - Indica se a análise foi concluída e os resultados são relatados abaixo.
O banco de dados DatabaseName não foi alterado - O assistente não detectou diferenças nos objetos definidos no banco de dados e em suas contrapartes na definição do DAC.
O banco de dados DatabaseName foi alterado - O assistente não detectou alterações entre os objetos no banco de dados e em suas contrapartes na definição do DAC.
Continuar, apesar da possível perda de alterações - Especifique que você entende que alguns dos objetos ou dados no banco de dados atual não estarão presentes no novo banco de dados e que está disposto a continuara com a atualização. Somente selecione este botão se você tiver analisado o relatório de alterações e entender as etapas que deve executar para transferir manualmente os objetos ou os dados necessários no novo banco de dados. Se você não tiver certeza, clique no botão Salvar Relatório para salvar o relatório de alterações e clique em Cancelar. Analise o relatório, faça um planejamento de como transferir os objetos e os dados necessários após a conclusão da atualização e reinicie o assistente.
Salvar Relatório - Clique no botão para salvar um relatório das alterações que o assistente detectou entre os objetos no banco de dados e suas contrapartes na definição do DAC. Em seguida, você pode examinar o relatório para determinar se precisa executar ações após a conclusão da atualização para incorporar alguns ou todos os objetos listados no relatório para o novo banco de dados.
< Anterior - Retorna à página Selecionar Pacote de DAC.
Avançar >- Continue na página Opções.
Cancelar - Finaliza o assistente sem implantar o DAC.
[Assistente de atualização]
Página Opções
Use esta página para selecionar a reversão em opção de falha para a atualização.
Reversão em falha – Selecione esta opção para incluir a atualização em uma transação que o assistente pode tentar reverter em caso de erros. Para obter mais informações sobre a opção, consulte Escolhendo Opções de Atualização de DAC.
Restaurar Padrões - Retorna a opção à sua configuração padrão de false.
< Anterior - Volta à página Detectar Alteração.
Avançar > - Prossegue para a página Analisar um plano de atualização.
Cancelar - Finaliza o assistente sem implantar o DAC.
[Assistente de atualização]
Página Analisar um plano de atualização
Use esta página para examinar as ações que serão tomadas pelo processo de atualização. Só prossiga quando estiver certo de que a atualização não criará problemas.
As ações a seguir serão usadas para atualizar o DAC. - Examine as informações exibidas para assegurar que as ações executadas estarão corretas. A coluna Ação exibe as ações, tais como instruções Transact-SQL, que serão executadas para realizar a atualização. A coluna Perda de Dados conterá um aviso se a ação associada puder excluir dados.
Atualizar - atualiza a lista de ações.
Salvar Relatório de Ação - salva o conteúdo da janela de ação em um arquivo HTML.
Continuar, apesar da possível perda de alterações - Especifique que você entende que alguns dos objetos ou dados no banco de dados atual não estarão presentes no novo banco de dados e que está disposto a continuara com a atualização. Somente selecione este botão se você tiver analisado o relatório de alterações e entender as etapas que deve executar para transferir manualmente os objetos ou os dados necessários no novo banco de dados. Se você não tiver certeza, clique no botão Salvar Relatório de Ação para salvar o relatório de alterações e no botão Salvar Scripts para salvar o script Transact-SQL. Depois, clique em Cancelar. Analise o relatório e o script. Em seguida, planeje como transferir os objetos e os dados necessários após a conclusão da atualização. Reinicie o assistente.
Salvar Scripts – salva as instruções Transact-SQL que serão usadas para executar a atualização em um arquivo de texto.
Restaurar Padrões - Retorna a opção à sua configuração padrão de false.
< Anterior - Volta à página Detectar Alteração.
Avançar >- Continue na página Resumo.
Cancelar - Finaliza o assistente sem implantar o DAC.
[Assistente de atualização]
Página Resumo
Use esta página para fazer uma análise final das ações do assistente ao atualizar o DAC.
As configurações a seguir serão usadas para atualizar o DAC. - Examine as informações exibidas para assegurar que as ações executadas estarão corretas. A janela exibe o DAC selecionado para atualização e o pacote de DAC que contém a nova versão do DAC. A janela também exibe se a versão atual do banco de dados é igual à definição de DAC atual, ou se o banco de dados foi alterado.
< Anterior - Volta à página Analisar um plano de atualização.
Avançar > - Implanta o DAC e exibe os resultados na página Atualizar DAC.
Cancelar - Finaliza o assistente sem implantar o DAC.
[Assistente de atualização]
Página Atualizar DAC
Esta página relata o êxito ou falha da operação de atualização.
Atualizando o DAC - Relata o êxito ou falha de cada ação realizada para atualizar o DAC. Analise as informações para determinar o êxito ou falha de cada ação. Todas as ações que obtiveram erro terão um link na coluna Resultado. Selecione o link para exibir um relatório do erro para aquela ação.
Salvar Relatório - Selecione esse botão para salvar o relatório de atualização em um arquivo HTML. O arquivo relata o status de cada ação, inclusive todos os erros gerados por qualquer uma das ações. A pasta padrão é uma pasta SQL Server Gerenciamento Studio\Pacotes de DAC na pasta Documentos da conta do Windows.
Concluir - Finaliza o assistente.
[Assistente de atualização]
Usando o PowerShell
Para atualizar um DAC que usa o método IncrementalUpgrade() em um script do PowerShell
Crie um objeto de servidor SMO e defina-o como a instância que contém o DAC a ser atualizado.
Abra um objeto ServerConnection e conecte-se à mesma instância.
Use System.IO.File para carregar o arquivo de pacote de DAC.
Use add_DacActionStarted e add_DacActionFinished para assinar os eventos de atualização do DAC.
Defina o DacUpgradeOptions.
Use o método IncrementalUpgrade para atualizar o DAC.
Feche o fluxo de arquivos usado para ler o arquivo de pacote de DAC.
[Início]
Exemplo (PowerShell)
O exemplo a seguir atualiza um DAC nomeado MyApplication em uma instância padrão do Mecanismo de Banco de Dados, usando uma nova versão de DAC em um pacote de MyApplicationVNext.dacpac.
## Set a SMO Server object to the default instance on the local computer.
CD SQLSERVER:\SQL\localhost\DEFAULT
$srv = get-item .
## Open a Common.ServerConnection to the same instance.
$serverconnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($srv.ConnectionContext.SqlConnectionObject)
$serverconnection.Connect()
$dacstore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverconnection)
## Load the DAC package file.
$dacpacPath = "C:\MyDACs\MyApplicationVNext.dacpac"
$fileStream = [System.IO.File]::Open($dacpacPath,[System.IO.FileMode]::OpenOrCreate)
$dacType = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)
## Subscribe to the DAC upgrade events.
$dacstore.add_DacActionStarted({Write-Host `n`nStarting at $(get-date) :: $_.Description})
$dacstore.add_DacActionFinished({Write-Host Completed at $(get-date) :: $_.Description})
## Upgrade the DAC and close the package.
$dacName = "MyApplication"
## Set the upgrade options.
$upgradeProperties = New-Object Microsoft.SqlServer.Management.Dac.DacUpgradeOptions
$upgradeProperties.blockonchanges = $true
$upgradeProperties.ignoredataloss = $false
$upgradeProperties.rollbackonfailure = $true
$ upgradeProperties.skippolicyvalidation = $false
## Upgrade the DAC
$dacstore.IncrementalUpgrade($dacName, $dacType, $upgradeProperties)
## Close the package file.
$fileStream.Close()
[Início]