Habilitar e desabilitar Grupos de Disponibilidade AlwaysOn (SQL Server)

Habilitar o Grupos de Disponibilidade AlwaysOn é 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 AlwaysOn deve ser habilitado em cada instância do SQL Server que hospedará uma réplica de disponibilidade de um ou mais grupos de disponibilidade.

Observação importanteImportante

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

  • **Antes de começar: **

    Pré-requisitos

    Segurança

  • **Instruções: **

    • Determinar se os Grupos de Disponibilidade AlwaysOn estão habilitados

    • Habilitar Grupos de Disponibilidade AlwaysOn

    • Desabilitar Grupos de Disponibilidade AlwaysOn

Antes de começar

Pré-requisitos para habilitar Grupos de Disponibilidade AlwaysOn

  • A instância de servidor deve residir em um nó WSFC (Windows Server Failover Clustering).

  • A instância de servidor deve estar executando uma edição do SQL Server com suporte para o Grupos de Disponibilidade AlwaysOn. Para obter mais informações, consulte Recursos compatíveis com as edições do SQL Server 2012.

  • Habilitar Grupos de Disponibilidade AlwaysOn somente em uma instância de servidor de cada vez. Depois de habilitar os Grupos de Disponibilidade AlwaysOn, 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 os pré-requisitos adicionais para criar e configurar grupos disponíveis, consulte Pré-requisitos, restrições e recomendações para grupos de disponibilidade AlwaysOn (SQL Server).

Segurança

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

Permissões

Requer a associação ao grupo Administrador no computador local e o controle total no cluster WSFC. Quando for 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.

Ícone de seta usado com o link Voltar ao Início[Início]

Determinar se os Grupos de Disponibilidade AlwaysOn estão habilitados

  • SQL Server Management Studio

  • Transact-SQL

  • PowerShell

Usando 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 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 AlwaysOn da seguinte forma:

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

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

    ObservaçãoObservação

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

Ícone de seta usado com o link Voltar ao Início[Início]

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 em que você deseja determinar se o Grupos de Disponibilidade AlwaysOn é habilitado.

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

    PS SQLSERVER:\SQL\NODE1\DEFAULT> get-item . | select IsHadrEnabled
    
    ObservaçãoObservaçã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 Obter Ajuda do SQL Server PowerShell.

Para configurar e usar o provedor do SQL Server PowerShell

Ícone de seta usado com o link Voltar ao Início[Início]

Habilitar Grupos de Disponibilidade AlwaysOn

Para habilitar o AlwaysOn, usando:

  • SQL Server Configuration Manager

  • PowerShell

Usando o SQL Server Configuration Manager

Para habilitar Grupos de Disponibilidade AlwaysOn

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

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

  3. Em SQL Server Configuration Manager, clique em Serviços do SQL Server, clique com o botão direito em SQL Server (<instance name>), onde <instance name> é o nome de uma instância de servidor local na qual você deseja habilitar Grupos de Disponibilidade AlwaysOn, 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. Se esse campo estiver em branco, essa instância de servidor não oferecerá suporte ao Grupos de Disponibilidade AlwaysOn no momento. Pode ser que o computador local não seja um nó de cluster, o cluster WSFC tenha sido desligado ou essa edição do SQL Server 2012 não ofereça suporte ao Grupos de Disponibilidade AlwaysOn.

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

    O 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, AlwaysOn será habilitado e a propriedade de servidor IsHadrEnabled será definida como 1.

Ícone de seta usado com o link Voltar ao Início[Início]

Usando o SQL Server PowerShell

Para habilitar o AlwaysOn

  1. Altere o diretório (cd) para uma instância de servidor que você queira habilitar para 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 Obter Ajuda do SQL Server PowerShell.

    ObservaçãoObservação

    Para obter informações sobre como controlar se o cmdlet Enable-SqlAlwaysOn reiniciará o serviço do SQL Server, consulte 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

Ícone de seta usado com o link Voltar ao Início[Início]

Exemplo: Enable-SqlAlwaysOn

O comando do PowerShell a seguir habilita o Grupos de Disponibilidade AlwaysOn em uma instância do SQL Server (Computer\Instance).

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

Desabilitar Grupos de Disponibilidade AlwaysOn

  • Antes de você desabilitar o AlwaysOn:  

    Recomendações

  • Para desabilitar o AlwaysOn, usando:

    • SQL Server Configuration Manager

    • PowerShell

  • Acompanhamento:  depois de desabilitar o AlwaysOn

Observação importanteImportante

Desabilite AlwaysOn em somente uma instância de servidor de cada vez. Depois de desabilitar os Grupos de Disponibilidade AlwaysOn, 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 você desabilitar o AlwaysOn em uma instância de servidor, nós 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, 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).

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 onde você deseja desabilitar Grupos de Disponibilidade AlwaysOn.

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

  3. Em SQL Server Configuration Manager, clique em Serviços do SQL Server, clique com o botão direito em SQL Server (<instance name>), onde <instance name> é o nome de uma instância de servidor local na qual você deseja desabilitar Grupos de Disponibilidade AlwaysOn, e clique em Propriedades.

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

    O SQL Server Configuration Manager salvará as alterações e reiniciará o serviço do SQL Server. Quando o serviço do SQL Server for reiniciado, AlwaysOn será desabilitado e a propriedade de servidor IsHadrEnabled será definida como 0 para indicar que os Grupos de Disponibilidade AlwaysOn estão desabilitados.

  5. Recomendamos que você leia as informações em Acompanhamento: depois de desabilitar o AlwaysOn, mais adiante neste tópico.

Ícone de seta usado com o link Voltar ao Início[Início]

Usando o SQL Server PowerShell

Para desabilitar o AlwaysOn

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

  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
    
    Observação importanteImportante

    Para obter informações sobre como controlar se o cmdlet Disable-SqlAlwaysOn reiniciará o serviço do SQL Server, consulte 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 Obter Ajuda do SQL Server PowerShell.

Para configurar e usar o provedor do SQL Server PowerShell

Ícone de seta usado com o link Voltar ao Início[Início]

Acompanhamento: depois de desabilitar o AlwaysOn

Depois que você desabilitar os grupos de disponibilidade AlwaysOn, 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 Aplicativo sqlservr.

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 AlwaysOn 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 do Grupos de Disponibilidade AlwaysOn no WSFC não são afetados ao desabilitar os Grupos de Disponibilidade AlwaysOn.

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 etapas a seguir:

  1. Se você não removeu as réplicas de disponibilidade locais antes de desabilitar o AlwaysOn, exclua (ignore) 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, consulte 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 cluster 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 para 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 do SQL Server foi reiniciado?

Não

Não

Por padrão. Mas o cmdlet solicita o seguinte:

Para concluir esta ação, devemos reiniciar o serviço do SQL Server para a instância de servidor '<nome_da_instância>'. 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.

Ícone de seta usado com o link Voltar ao Início[Início]

Consulte também

Referência

SERVERPROPERTY (Transact-SQL)

Conceitos

Visão geral de grupos de disponibilidade AlwaysOn (SQL Server)