Clustering de failover e Grupos de Disponibilidade AlwaysOn (SQL Server)
Aplica-se a: SQL Server – Somente Windows
O Grupos de disponibilidade AlwaysOn, a solução de alta disponibilidade e recuperação de desastre incorporada no SQL Server 2012 (11.x), requer o WSFC (Windows Server Failover Clustering). Além disso, embora o Grupos de disponibilidade AlwaysOn não seja dependente do clustering de failover do SQL Server , você pode usar uma FCI (instância de clustering de failover) para hospedar uma réplica de disponibilidade para um grupo de disponibilidade. É importante saber a função de cada tecnologia de clustering e quais considerações precisam ser observadas ao criar o ambiente do Grupos de disponibilidade AlwaysOn .
Observação
Para obter informações sobre os conceitos do Grupos de disponibilidade Always On, confira Visão geral dos grupos de disponibilidade Always On (SQL Server).
Windows Server Failover Clustering e grupos de disponibilidade
A implantação do Grupos de disponibilidade AlwaysOn exige um WSFC (Windows Server Failover Cluster). Para ser habilitado para Grupos de disponibilidade AlwaysOn, uma instância do SQL Server deve residir em um nó WSFC, e o nó e o WSFC devem estar online. Além do mais, cada réplica de disponibilidade de um determinado grupo de disponibilidade deve residir em um nó diferente do mesmo WSFC. A única exceção é que, embora tenha sido migrado para outro WSFC, um grupo de disponibilidade pode temporariamente abranger dois clusters.
Grupos de disponibilidade AlwaysOn conta com o cluster WSFC (Windows Server Failover Cluster) para monitorar e gerenciar as funções atuais das réplicas de disponibilidade que pertencem a determinado grupo de disponibilidade e especificar como um evento de failover afeta as réplicas de disponibilidade. Um grupo de recursos do WSFC é criado para cada grupo de disponibilidade que você cria. O WSFC monitora este grupo de recursos para avaliar a integridade da réplica primária.
O quorum para o Grupos de disponibilidade AlwaysOn é baseado em todos os nós no WSFC independentemente de se um determinado nó de cluster hospeda qualquer réplica de disponibilidade. Ao contrário do espelhamento do banco de dados, não há nenhuma função de testemunha no Grupos de disponibilidade AlwaysOn.
A integridade geral de um WSFC é determinada pelos votos do quorum de nós no cluster. Se o WSFC for colocado offline devido a um desastre não planejado ou devido a um hardware ou uma falha de comunicação persistente, será necessária intervenção administrativa manual. Um administrador do Windows Server ou do WSFC precisará forçar um quorum e colocar os nós de cluster de sobrevivência novamente online em uma configuração não tolerante a falhas.
Importante
As chaves do Registro Grupos de disponibilidade AlwaysOn são subchaves do WSFC. Se você excluir e recriar um 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 WSFC original.
Para obter informações sobre como executar o SQL Server em nós do WSFC e sobre o quorum do WSFC, veja WSFC (Clustering de Failover do Windows Server) com SQL Server.
SQL Server FCIs (Instâncias de Cluster de Failover) e grupos de disponibilidade
Você pode configurar uma segunda camada de failover no nível da instância do servidor implementando SQL Server e um FCI junto com o WSFC. Uma réplica de disponibilidade pode ser hospedada por ou uma instância autônoma do SQL Server ou uma instância FCI. Somente um parceiro FCI pode hospedar uma réplica para um determinado grupo de disponibilidade. Quando uma réplica de disponibilidade estiver sendo executada em um FCI, a lista de proprietários possíveis para o grupo de disponibilidade conterá apenas o nó de FCI ativo.
Grupos de disponibilidade AlwaysOn não depende de nenhuma forma de armazenamento compartilhado. No entanto, se você usar uma FCI (instância de cluster de failover) do SQL Server para hospedar uma ou mais réplicas de disponibilidade, cada uma dessas FCIs exigirá armazenamento compartilhado para cada instalação de instância de cluster de failover padrão do SQL Server.
Para obter mais informações sobre os pré-requisitos adicionais, veja a seção “Pré-requisitos e Restrições do Uso de uma FCI (Instância de Cluster de Failover) do SQL Server para Hospedar uma Réplica de Disponibilidade” de Pré-requisitos, Restrições e Recomendações para Grupos de Disponibilidade Always On (SQL Server).
Comparação de instâncias de cluster de failover e grupos de disponibilidade
Independentemente do número de nós na FCI, uma FCI inteira hospeda uma única réplica dentro de um grupo de disponibilidade. A tabela a seguir descreve as distinções em conceitos entre nós em uma FCI e réplicas dentro de um grupo de disponibilidade.
Nós dentro de uma FCI | Réplicas dentro de um grupo de disponibilidade | |
---|---|---|
Usa o WSFC | Sim | Sim |
Nível de proteção | Instância | Banco de dados |
Tipo de armazenamento | Compartilhada | Não compartilhado Embora as réplicas de um grupo de disponibilidade não compartilhem armazenamento, uma réplica hospedada por uma FCI usa uma solução de armazenamento compartilhado conforme exigido por essa FCI. A solução de armazenamento é compartilhada somente pelos nós dentro da FCI e não entre as réplicas do grupo de disponibilidade. |
Soluções de armazenamento | Conexão direta, rede SAN, pontos de montagem, SMB | Depende do tipo de nó |
Secundários legíveis | Não* | Sim |
Configurações de política de failover aplicáveis | Quorum WSFC Específica da FCI Configurações de grupo de disponibilidade** |
Quorum WSFC Configurações de grupo de disponibilidade |
Recursos que recebem failover | Servidor, instância e banco de dados | Apenas banco de dados |
*Enquanto as réplicas secundárias síncronas em um grupo de disponibilidade sempre estão em execução em suas respectivas instâncias do SQL Server , os nós secundários em uma FCI não iniciaram suas respectivas instâncias do SQL Server de fato e, portanto, não são legíveis. Em uma FCI, um nó secundário inicia sua instância do SQL Server somente quando a propriedade do grupo de recursos é transferida a ele durante um failover de FCI. No entanto, no nó FCI ativo, quando um banco de dados hospedado por FCI pertence a um grupo de disponibilidade, se a réplica de disponibilidade local estiver em execução como réplica secundária legível, o banco de dados será legível.
**As configurações de política de failover do grupo de disponibilidade se aplicam a todas as réplicas, sejam elas armazenadas em uma instância autônoma ou em uma instância FCI.
Observação
Para obter mais informações sobre o Número de nós em FCIs e nos Grupos de Disponibilidade Always On para edições diferentes do SQL Server, confira Recursos com Suporte nas Edições do SQL Server 2012 (https://go.microsoft.com/fwlink/?linkid=232473).
Considerações para hospedar uma réplica de disponibilidade em uma FCI
Importante
Se você planeja hospedar uma réplica de disponibilidade em uma FCI (Instância de Cluster de Failover) do SQL Server, é preciso garantir que os nós host do Windows Server 2008 atendem aos pré-requisitos e às restrições do AlwaysOn para FCIs (Instâncias de Cluster de Failover). Para obter mais informações, confira Pré-requisitos, Restrições e Recomendações para Grupos de Disponibilidade Always On (SQL Server).
SQL Server As FCIs (Instâncias de Cluster de Failover) não dão suporte ao failover automático por grupos de disponibilidade, de modo que qualquer réplica de disponibilidade que esteja hospedado por um FCI só pode ser configurada para failover manual.
Talvez seja necessário configurar um WSFC para incluir discos compartilhados que não estão disponíveis em todos os nós. Por exemplo, considere um WSFC em dois centros de dados com três nós. Dois dos nós hospedam uma FCI (instância de cluster de failover) do SQL Server no data center primário e têm acesso aos mesmos discos compartilhados. O terceiro nó hospeda uma instância autônoma do SQL Server em um data center diferente e não tem acesso aos discos compartilhados do data center primário. Essa configuração de WSFC oferece suporte à implantação de um grupo de disponibilidade se a FCI hospeda a réplica primária e a instância autônoma hospeda a réplica secundária.
Quando for escolher uma FCI para hospedar uma réplica de disponibilidade para determinado grupo de disponibilidade, assegure-se de que um failover da FCI não tenha a possibilidade de fazer com que um nó WSFC tente hospedar duas réplicas de disponibilidade para o mesmo grupo de disponibilidade.
O exemplo de cenário a seguir ilustra como esta configuração pode resultar em problemas:
Marcel configura um WSFC com dois nós, NODE01
e NODE02
. Ele instala uma instância de cluster de failover do SQL Server , fciInstance1
, em NODE01
e NODE02
onde NODE01
é o proprietário atual de fciInstance1
.
Em NODE02
, Marcel instala outra instância do SQL Server, Instance3
, que é uma instância autônoma.
Em NODE01
, Marcel habilita a fciInstance1 para o Grupos de disponibilidade AlwaysOn. Em NODE02
, ele habilita a Instance3
para o Grupos de disponibilidade AlwaysOn. Depois, ele configura um grupo de disponibilidade para qual a fciInstance1
hospeda a réplica primária e Instance3
hospeda a réplica secundária.
Em determinado momento, a fciInstance1
torna-se não disponível em NODE01
, e o WSFC provoca o failover da fciInstance1
em NODE02
. Após o failover, fciInstance1
torna-se uma instância habilitada para o Grupos de disponibilidade AlwaysOnexecutada sob a função primária em NODE02
. No entanto, agora a Instance3
reside no mesmo nó WSFC da fciInstance1
. Isso violará a restrição do Grupos de disponibilidade AlwaysOn .
Para resolver o problema apresentado por este cenário, a instância autônoma, Instance3
, deve residir em outro nó no mesmo WSFC de NODE01
e NODE02
.
Para obter mais informações sobre FCIs do SQL Server, confira Instâncias do Cluster de Failover do Always On (SQL Server).
Restrições em relação ao uso do Gerenciador de Cluster de Failover do WSFC com grupos de disponibilidade
Não use o Gerenciador de Cluster de Failover para manipular grupos de disponibilidade, por exemplo:
Não adicione nem remova recursos no serviço clusterizado (grupo de recursos) para o grupo de disponibilidade.
Não altere nenhuma propriedade do grupo de disponibilidade, como os proprietários possíveis e os proprietários preferenciais. Essas propriedades são definidas automaticamente pelo grupo de disponibilidade.
Não use o Gerenciador de Cluster de Failover para mover grupos de disponibilidade para nós diferentes ou para fazer o failover de grupos de disponibilidade. O Gerenciador de Cluster de Failover não reconhece o status da sincronização das réplicas de disponibilidade, e isso pode resultar em um longo tempo de inatividade. Você deve usar o Transact-SQL ou o SQL Server Management Studio.
Aviso
Usando o Gerenciador de Cluster de Failover para mover uma instância de cluster de failover que hospeda um grupo de disponibilidade para um nó que já está hospedando uma réplica do mesmo grupo de disponibilidade pode resultar na perda da réplica do grupo de disponibilidade, impedindo que ele seja colocado online no nó de destino. Um único nó de um cluster de failover não pode hospedar mais de uma réplica do mesmo grupo de disponibilidade. Para obter mais informações sobre como isso ocorre e como recuperar, veja no blog Réplica removida inesperadamente no grupo de disponibilidade.
Conteúdo relacionado
Blogs:
Blogs da equipe do AlwaysOn do SQL Server: o blog oficial da equipe do AlwaysOn do SQL Server
Whitepapers:
Always On Architecture Guide: Building a High Availability and Disaster Recovery Solution by Using Failover Cluster Instances and Availability Groups (Guia de arquitetura do Always On: criando uma solução de alta disponibilidade e de recuperação de desastre usando instâncias de cluster de failover e grupos de disponibilidade)
White papers da Microsoft para SQL Server 2012
White papers da equipe de consultoria do cliente do SQL Server
Consulte Também
Visão geral dos Grupos de Disponibilidade AlwaysOn (SQL Server)
Habilitar e desabilitar Grupos de Disponibilidade AlwaysOn (SQL Server)
Monitorar grupos de disponibilidade (Transact-SQL)
Instâncias do cluster de failover do AlwaysOn (SQL Server)