Habilitar ou desabilitar o recurso de grupo de disponibilidade Always On

Aplica-se: SQL Server

Habilitar Always On grupos de disponibilidade é um pré-requisito para uma instância de servidor usar grupos de disponibilidade. Antes de poder criar e configurar qualquer grupo de disponibilidade, o recurso grupos de disponibilidade Always On deve ser habilitado em cada instância do SQL Server que hospedará uma réplica de disponibilidade de um ou mais grupos de disponibilidade.

Importante

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

Pré-requisitos

  • Nas versões anteriores do SQL Server 2017 e Windows Server 2016, a instância tinha que residir em um nó WSFC (Cluster de Failover do Windows Server) para habilitar o recurso de grupo de disponibilidade Always On. Para dar suporte aos grupo de disponibilidade de escala de leitura, começando com o SQL Server 2017 e o Windows Server 2016, é possível habilitar o recurso de grupo de disponibilidade mesmo que a instância do SQL Server não resida em um Cluster de Failover do Windows Server.

  • A instância do servidor deve estar executando uma edição de SQL Server que dá suporte a grupos de disponibilidade Always On. Para obter mais informações, consulte Recursos com suporte nas edições do SQL Server 2016.

  • Habilite Grupos de Disponibilidade AlwaysOn somente em uma instância de servidor por vez. Depois de habilitar os Grupos de Disponibilidade Always On, aguarde até que o serviço do SQL Server tenha reiniciado antes de seguir para a próxima instância de servidor.

Para obter informações sobre outros pré-requisitos, restrições e recomendações para criar e configurar grupos de disponibilidade, confira Pré-requisitos, restrições e recomendações para grupos de disponibilidade Always On (SQL Server).

Permissões

Enquanto os Grupos de Disponibilidade Always On estiverem habilitados em uma instância do SQL Server, a instância de servidor terá total controle no cluster WSFC.

Requer a associação ao grupo Administrador no computador local e o controle total no cluster WSFC. Ao habilitar o AlwaysOn usando o PowerShell, abra a janela Prompt de Comando usando a opção Executar como administrador .

Exige que o Active Directory crie objetos e gerencie permissões de objetos.

Determinar se o recurso está habilitado

Como usar o SQL Server Management Studio.

Para determinar se os Grupos de Disponibilidade AlwaysOn estão habilitados

  1. No Pesquisador de Objetos, clique com o botão direito do mouse na instância de servidor e clique em Propriedades.

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

    • True, se os Grupos de Disponibilidade AlwaysOn estiverem habilitados

    • False, se os Grupos de Disponibilidade AlwaysOn estiverem desabilitados.

Usando o Transact-SQL

Para determinar se os Grupos de Disponibilidade AlwaysOn estão habilitados

  1. Use a seguinte instrução SERVERPROPERTY :

    SELECT SERVERPROPERTY ('IsHadrEnabled');  
    

    A configuração da propriedade de servidor IsHadrEnabled indica se uma instância do SQL Server está habilitada para Grupos de Disponibilidade Always On da seguinte forma:

    • Se IsHadrEnabled = 1, os Grupos de Disponibilidade AlwaysOn estarão habilitados.

    • Se IsHadrEnabled = 0, os Grupos de Disponibilidade AlwaysOn estarão desabilitados.

    Observação

    Para obter mais informações sobre a propriedade do servidor IsHadrEnabled, confira SERVERPROPERTY (Transact-SQL).

Usando o PowerShell

Para determinar se os Grupos de Disponibilidade AlwaysOn estão habilitados

  1. Defina o padrão (cd) para a instância de servidor na qual você deseja determinar se os grupos de disponibilidade Always On estão habilitados.

  2. Insira o seguinte comando Get-Item do PowerShell:

    PS SQLSERVER:\SQL\NODE1\DEFAULT> get-item . | select IsHadrEnabled  
    

    Observação

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

Para configurar e usar o provedor do SQL Server PowerShell

Habilitar o recurso

Para habilitar o AlwaysOn, usando:

Usando o SQL Server Configuration Manager

Para habilitar os Grupos de Disponibilidade AlwaysOn

  1. Conecte-se ao nó do WSFC (Windows Server Failover Clustering) que hospeda a instância do SQL Server em que você deseja habilitar Grupos de Disponibilidade Always On.

  2. No menu Iniciar, aponte para Todos os Programas, Microsoft SQL Server, Ferramentas de Configuraçãoe clique em SQL Server Configuration Manager.

  3. No SQL Server Configuration Manager, clique em Serviços do SQL Server, clique com o botão direito do mouse em SQL Server (<nome da instância>), em que o <nome da instância> é o nome de uma instância de servidor local na qual você deseja habilitar os Grupos de Disponibilidade Always On, e clique em Propriedades.

  4. Selecione a guia Alta Disponibilidade AlwaysOn.

  5. Verifique se o campo Nome do cluster de failover do Windows contém o nome do cluster de failover local. Caso esse campo esteja em branco, significa que essa instância de servidor no momento não dá suporte a Grupos de Disponibilidade Always On. Talvez o computador local não seja um nó de cluster, o cluster WSFC tenha sido desligado ou essa edição do SQL Server não seja compatível com os grupos de disponibilidade Always On.

  6. Marque a caixa de seleção Habilitar Grupos de Disponibilidade AlwaysOn e clique em OK.

    SQL Server Configuration Manager salva suas alterações. Em seguida, você deve reiniciar manualmente o serviço do SQL Server . Isso permite escolher a hora de reinicialização mais adequada de acordo com as necessidades da sua empresa. Quando o serviço do SQL Server for reiniciado, o Always On será habilitado e a propriedade de servidor IsHadrEnabled será definida como 1.

Usando o SQL Server PowerShell

Para habilitar o AlwaysOn

  1. Altere o diretório (cd) para uma instância de servidor que você deseja habilitar para os Grupos de Disponibilidade AlwaysOn.

  2. Use o cmdlet Enable-SqlAlwaysOn para habilitar Grupos de Disponibilidade AlwaysOn.

    Para exibir a sintaxe de um cmdlet, use o cmdlet Get-Help no ambiente do 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 reiniciará o serviço do SQL Server, confira Quando um cmdlet reinicia o serviço do SQL Server?, mais adiante neste tópico.

Para configurar e usar o provedor do SQL Server PowerShell

Exemplo: Enable-SqlAlwaysOn

O seguinte comando PowerShell habilita Grupos de Disponibilidade Always On em uma instância do SQL Server (Computador\Instância).

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

Desabilitar recurso

Importante

Desabilite o AlwaysOn em somente uma instância de servidor por vez. Depois de desabilitar os Grupos de Disponibilidade Always On, aguarde até que o serviço do SQL Server tenha reiniciado antes de seguir para a próxima instância de servidor.

Recomendações

Antes de desabilitar o AlwaysOn em uma instância de servidor, recomendamos que você faça o seguinte:

  1. Se a instância de servidor estiver hospedando a réplica primária de um grupo de disponibilidade que você deseja manter, nós recomendaremos que você realize manualmente o failover do grupo de disponibilidade para uma réplica secundária sincronizada, se possível. Para obter mais informações, confira 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, confira Remover uma réplica secundária de um grupo de disponibilidade (SQL Server).

Usando o SQL Server Configuration Manager

Para desabilitar o AlwaysOn

  1. Conecte-se ao nó do WSFC (Windows Server Failover Clustering) que hospeda a instância do SQL Server em que você deseja desabilitar Grupos de Disponibilidade Always On.

  2. No menu Iniciar, aponte para Todos os Programas, Microsoft SQL Server, Ferramentas de Configuraçãoe clique em SQL Server Configuration Manager.

  3. No SQL Server Configuration Manager, clique em Serviços do SQL Server, clique com o botão direito do mouse em SQL Server (<nome da instância>), em que <nome da instância> é o nome de uma instância de servidor local na qual você deseja desabilitar os Grupos de Disponibilidade Always On, e clique em Propriedades.

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

    O SQL Server Configuration Manager salva a alteração e reinicia o serviço SQL Server. Quando o serviço do SQL Server for reiniciado, Always On será desabilitado e a propriedade de servidor IsHadrEnabled será definida como 0 para indicar que os Grupos de Disponibilidade Always On estão desabilitados.

  5. Recomendamos que você leia as informações contidas em Acompanhamento: Após a desabilitação do Always On, mais adiante neste tópico.

Usando o SQL Server PowerShell

Para desabilitar o AlwaysOn

  1. Altere o diretório (cd) para uma instância de servidor atualmente habilitada que você deseja desabilitar para os Grupos de Disponibilidade Always On.

  2. Use o cmdlet Disable-SqlAlwaysOn para habilitar Grupos de Disponibilidade AlwaysOn.

    Por exemplo, o comando a seguir desabilita os Grupos de Disponibilidade AlwaysOn em uma instância do SQL Server (Computer\Instance). Este comando requer a reinicialização da instância e você será solicitado a confirmar esta reinicialização.

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

    Importante

    Para obter informações sobre como controlar se o cmdlet Disable-SqlAlwaysOn reiniciará o serviço do SQL Server, confira Quando um cmdlet reinicia o serviço do SQL Server?, mais adiante neste tópico.

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

Para configurar e usar o provedor do SQL Server PowerShell

Acompanhamento: Depois de desabilitar o AlwaysOn

Depois que você desabilitar os grupos de disponibilidade Always On, a instância do SQL Server deverá ser reiniciada. O SQL Server Configuration Manager reinicia a instância de servidor automaticamente. Porém, se você usou o cmdlet Disable-SqlAlwaysOn, precisará reiniciar a instância de servidor manualmente. Para obter mais informações, consulte sqlservr Application.

Na instância de servidor reiniciada:

  • Os bancos de dados de disponibilidade não iniciam na inicialização do SQL Server, tornando-os inacessíveis.

  • A única instrução Transact-SQL Always On com suporte é DROP AVAILABILITY GROUP. CREATE AVAILABILITY GROUP, ALTER AVAILABILITY GROUP e as opções SET HADR de ALTER DATABASE não têm suporte.

  • Os metadados do SQL Server e os dados de configuração de grupos de disponibilidade Always On no WSFC não são afetados ao desabilitar os Grupos de Disponibilidade Always On.

Se você desabilitar os grupos de disponibilidade AlwaysOn permanentemente em todas as instâncias de servidor que hospedam uma réplica de disponibilidade para um ou mais grupos de disponibilidade, nós recomendaremos que você conclua as seguintes etapas:

  1. Se você não removeu as réplicas de disponibilidade locais antes de desabilitar o AlwaysOn, exclua (remova) cada grupo de disponibilidade para o qual a instância de servidor está hospedando uma réplica de disponibilidade. Para obter informações sobre como excluir um grupo de disponibilidade, confira Remover um Grupo de Disponibilidade (SQL Server).

  2. Para remover os metadados deixados para trás, exclua (ignore) 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 RESTORING. 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 do SQL Server?

Em uma instância de servidor atualmente em execução, usando Enable-SqlAlwaysOn ou Disable-SqlAlwaysOn, alterar a configuração atual de AlwaysOn pode provocar a reinicialização do serviço do SQL Server. O comportamento de reinicialização depende das seguintes condições:

Parâmetro -NoServiceRestart especificado Parâmetro -Force especificado O serviço SQL Server foi reiniciado?
Não Não Por padrão. Mas o cmdlet solicita o seguinte:

Para concluir essa ação, devemos reiniciar o serviço SQL Server na instância de servidor “<instance_name>”. Deseja continuar?

[Y] Sim [N] Não [S] Suspender [?] Ajuda (o padrão é “Y”):

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

Consulte Também

Visão geral dos Grupos de Disponibilidade AlwaysOn (SQL Server)
SERVERPROPERTY (Transact-SQL)