Partilhar via


Ative ou desative a funcionalidade de grupo de disponibilidade Always On

Aplica-se a: SQL Server

Antes de poder criar e configurar um grupo de disponibilidade Always On, deve ativar a funcionalidade de grupos de disponibilidade Always On em cada instância do SQL Server que aloje uma réplica de disponibilidade.

Importante

Se eliminar e recriar um cluster WSFC, deve desativar e reativar a funcionalidade de grupos de disponibilidade Always On em cada instância do SQL Server que hospedava uma réplica de disponibilidade no cluster original do WSFC.

Pré-requisitos

  • No SQL Server 2016 (13.x), a instância deve residir num nó do Windows Server Failover Cluster (WSFC) para que a funcionalidade de grupo de disponibilidade esteja ativa.

  • Nas versões SQL Server 2017 (14.x) e posteriores, para suportar grupos de disponibilidade de escala de leitura, pode ativar a funcionalidade de grupo de disponibilidade mesmo que a instância do SQL Server não resida num Cluster de Failover do Windows Server.

  • A instância do servidor deve executar uma edição do SQL Server que suporte grupos de disponibilidade Always On. Para mais informações, consulte Edições e funcionalidades suportadas de SQL Server 2025.

  • Ative grupos de disponibilidade numa única instância de servidor de cada vez. Depois de ativar os grupos de disponibilidade, espere até o serviço SQL Server reiniciar antes de avançar para outra instância de servidor.

  • Para mais informações, consulte Pré-requisitos, Restrições e Recomendações para Always On Availability Groups (SQL Server).

Permissions

Quando ativas grupos de disponibilidade numa instância do SQL Server, a instância do servidor tem controlo total sobre o cluster WSFC.

Precisa de ser membro do grupo de Administradores no computador local e ter controlo total sobre o cluster WSFC. Ao ativar grupos de disponibilidade com o PowerShell, abra a janela da linha de comandos usando a opção Executar como administrador.

Precisas das permissões "Active Directory Create Objects" e "Manage Objects".

Determine se a funcionalidade está ativada

Pode usar o SQL Server Management Studio (SSMS), Transact-SQL ou PowerShell para verificar se a funcionalidade de grupos de disponibilidade está ativada.

Use SQL Server Management Studio

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

  2. Na caixa de diálogo Propriedades do Servidor , selecione a página Geral . A propriedade Is HADR Enabled apresenta um dos seguintes valores:

    • Verdade, se os grupos de disponibilidade estiverem ativados
    • Falso, se os grupos de disponibilidade estiverem desativados.

Utilize o Transact-SQL

Use a seguinte instrução SERVERPROPERTY :

SELECT SERVERPROPERTY('IsHadrEnabled');

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

  • IsHadrEnabled é 1, se os grupos de disponibilidade estiverem ativados.
  • IsHadrEnabled é 0, caso os grupos de disponibilidade estejam desativados.

Observação

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

Utilize o PowerShell

  1. Muda o diretório (cd) para uma instância de servidor onde queres determinar se Always On availability groups está ativado.

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

    Get-Item . | Select-Object IsHadrEnabled
    

    Observação

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

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

Ativar a funcionalidade

Pode ativar a funcionalidade de grupos de disponibilidade usando o SQL Server Management Studio (SSMS) ou o PowerShell.

Ativar com o SQL Server Management Studio

  1. Ligue-se ao nó do Windows Server Failover Cluster (WSFC) que hospeda a instância do SQL Server onde quer ativar os grupos de disponibilidade.

  2. No menu Start, aponte para Todos os Programas, aponte para Microsoft SQL Server, aponte para Ferramentas de Configuração e selecione SQL Server Configuration Manager.

  3. Em SQL Server Configuration Manager, selecione SQL Server Serviços, clique com o botão direito SQL Server (<nome da instância>). O nome <da> é o nome de uma instância de servidor local para a qual deseja ativar grupos de disponibilidade. Selecione Propriedades.

  4. Selecione o separador Always On Alta Disponibilidade.

  5. Verifique se o campo nome do cluster de failover do Windows contém o nome do cluster de failover local. Se este campo estiver vazio, esta instância de servidor atualmente não suporta grupos de disponibilidade Always On. 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 suporta os grupos de disponibilidade Always On.

  6. Selecione a caixa de seleção Habilitar Always On Availability Groups e, em seguida, selecione OK.

    O SQL Server Configuration Manager guarda a sua alteração. Depois, deve reiniciar manualmente o serviço SQL Server. Este passo permite-lhe escolher um horário de reinício que melhor se adeque às necessidades do seu negócio. Quando o serviço SQL Server reinicia, os grupos de disponibilidade são ativados e a propriedade do servidor IsHadrEnabled é definida para 1.

Habilitar com o PowerShell

  1. Muda o diretório (cd) para uma instância de servidor onde queiras ativar grupos de disponibilidade.

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

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

    Observação

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

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

Exemplo: Enable-SqlAlwaysOn

O seguinte comando PowerShell ativa a funcionalidade Always On dos grupos de disponibilidade numa instância de SQL Server (<computer>\<Instance>).

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

Desativar a funcionalidade

Use as secções seguintes para desativar a funcionalidade de grupos de disponibilidade usando o SQL Server Configuration Manager ou PowerShell. Depois de completar a operação de desativação, pode realizar quaisquer tarefas de seguimento necessárias.

Importante

Desative a funcionalidade de grupos de disponibilidade apenas numa instância de servidor de cada vez. Depois de desativar os grupos de disponibilidade Always On, espere que o serviço SQL Server reinicie antes de avançar para outra instância de servidor.

Recommendations

Antes de desativar a funcionalidade de grupos de disponibilidade numa instância de servidor, complete os seguintes passos:

  1. Se a instância do servidor atualmente hospeda a réplica principal de um grupo de disponibilidade que pretende manter, execute uma transferência manual do grupo de disponibilidade para uma réplica secundária sincronizada, se possível. Para mais informações, consulte Realize um Failover Manual Planeado de um Grupo de Disponibilidade (SQL Server).

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

Desativar com o SQL Server Configuration Manager

  1. Ligue-se ao nó do Windows Server Failover Cluster (WSFC) que hospeda a instância do SQL Server onde quer desativar os grupos de disponibilidade.

  2. No menu Start, aponte para Todos os Programas, aponte para Microsoft SQL Server, aponte para Ferramentas de Configuração e selecione SQL Server Configuration Manager.

  3. Em SQL Server Configuration Manager, selecione SQL Server Serviços, clique com o botão direito SQL Server (<nome da instância>). O <nome da instância> é o nome de uma instância de servidor local para a qual deseja desativar os grupos de disponibilidade. Selecione Propriedades.

  4. No separador Always On Alta Disponibilidade, despeje a caixa Ativar Always On Grupos de Disponibilidade e selecione OK.

    O SQL Server Configuration Manager guarda a sua alteração e reinicia o serviço SQL Server. Quando o serviço SQL Server reinicia, os grupos de disponibilidade são desativados, e a propriedade do servidor IsHadrEnabled é definida para 0, para indicar que a funcionalidade está desativada.

  5. Leia a informação em Seguimento, mais adiante neste artigo.

Desativar com o PowerShell

  1. Mude o diretório (cd) para uma instância de servidor atualmente ativada onde queres desativar os grupos de disponibilidade.

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

    Por exemplo, o comando seguinte desativa grupos de disponibilidade numa instância de SQL Server (Computador\Instância). Este comando requer reiniciar a instância, e és convidado a confirmar este reinício.

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

    Importante

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

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

Para configurar e usar o Fornecedor PowerShell do SQL Server, consulte SQL Server Fornecedor PowerShell.

Acompanhamento após desativar grupos de disponibilidade

Depois de desativar os grupos de disponibilidade Always On, reinicie a instância do SQL Server. O SQL Configuration Manager reinicia automaticamente a instância do servidor. No entanto, se usares o Disable-SqlAlwaysOn cmdlet, tens de reiniciar manualmente a instância do servidor. Para obter mais informações, consulte aplicação sqlservr.

Na instância do servidor reiniciada:

  • As bases de dados de disponibilidade não arrancam no arranque do SQL Server, tornando-as inacessíveis.

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

  • Os metadados do SQL Server e os 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 desativar permanentemente os grupos de disponibilidade em cada instância de servidor que aloja uma réplica de disponibilidade para um ou mais grupos de disponibilidade, complete os seguintes passos:

  1. Se não removeu as réplicas de disponibilidade local antes de desativar os grupos de disponibilidade, elimine (elimine) cada grupo de disponibilidade para o qual a instância do servidor está a hospedar uma réplica de disponibilidade. Para informações sobre como eliminar um grupo de disponibilidade, veja Remover um Grupo de Disponibilidade (SQL Server).

  2. Para remover os metadados, elimine (descarte) cada grupo de disponibilidade afetado numa instância de servidor que faça parte do WSFC original.

  3. Quaisquer bases de dados primárias continuam acessíveis a todas as ligações, mas a sincronização de dados entre as bases de dados primárias e secundárias termina.

  4. As bases de dados secundárias entram no estado de RESTAURAÇÃO. Pode apagá-los, ou restaurá-los usando RESTORE WITH RECOVERY. No entanto, as bases de dados restauradas já não participam na sincronização de dados por grupos de disponibilidade.

Quando é que um cmdlet reinicia o serviço SQL Server?

Numa instância de servidor que esteja atualmente a correr, usar Enable-SqlAlwaysOn ou Disable-SqlAlwaysOn para alterar a configuração atual do grupo de disponibilidade pode fazer com que o serviço de SQL Server reinicie. O comportamento de reinício depende das seguintes condições:

-NoServiceRestart parâmetro especificado -Force parâmetro especificado Serviço SQL Server reiniciado
Não Não Por padrão. Veja se ambos os parâmetros estão especificados.
Não Yes O serviço foi reiniciado.
Yes Não O serviço não foi reiniciado.
Yes Yes O serviço não foi reiniciado.

Se ambos os parâmetros forem especificados

Se especificar ambos os parâmetros -NoServiceRestart e -Force, o cmdlet irá 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 especificar N ou S, o serviço não é reiniciado.