Compartilhar via


Habilitar ou desabilitar o recurso do Grupo de Disponibilidade Always On.

Applies to:SQL Server

Antes de criar e configurar um grupo de disponibilidade Always On, você deve habilitar o recurso Always On grupos de disponibilidade em cada instância de SQL Server que hospeda uma réplica de disponibilidade.

Importante

Se você excluir e recriar um cluster WSFC, deverá desabilitar e reabilitar o recurso de grupos de disponibilidade Always On em cada instância de SQL Server que hospedou uma réplica de disponibilidade no cluster WSFC original.

Pré-requisitos

  • No SQL Server 2016 (13.x), a instância deve residir em um nó WSFC (Cluster de Failover do Windows Server) para habilitar o recurso do grupo de disponibilidade.

  • No SQL Server 2017 (14.x) e versões posteriores, para dar suporte a grupos de disponibilidade read-scale, você pode habilitar o recurso de grupo de disponibilidade mesmo que a instância SQL Server não resida em um Cluster de Failover do Windows Server.

  • A instância do servidor deve executar uma edição de SQL Server que dê suporte a grupos de disponibilidade Always On. Para obter mais informações, consulte Editions e recursos com suporte do SQL Server 2025.

  • Habilite grupos de disponibilidade em apenas uma instância de servidor por vez. Depois de habilitar grupos de disponibilidade, aguarde até que o serviço SQL Server seja reiniciado antes de prosseguir para outra instância do servidor.

  • Para obter mais informações, consulte Prerequisites, restrições e recomendações para grupos de disponibilidade Always On (SQL Server).

Permissões

Quando você habilita grupos de disponibilidade em uma instância de SQL Server, a instância do servidor tem controle total sobre o cluster WSFC.

Você precisa ser membro do grupo Administrador no computador local e ter controle total sobre o cluster WSFC. Ao habilitar grupos de disponibilidade com o PowerShell, abra a janela Prompt de Comando usando a opção Executar como administrador .

Você precisa de permissões Active Directory Create Objects e Manage Objects.

Determinar se o recurso está habilitado

Você pode usar SQL Server Management Studio (SSMS), Transact-SQL ou PowerShell para verificar se o recurso de grupos de disponibilidade está habilitado.

Usando o SQL Server Management Studio

  1. No SQL Server Management Studio (SSMS), em Object Explorer, clique com o botão direito do mouse na instância do servidor e selecione Properties.

  2. Na caixa de diálogo Propriedades do Servidor , selecione a página Geral . A propriedade Está habilitado para HADR exibirá um dos seguintes valores:

    • True, se os grupos de disponibilidade estiverem habilitados
    • False, se os grupos de disponibilidade estiverem desabilitados.

Usar Transact-SQL

Use a seguinte instrução SERVERPROPERTY :

SELECT SERVERPROPERTY('IsHadrEnabled');

A configuração da propriedade de servidor IsHadrEnabled indica se uma instância de SQL Server está habilitada para grupos de disponibilidade, da seguinte maneira:

  • IsHadrEnabled é 1, se os grupos de disponibilidade estiverem habilitados.
  • IsHadrEnabled é 0, se os grupos de disponibilidade estiverem desabilitados.

Observação

Para obter mais informações sobre a propriedade do IsHadrEnabled servidor, consulte SERVERPROPERTY.

Usar o PowerShell

  1. Mude o diretório (cd) para uma instância de servidor onde você deseja determinar se os grupos de disponibilidade Always On estão habilitados.

  2. Insira o seguinte comando do PowerShell Get-Item no SQLSERVER:\SQL\NODE1\DEFAULT prompt:

    Get-Item . | Select-Object IsHadrEnabled
    

    Observação

    Para exibir a sintaxe de um cmdlet, use o cmdlet Get-Help no ambiente SQL Server PowerShell. Para obter mais informações, consulte Get Help SQL Server PowerShell.

Para configurar e usar o provedor SQL Server PowerShell, consulte SQL Server PowerShell Provider.

Habilitar o recurso

Você pode habilitar o recurso grupos de disponibilidade usando SQL Server Management Studio (SSMS) ou PowerShell.

Habilitar com SQL Server Management Studio

  1. Conecte-se ao nó WSFC (Cluster de Failover do Windows Server) que hospeda a instância SQL Server em que você deseja habilitar grupos de disponibilidade.

  2. No menu Start, aponte para All Programs, aponte para Microsoft SQL Server, aponte para Configuration Tools e selecione SQL Server Configuration Manager.

  3. Em SQL Server Configuration Manager, selecione SQL Server Services, clique com o botão direito do mouse em SQL Server (<instance name>). O <nome> da instância é o nome de uma instância de servidor local para a qual você deseja habilitar grupos de disponibilidade. Selecione Propriedades.

  4. Selecione a guia Sempre Ligado na Alta Disponibilidade.

  5. Verifique se o campo nome do cluster de failover do Windows contém o nome do cluster de failover local. Se esse campo estiver em branco, essa instância do servidor atualmente não oferece suporte aos Grupos de Disponibilidade Sempre Ativo. Ou o computador local não é um nó de cluster, ou o cluster WSFC está desligado, ou esta edição do SQL Server não dá suporte aos grupos de disponibilidade Always On.

  6. Marque a opção Enable Always On Availability Groups e clique em OK.

    SQL Server Configuration Manager salva sua alteração. Em seguida, você deve reiniciar manualmente o serviço SQL Server. Esta etapa permite que você escolha um tempo de reinicialização que melhor atenda aos seus requisitos de negócios. Quando o serviço SQL Server é reiniciado, os grupos de disponibilidade são habilitados e a propriedade do servidor IsHadrEnabled é definida como 1.

Habilitar com o PowerShell

  1. Altere o diretório (cd) para uma instância de servidor na qual você deseja habilitar grupos de disponibilidade.

  2. Use o cmdlet Enable-SqlAlwaysOn para ativar grupos de disponibilidade.

    Para exibir a sintaxe de um cmdlet, use o cmdlet Get-Help no ambiente SQL Server PowerShell. Para obter mais informações, consulte Get Help SQL Server PowerShell.

    Observação

    Para obter informações sobre como controlar se o cmdlet Enable-SqlAlwaysOn reinicia o serviço SQL Server, consulte Quando um cmdlet reinicia o serviço SQL Server?, mais adiante neste artigo.

Para configurar e usar o provedor SQL Server PowerShell, consulte SQL Server PowerShell Provider.

Exemplo: Enable-SqlAlwaysOn

O comando do PowerShell a seguir habilita os grupos de disponibilidade Always On em uma instância de SQL Server (<computer>\<Instance>).

Enable-SqlAlwaysOn -Path SQLSERVER:\SQL\Computer\Instance

Desabilitar o recurso

Use as seções a seguir para desabilitar o recurso de grupos de disponibilidade usando SQL Server Configuration Manager ou PowerShell. Depois de concluir a operação de desabilitar, você pode executar todas as tarefas de acompanhamento necessárias.

Importante

Desabilite o recurso de grupos de disponibilidade em apenas uma instância de servidor por vez. Depois de desabilitar Always On grupos de disponibilidade, aguarde até que o serviço SQL Server seja reiniciado antes de prosseguir para outra instância do servidor.

Recomendações

Antes de desabilitar o recurso de grupos de disponibilidade em uma instância de servidor, conclua as seguintes etapas:

  1. Se a instância do servidor atualmente hospeda a réplica primária de um grupo de disponibilidade que você deseja manter, faça failover manualmente do grupo de disponibilidade para uma réplica secundária sincronizada, se possível. Para obter mais informações, consulte Executar um failover manual planejado de um Grupo de Disponibilidade (SQL Server).

  2. Remova todas as réplicas secundárias locais. Para obter mais informações, consulte Remover uma Réplica Secundária de um Grupo de Disponibilidade (SQL Server).

Desabilitar com o Gerenciador de Configurações do SQL Server

  1. Conecte-se ao nó WSFC (Cluster de Failover do Windows Server) que hospeda a instância SQL Server em que você deseja desabilitar grupos de disponibilidade.

  2. No menu Start, aponte para All Programs, aponte para Microsoft SQL Server, aponte para Configuration Tools e selecione SQL Server Configuration Manager.

  3. Em SQL Server Configuration Manager, selecione SQL Server Services, clique com o botão direito do mouse em SQL Server (<instance name>). O <nome> da instância é o nome de uma instância de servidor local para a qual você deseja desabilitar grupos de disponibilidade. Selecione Propriedades.

  4. Na guia Always On Alta Disponibilidade, desmarque a caixa de seleção Habilitar Always On Grupos de Disponibilidade e selecione OK.

    SQL Server Configuration Manager salva a alteração e reinicia o serviço de SQL Server. Quando o serviço SQL Server é reiniciado, os grupos de disponibilidade são desabilitados e a propriedade de servidor IsHadrEnabled é definida como 0, para indicar que o recurso está desabilitado.

  5. Leia as informações em Acompanhamento, mais adiante neste artigo.

Desativar com o PowerShell

  1. Altere o diretório (cd) para uma instância de servidor atualmente habilitada em que você deseja desabilitar grupos de disponibilidade.

  2. Use o Disable-SqlAlwaysOn cmdlet para desabilitar grupos de disponibilidade.

    Por exemplo, o comando a seguir desabilita grupos de disponibilidade em uma instância de SQL Server (Computer\Instance). Esse comando requer a reinicialização da instância e você será solicitado a confirmar essa reinicialização.

    Disable-SqlAlwaysOn -Path SQLSERVER:\SQL\Computer\Instance
    

    Importante

    Para obter informações sobre como controlar se o cmdlet Disable-SqlAlwaysOn reinicia o serviço SQL Server, consulte Quando um cmdlet reinicia o serviço SQL Server?, mais adiante neste artigo.

    Para exibir a sintaxe de um cmdlet, use o cmdlet Get-Help no ambiente SQL Server PowerShell. Para obter mais informações, consulte Get Help SQL Server PowerShell.

Para configurar e usar o provedor SQL Server PowerShell, consulte SQL Server PowerShell Provider.

Acompanhamento após desabilitar grupos de disponibilidade

Depois de desabilitar Always On grupos de disponibilidade, reinicie a instância do SQL Server. O SQL Configuration Manager reinicia a instância do servidor automaticamente. No entanto, se você usar o Disable-SqlAlwaysOn cmdlet, precisará reiniciar a instância do servidor manualmente. Para obter mais informações, consulte sqlservr Application.

Na instância de servidor reiniciada:

  • Os bancos de dados de disponibilidade não são iniciados durante a inicialização do SQL Server, tornando-os inacessíveis.

  • A única instrução Transact-SQL do grupo de disponibilidade com suporte é DROP AVAILABILITY GROUP. CREATE AVAILABILITY GROUP, ALTER AVAILABILITY GROUP, e as opções SET HADR de ALTER DATABASE não são suportadas.

  • Metadados do SQL Server e dados de configuração dos grupos de disponibilidade Always On no WSFC não são afetados pela desativação dos grupos de disponibilidade.

Se você desabilitar permanentemente grupos de disponibilidade em cada instância de servidor que hospeda uma réplica de disponibilidade para um ou mais grupos de disponibilidade, conclua as seguintes etapas:

  1. Se você não removeu as réplicas de disponibilidade locais antes de desabilitar grupos de disponibilidade, exclua (descarte) cada grupo de disponibilidade para o qual a instância do servidor está hospedando uma réplica de disponibilidade. Para obter informações sobre como excluir um grupo de disponibilidade, consulte Remove an Availability Group (SQL Server).

  2. Para remover os metadados, exclua (descarte) cada grupo de disponibilidade afetado em uma instância de servidor que faz parte do WSFC original.

  3. Qualquer banco de dados primário continuará acessível a todas as conexões, mas a sincronização de dados entre os bancos de dados primário e secundário será interrompida.

  4. Os bancos de dados secundários entram no estado de restauração. Você pode excluí-los ou restaurá-los usando RESTORE WITH RECOVERY. No entanto, os bancos de dados restaurados não participarão mais da sincronização de dados de grupos de disponibilidade.

Quando um cmdlet reinicia o serviço de SQL Server?

Em uma instância de servidor atualmente em execução, usar Enable-SqlAlwaysOn ou Disable-SqlAlwaysOn para alterar a configuração atual do grupo de disponibilidade pode fazer com que o serviço SQL Server seja reiniciado. O comportamento de reinicialização depende das seguintes condições:

-NoServiceRestart parâmetro especificado -Force parâmetro especificado serviço de SQL Server reiniciado
Não Não Por padrão. Veja se ambos os parâmetros são especificados.
Não Sim O serviço será reiniciado.
Sim Não O serviço não é reiniciado.
Sim Sim O serviço não é reiniciado.

Se ambos os parâmetros forem especificados

Se você especificar ambos os parâmetros -NoServiceRestart e -Force, o cmdlet solicitará o seguinte (o padrão é Y):

To complete this action, we must restart the SQL Server service for server instance '<instance_name>'. Do you want to continue?

[Y] Yes [N] No [S] Suspend [?] Help

Se você especificar N ou S, o serviço não será reiniciado.