Como excluir um aplicativo da camada de dados

Você poderá excluir um aplicativo da camada de dados usando o assistente para Excluir Aplicativo da Camada de Dados ou um script do Windows PowerShell. É possível especificar se o banco de dados associado é retido, desanexado ou descartado.

Antes de começar

Quando você exclui uma instância de DAC (aplicativo da camada de dados), escolhe uma das três opções que especificam o que será feito com o banco de dados associado ao aplicativo da camada de dados. Todas as três opções excluem os metadados da definição do DAC. As opções diferem no que fazem com o banco de dados associado ao aplicativo da camada de dados. O assistente não exclui nenhum dos objetos do nível de instância associados ao DAC ou banco de dados, como logons.

Opção

Ações de banco de dados

Excluir registro

O banco de dados associado permanece intacto.

Desanexar banco de dados

O banco de dados associado é desanexado. A instância do Mecanismo de Banco de Dados não pode fazer referência ao banco de dados, mas os dados e os arquivos de log estão intatos.

Excluir banco de dados

O banco de dados associado é ignorado. São excluídos os dados e os arquivos de log.

Não há nenhum mecanismo automático para restaurar os metadados da definição do DAC ou o banco de dados depois que um DAC é excluído. A maneira como a instância do DAC pode ser recriada manualmente depende da opção de exclusão.

Opção

Como recriar a instância do DAC

Excluir registro

Registrar um DAC do banco de dados deixado no lugar.

Desanexar banco de dados

Reanexe o banco de dados usando sp_attachdb ou o SQL Server Management Studio e registre uma nova instância de DAC no banco de dados.

Excluir banco de dados

Restaure o banco de dados de um backup completo feito antes do DAC ser excluído e registre uma nova instância do DAC no banco de dados.

ObservaçãoObservação

A recriação de uma instância de DAC com o registro de um DAC de um banco de dados restaurado ou reanexado não recriará algumas partes do DAC original, como a política de seleção de servidor.

Permissões

Um DAC pode ser excluído somente pelos membros das funções de servidor fixas sysadmin ou serveradmin, ou pelo proprietário do banco de dados. A conta interna do administrador do sistema do SQL Server, chamada sa, também pode iniciar o assistente.

Excluir um DAC usando o PowerShell

Crie um arquivo de script do PowerShell (como DeleteDAC.ps1) contendo o código a seguir.

  1. Adicione código para criar um objeto SMO Server e defini-lo como a instância que contém o DAC que você deseja excluir. Este exemplo define um objeto Server como a instância padrão no computador local:

    ## Set a SMO Server object to the default instance on the local computer.
    CD SQLSERVER:\SQL\localhost\DEFAULT
    $srv = get-item .
    
  2. Adicione código para abrir um objeto ServerConnection e conectar-se à mesma instância.

    ## 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)
    
  3. Adicione código para assinar os eventos de exclusão do DAC.

    ## Subscribe to the DAC delete events.
    $dacstore.add_DacActionStarted({Write-Host `n`nStarting at $(get-date) :: $_.Description})
    $dacstore.add_DacActionFinished({Write-Host Completed at $(get-date) :: $_.Description})
    
  4. Adicione código para especificar o DAC a ser excluído. Este exemplo especifica o nome do DAC:

    ## Specify the DAC to delete.
    $dacName  = "MyApplication"
    
  5. Adicione código para executar o método Uninstall com as informações especificadas acima. Use um destes três conjuntos de códigos, dependendo de qual opção de exclusão é apropriada:

    • Para excluir o registro do DAC, mas deixar o banco de dados intato:

      ## Only delete the DAC definition from msdb, the associated database remains active.
      $dacstore.Unmanage($dacName)
      
    • Para excluir o registro do DAC e desanexar o banco de dados:

      ## Delete the DAC definition from msdb and detach the associated database.
      $dacstore.Uninstall($dacName, [Microsoft.SqlServer.Management.Dac.DacUninstallMode]::DetachDatabase)
      
    • Para excluir o registro do DAC e descartar o banco de dados:

      ## Delete the DAC definition from msdb and drop the associated database.
      ## $dacstore.Uninstall($dacName, [Microsoft.SqlServer.Management.Dac.DacUninstallMode]::DropDatabase)
      

Execute o DeleteDAC.ps1 de uma sessão do PowerShell na qual você tenha carregado os snapins SQL Server PowerShell ou usando o utilitário de prompt de comando sqlps.

Usando o Assistente para Excluir Aplicativo da Camada de Dados

No Management Studio, você pode iniciar o assistente clicando com o botão direito do mouse em um nó de aplicativo da camada de dados no Pesquisador de Objetos e selecionando Excluir Aplicativo da Camada de Dados….

Clique no link na lista abaixo para ver os detalhes de uma página do assistente:

  • Introdução

  • Escolher método

  • Resumo

  • Excluir Aplicativo da Camada de Dados

Página de introdução

Esta página descreve as etapas para excluir 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 >- Continua com a página Escolher Método.

Cancelar - Finaliza o assistente sem excluir um aplicativo da camada de dados ou banco de dados.

Página Escolher Método

Use esta página para especificar o método de exclusão do aplicativo da camada de dados.

Excluir registro - Remove os metadados que definem o aplicativo da camada de dados, mas deixa o banco de dados associado intacto.

Desanexar banco de dados - Remove os metadados que definem o aplicativo da camada de dados e desanexa o banco de dados associado.

O banco de dados não pode mais ser referenciado por aquela instância do Mecanismo de Banco de Dados, mas os dados e os arquivos de log permanecem intactos.

Excluir banco de dados - Remove os metadados que definem o DAC e descarta o banco de dados associado.

Os dados e os arquivos de log do banco de dados são excluídos permanentemente.

< Anterior - Volta à página de Introdução.

Próxima >- Continue com a página Resumo.

Cancelar - Finaliza o assistente sem excluir o DAC ou o banco de dados.

Página de Resumo

Use essa página para examinar as ações que o assistente tomará ao excluir a instância do DAC.

Revisar o resumo de sua seleção - Revise o DAC, o banco de dados e o método de exclusão exibidos na caixa. Se as informações estiverem corretas, selecione Avançar ou Concluir para excluir o DAC. Se o DAC e as informações do banco de dados não estiverem corretas, selecione Cancelar e selecione o DAC correto. Se o método de exclusão não estiver correto, selecione Anterior para retornar ou a página Escolher Método e selecione um método diferente.

< Anterior - Retorna para a página Escolher Método para escolher um método de exclusão diferente.

Próxima >- Exclui a instância de DAC usando o método escolhido na página anterior e continua com a página Excluir Aplicativo da Camada de Dados.

Cancelar - Finaliza o assistente sem excluir a instância de DAC.

Página Excluir Aplicativo da Camada de Dados

Essa página relata o êxito ou a falha da operação de exclusão.

Excluindo o DAC - Relata o êxito ou falha de cada ação realizada para excluir a instância de DAC. Examine 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 exclusã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 é SQL Server Management Studio\DAC Packages na pasta Documentos da conta do Windows.

Concluir - Finaliza o assistente.

Histórico de alterações

Conteúdo atualizado

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