Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre Autor: LeRoy Tuttle, Jr. (Microsoft). Colaboradores: Cephas Lin (Microsoft), Justin Erickson (Microsoft), Lindsey Allen (Microsoft), Min He (Microsoft), Sanjay Mishra (Microsoft). Revisores: Alexei Khalyako (Microsoft), Allan Hirt (SQLHA), Ayad Shammout (Caregroup), Benjamin Wright-Jones (Microsoft), Charles Matthews (Microsoft), David P. Smith (ServiceU), Juergen Thomas (Microsoft), Kevin Farlee (Microsoft), Shahryar G. Hashemi (Motricity), Wolfgang Kutschera (Bwin Party). Publicado em: janeiro de 2012 Aplica-se a: SQL Server 2012 Resumo: Este white paper discute como reduzir o tempo de inatividade planejado e não planejado, maximizar a disponibilidade do aplicativo e fornecer proteção de dados usando soluções de alta disponibilidade e recuperação de desastre do SQL Server 2012 AlwaysOn. Um objetivo fundamental deste documento é estabelecer um contexto comum para discussões relacionadas entre participantes comerciais, tomadores de decisões técnicas, arquitetos de sistemas, engenheiros de infraestrutura e administradores de bancos de dados. O conteúdo é apresentado em duas partes principais: Conceitos de alta disponibilidade e recuperação de desastre. Fornecem uma breve discussão dos fatores comerciais e desafios de planejar, gerenciar e medir objetivos de negócios de um ambiente de banco de dados altamente disponível. Essa discussão é seguida por uma breve visão geral dos recursos de alta disponibilidade e recuperação de desastre de soluções do SQL Server 2012 AlwaysOn e do Windows Server. Camadas de proteção do SQL Server AlwaysOn. Fornecem uma descrição mais detalhada sobre os recursos, a lógica e as dependências das camadas de proteção oferecidas por uma solução SQL Server AlwaysOn. Descrevem a disponibilidade da infraestrutura, a proteção em nível de instância do SQL Server, a proteção em nível de banco de dados e os recursos de aplicativo da camada de dados. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre i Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre ii Direitos autorais Este documento é fornecido “como está”. As informações e opiniões expressas nele, inclusive URLs e outras referências a sites da Internet, poderão ser alteradas sem aviso prévio. Você se responsabiliza por usá-lo. Alguns exemplos descritos aqui são fictícios e fornecidos apenas como ilustração. Nenhuma associação ou ligação real é intencional ou deve ser inferida. Este documento não fornece direitos legais a nenhuma propriedade intelectual de qualquer produto Microsoft. Você pode copiar e usar este documento para sua referência interna. © 2012 Microsoft. Todos os direitos reservados. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre iii Sumário Conceitos de alta disponibilidade e recuperação de desastre .............................................................. 1 Descrevendo a alta disponibilidade .......................................................................................................... 1 Tempo de inatividade planejado e não planejado .................................................................................................................. 1 Disponibilidade inadequada ................................................................................................................................................... 2 Determinando o tempo de inatividade .................................................................................................... 2 Objetivos de recuperação ....................................................................................................................................................... 3 Justificando o ROI ou o custo de oportunidade ...................................................................................................................... 3 Monitorando a integridade da disponibilidade ...................................................................................................................... 4 Planejando a recuperação de desastre ................................................................................................................................... 4 Visão geral: alta disponibilidade com o Microsoft SQL Server 2012 ........................................................ 5 SQL Server AlwaysOn .............................................................................................................................................................. 5 Reduzir significativamente o tempo de inatividade planejado ............................................................................................... 5 Eliminar o hardware ocioso e aumentar a relação custo-benefício e o desempenho ............................................................ 6 Implantação e gerenciamento fáceis ...................................................................................................................................... 6 Fazendo a comparação de recursos de RPO e RTO ................................................................................................................ 6 Camadas de proteção do SQL Server AlwaysOn .................................................................................. 7 Infraestrutura de disponibilidade ............................................................................................................. 8 Sistema operacional Windows ................................................................................................................................................ 8 Windows Server Failover Clustering ....................................................................................................................................... 9 Assistente de validação de cluster do WSFC ......................................................................................................................... 11 Modos de quorum do WSFC e configuração de votação ...................................................................................................... 13 Recuperação de desastre do WSFC por meio de quorum forçado ....................................................................................... 16 Proteção em nível de instância do SQL Server ....................................................................................... 18 Aperfeiçoamentos de disponibilidade – instâncias do SQL Server ....................................................................................... 18 Instâncias de Cluster de Failover AlwaysOn ......................................................................................................................... 19 Disponibilidade do banco de dados ........................................................................................................ 21 Grupos de Disponibilidade AlwaysOn ................................................................................................................................... 21 Failover de grupo de disponibilidade .................................................................................................................................... 23 Ouvinte de grupos de disponibilidade .................................................................................................................................. 24 Aperfeiçoamentos de disponibilidade – bancos de dados ................................................................................................... 26 Recomendações de conectividade de cliente......................................................................................... 27 Conclusão ........................................................................................................................................ 28 Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre iv Conceitos de alta disponibilidade e recuperação de desastre Você pode fazer a melhor seleção de uma tecnologia de banco de dados para uma solução de alta disponibilidade e recuperação de desastre quando todos os participantes compreendem da mesma forma os fatores comerciais, os desafios e objetivos do planejamento, o gerenciamento e a medição de objetivos de RTO e RPO. Os leitores que estiverem familiarizados com esses conceitos poderão passar diretamente para a seção Visão geral: alta disponibilidade com o Microsoft SQL Server 2012 deste documento. Descrevendo a alta disponibilidade Para um determinado aplicativo de software ou serviço, a alta disponibilidade é medida em termos da experiência e das expectativas do usuário final. O impacto tangível e percebido do tempo de inatividade nos negócios pode ser expresso em termos de perda de informações, danos materiais, queda de produtividade, custos de oportunidade, danos contratuais ou danos morais. O principal objetivo de uma solução de alta disponibilidade é minimizar ou reduzir o impacto do tempo de inatividade. Uma estratégia segura para isso equilibra da melhor maneira possível os processos de negócios e SLAs (contratos de nível de serviço) com recursos técnicos e custos de infraestrutura. Uma plataforma é considerada altamente disponível conforme o contrato e as expectativas dos clientes e participantes. A disponibilidade de um sistema pode ser expressa como este cálculo: 𝑇𝑒𝑚𝑝𝑜 𝑑𝑒 𝑎𝑡𝑖𝑣𝑖𝑑𝑎𝑑𝑒 𝑟𝑒𝑎𝑙 × 100% 𝑇𝑒𝑚𝑝𝑜 𝑑𝑒 𝑎𝑡𝑖𝑣𝑖𝑑𝑎𝑑𝑒 𝑒𝑠𝑝𝑒𝑟𝑎𝑑𝑜 O valor resultante é frequentemente expresso pelo setor de atividade em termos do número de noves que a solução oferece, cujo propósito é expressar um número anual de minutos de tempo de atividade possível ou, por outro lado, minutos de tempo de inatividade. Número de noves 2 3 4 5 Percentual de disponibilidade 99% 99,9% 99,99% 99,999% Tempo de inatividade anual total 3 dias, 15 horas 8 horas, 45 minutos 52 minutos, 34 segundos 5 minutos, 15 segundos Tempo de inatividade planejado e não planejado As interrupções do sistema são previstas e planejadas ou resultam de uma falha não planejada. O tempo de inatividade não precisa ser considerado um aspecto negativo se for gerenciado adequadamente. Existem dois tipos principais de tempo de inatividade previsível: Manutenção planejada. Uma janela de tempo pré-anunciada e coordenada para tarefas de manutenção planejada, como a aplicação de patches de software, atualizações de hardware, atualizações de senha, reindexação offline, carregamento de dados ou execução de testes de procedimentos de recuperação de desastre. Os procedimentos operacionais deliberados e bem-gerenciados devem minimizar o tempo de inatividade e impedir qualquer perda de dados. As atividades de manutenção planejada podem ser consideradas como investimentos necessários para evitar ou reduzir outros cenários de interrupção não planejada potencialmente mais severos. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 1 Interrupção não planejada. As falhas em nível de sistema, de infraestrutura ou de processo podem ocorrer de forma não planejada ou incontrolável, ou podem ser previsíveis, mas consideradas muito improváveis ou com um impacto aceitável. Uma solução de alta disponibilidade robusta detecta esses tipos de falhas, faz uma recuperação automática da interrupção e, em seguida, restabelece a tolerância a falhas. Ao estabelecer SLAs para alta disponibilidade, você deve calcular KPIs (indicadores chave de desempenho) separados para atividades de manutenção planejada e tempo de inatividade não planejado. Essa abordagem permite comparar seu investimento em atividades de manutenção planejada com a vantagem de evitar o tempo de inatividade não planejado. Disponibilidade inadequada A alta disponibilidade não deve ser considerada como uma proposta de tudo ou nada. Como alternativa a uma interrupção total, em geral, é aceitável para o usuário final que um sistema esteja parcialmente disponível ou que tenha uma funcionalidade limitada ou redução de desempenho. Esses vários graus de disponibilidade incluem: Operações somente leitura e adiadas. Durante uma janela de manutenção, ou durante uma recuperação de desastre feita em fases, a recuperação de dados ainda é possível, mas os novos fluxos de trabalho e o processamento em segundo plano podem estar temporariamente paralisados ou enfileirados. Latência de dados e capacidade de resposta do aplicativo. Devido a uma carga de trabalho pesada, uma lista de pendências de processamento ou uma falha parcial da plataforma, os recursos de hardware limitados podem estar sobrecarregados ou subdimensionados. A experiência do usuário poderá ser afetada, mas o trabalho ainda poderá ser feito de uma forma menos produtiva. Falhas parciais, temporárias ou iminentes. Robustez na lógica do aplicativo ou pilha de hardware que faz novas tentativas ou correções automáticas ao encontrar um erro. Esses tipos de problemas podem aparecer para o usuário final como latência de dados ou resposta insatisfatória do aplicativo. Falha de ponta a ponta parcial. As interrupções planejadas ou não planejadas podem ocorrer nas camadas verticais da pilha de solução (infraestrutura, plataforma e aplicativo), ou horizontalmente entre componentes funcionais diferentes. Os usuários podem experimentar êxito ou degradação parcial, dependendo dos recursos ou dos componentes afetados. A possibilidade de aceitação desses cenários abaixo do ideal deve ser considerada como parte de um espectro de redução de disponibilidade que resulta em interrupção total, bem como etapas intermediárias em uma recuperação de desastre dividida em fases. Determinando o tempo de inatividade Quando ocorre o tempo de inatividade, planejado ou não, o principal objetivo empresarial é fazer o sistema ficar novamente online e minimizar a perda de dados. Cada minuto de tempo de inatividade tem custos diretos e indiretos. Com o tempo de inatividade não planejado, você deve equilibrar o tempo e o esforço necessários para determinar por que a interrupção ocorreu, qual é o estado atual do sistema e que etapas são necessárias para a recuperação da interrupção. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 2 Em um momento predeterminado em qualquer interrupção, você deve tomar ou obter a decisão empresarial de parar de investigar a interrupção ou executar tarefas de manutenção, recuperar-se da interrupção colocando o sistema novamente online e, se necessário, restabelecer a tolerância a falhas. Objetivos de recuperação A redundância de dados é um componente fundamental de uma solução de banco de dados de alta disponibilidade. A atividade transacional na sua instância primária do SQL Server é aplicada de forma síncrona ou assíncrona em uma ou mais instâncias secundárias. Quando ocorre uma interrupção, as transações que estavam em andamento podem ser revertidas ou perder-se nas instâncias secundárias devido a atrasos na propagação dos dados. Você pode medir o impacto e definir metas de recuperação em termos de quanto tempo levará para retomar os negócios e quanta latência de tempo há na última transação recuperada: RTO (objetivo de tempo de recuperação). Essa é a duração da interrupção. A meta inicial é fazer com que o sistema volte a ficar online pelo menos a uma capacidade de somente leitura para facilitar a investigação da falha. Entretanto, a meta principal é restaurar o serviço completo até o ponto em que novas transações possam ocorrer. RPO (objetivo de ponto de recuperação). Isso é frequentemente chamado de medida de perda de dados aceitável. É o intervalo ou a latência de tempo entre a última transação de dados confirmada antes da falha e os dados mais recentes recuperados depois da falha. A perda de dados real pode variar dependendo da carga de trabalho no sistema no momento da falha, do tipo de falha e do tipo de solução de alta disponibilidade usado. Use os valores de RTO e de RPO como metas que indicam a tolerância de tempo de inatividade comercial e perda de dados aceitável, e como métricas para monitorar a integridade da disponibilidade. Justificando o ROI ou o custo de oportunidade Os custos empresariais do tempo de inatividade podem ser financeiros ou na forma de reputação do cliente. Esses custos podem ser acumulados com o tempo ou podem incidir em um determinado ponto na janela de interrupção. Além da projeção do custo de incorrer em uma interrupção com um tempo e um ponto de recuperação de dados específicos, você também pode calcular o processo comercial e os investimentos em infraestrutura necessários para atingir suas metas de RTO e RPO ou para evitar qualquer interrupção. Esses temas de investimento devem incluir: Evitar o tempo de inatividade. Os custos de recuperação de uma interrupção serão todos evitados, antes de tudo, se não houver uma interrupção. Os investimentos incluem o custo de hardware ou infraestrutura tolerante a falhas e redundante, a distribuição de cargas de trabalho por pontos de falha isolados e o tempo de inatividade planejado para manutenção preventiva. Recuperação automática. Se ocorrer uma falha do sistema, você poderá reduzir significativamente o impacto do tempo de inatividade na experiência do cliente por meio da recuperação automática e transparente. Utilização de recursos. A infraestrutura secundária ou em espera pode permanecer ociosa, aguardando uma interrupção. Ela também pode ser aproveitada para cargas de trabalho somente leitura, ou para melhorar o desempenho geral do sistema com a distribuição de cargas de trabalho em todo o hardware disponível. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 3 Para determinadas metas de RTO de RPO, os investimentos em disponibilidade e recuperação necessários, combinados aos custos de tempo de inatividade projetados, podem ser expressos e justificados em função do tempo. Durante uma interrupção real, isso permite que você tome decisões baseadas no custo de acordo com o tempo de inatividade decorrido. Monitorando a integridade da disponibilidade De um ponto de vista operacional, durante uma interrupção real, você não deve tentar considerar todas as variáveis relevantes e calcular o ROI ou os custos de oportunidade em tempo real. Em vez disso, deve monitorar a latência de dados em suas instâncias em espera como um proxy para verificar o RPO esperado. No caso de uma interrupção, você também deve limitar o tempo inicial gasto na investigação da causa raiz durante a interrupção e, em vez disso, concentrar-se na validação da integridade de seu ambiente de recuperação, para depois recorrer aos logs detalhados do sistema e às cópias secundárias de dados para obter uma análise investigativa subsequente. Planejando a recuperação de desastre Embora os esforços de alta disponibilidade envolvam o que você faz para impedir uma interrupção, os esforços de recuperação de desastre tratam do que é feito para restabelecer a alta disponibilidade após a interrupção. Tanto quanto possível, os procedimentos de recuperação de desastre e as responsabilidades devem ser formulados antes que ocorra uma interrupção real. Com base em monitoramento e alertas ativos, a decisão de iniciar um failover automático ou manual e um plano de recuperação deve estar ligada a limites preestabelecidos de RTO e RPO. O escopo de um plano de recuperação de desastre satisfatório deve incluir: Granularidade de falha e recuperação. Dependendo do local e do tipo de falha, você pode executar uma ação corretiva em níveis diferentes; ou seja, no data center, na infraestrutura, na plataforma, no aplicativo ou na carga de trabalho. Material de origem investigativa. Linha de base e histórico de monitoramento recente, alertas do sistema, logs de eventos e consultas de diagnóstico devem estar prontamente acessíveis às partes adequadas. Coordenação de dependências. Na pilha do aplicativo, por meio dos participantes, quais são as dependências do sistema e da empresa? Árvore de decisão. Uma árvore de decisão predeterminada, repetível e validada que inclui as responsabilidades das funções, a triagem de falhas, os critérios de failover em termos de metas de RPO e RTO e as etapas de recuperação prescritas. Validação. Depois de executar as etapas para a recuperação da interrupção, o que deve ser feito para verificar se o sistema retornou às operações normais? Documentação. Capture todos os itens acima em um conjunto de documentação, com detalhes e clareza suficientes para que uma equipe terceirizada possa executar o plano de recuperação com assistência mínima. Esse tipo de documentação geralmente é chamado de ‘processos de compilação de rotinas’ ou ‘livro de receitas’. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 4 Execuções de teste de recuperação. Pratique regularmente o plano de recuperação de desastre para estabelecer expectativas de base para metas de RTO, e considere a rotação normal de hospedagem do site de produção primário entre o site primário e cada um dos sites de recuperação de desastre. Visão geral: alta disponibilidade com o Microsoft SQL Server 2012 O cumprimento das metas necessárias de RPO e RTO envolve garantir o tempo de atividade contínuo de aplicativos essenciais e proteger os dados críticos contra os tempos de inatividade planejado e não planejado. O SQL Server fornece um conjunto de recursos que podem ajudá-lo a cumprir essas metas mantendo os custos e a complexidade baixos. Os leitores que já estiverem familiarizados com os recursos AlwaysOn poderão passar diretamente para a abordagem mais detalhada na seção Camadas de proteção do SQL Server AlwaysOn deste documento. SQL Server AlwaysOn O AlwaysOn é uma nova solução de alta disponibilidade e recuperação de desastre integrada, flexível e econômica. Ele pode fornecer redundância de dados e hardware em um ou mais data centers, e melhora o tempo de failover de aplicativo para aumentar a disponibilidade de seus aplicativos críticos. O AlwaysOn fornece flexibilidade na configuração e permite a reutilização dos investimentos em hardware existentes. Uma solução AlwaysOn pode utilizar dois recursos importantes do SQL Server 2012 para configurar a disponibilidade no nível de banco de dados e no nível de instância: Os Grupos de Disponibilidade AlwaysOn, novidade no SQL Server 2012, aumentam consideravelmente os recursos de espelhamento de banco de dados e ajudam a garantir a disponibilidade de bancos de dados de aplicativos, além de permitir a perda de dados zero por meio da movimentação de dados baseada em log para proteção de dados sem discos compartilhados. Os grupos de disponibilidade fornecem um conjunto integrado de opções, incluindo failover automático e manual de um grupo lógico de bancos de dados, suporte para até quatro réplicas secundárias, failover rápido de aplicativo e reparo automático de página. As Instâncias de Cluster de Failover (FCIs) AlwaysOn aprimoram o recurso de clustering de failover do SQL Server e dão suporte ao clustering multissite em sub-redes, permitindo o failover entre data centers de instâncias do SQL Server. Um failover de instância mais rápido e mais previsível é outro benefício fundamental que permite uma recuperação de aplicativo mais rápida. Reduzir significativamente o tempo de inatividade planejado O principal motivo para o tempo de inatividade do aplicativo em qualquer organização é o tempo de inatividade planejado causado pela aplicação de patches no sistema operacional, pela manutenção de hardware e assim por diante. Isso pode representar quase 80% das interrupções em um ambiente de TI. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 5 O SQL Server 2012 ajuda a reduzir significativamente o tempo de inatividade planejado ao reduzir os requisitos de aplicação de patches e permitir mais operações de manutenção online: Windows Server Core. O SQL Server 2012 dá suporte a implantações no Windows Server Core, uma opção de implantação mínima simplificada para Windows Server 2008 e Windows Server 2008 R2. Essa configuração do sistema operacional pode reduzir o tempo de inatividade planejado minimizando os requisitos de aplicação de patches no sistema operacional em até 60%. Operações online. O suporte avançado para operações online, como a reindexação de LOB e a adição de colunas com valores padrão ajuda a reduzir o tempo de inatividade durante as operações de manutenção de banco de dados. Atualização e aplicação de patches sem interrupção. Os recursos AlwaysOn facilitam a distribuição de atualizações e aplicação de patches de instâncias, o que ajuda a reduzir significativamente o tempo de inatividade do aplicativo. SQL Server no Hyper-v. As instâncias do SQL Server hospedadas no ambiente Hyper-v recebem o benefício adicional da Migração ao Vivo, que permite migrar máquinas virtuais entre hosts com tempo de inatividade zero. Os administradores podem executar operações de manutenção no host sem afetar os aplicativos. Eliminar o hardware ocioso e aumentar a relação custo-benefício e o desempenho As soluções de alta disponibilidade típicas envolvem a implantação de servidores caros, redundantes e passivos. Os Grupos de Disponibilidade AlwaysOn permitem utilizar réplicas de banco de dados secundárias em servidores, de outra forma passivos ou ociosos, para cargas de trabalho somente leitura, como consultas de relatórios do SQL Server Reporting Services ou operações de backup. A capacidade de usar simultaneamente as réplicas de banco de dados primária e secundárias aumenta o desempenho de todas as cargas de trabalho devido ao melhor equilíbrio de recursos de seus investimentos em hardware de servidor. Implantação e gerenciamento fáceis Recursos como o Assistente de Configuração, o suporte à interface de linha de comando do Windows PowerShell, painéis, DMVs (exibições de gerenciamento dinâmico), o gerenciamento baseado em políticas e a ajuda de integração do System Center ajudam a simplificar a implantação e o gerenciamento de grupos de disponibilidade. Fazendo a comparação de recursos de RPO e RTO As metas empresariais de RPO (objetivo de ponto de recuperação) e RTO (objetivo de tempo de recuperação) devem ser os principais fatores na seleção de uma tecnologia do SQL Server para sua solução de alta disponibilidade e recuperação de desastre. Esta tabela oferece uma comparação aproximada do tipo de resultados que as diferentes soluções podem obter: Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 6 Potencial perda de dados (RPO) Potencial tempo de recuperação (RTO) Failover automático Secundárias legíveis(1) Grupo de Disponibilidade AlwaysOn - confirmação síncrona Zero Segundos Sim(4) 0-2 Grupo de Disponibilidade AlwaysOn - confirmação assíncrona Segundos Minutos Não 0-4 Instância de cluster de failover AlwaysOn ND(5) Sim ND Espelhamento de banco de dados(2) - Alta segurança (assíncrona + testemunha) Zero Segundos a minutos Segundos Sim ND Espelhamento de banco de dados(2) - Alto desempenho (assíncrono) Segundos(6) Minutos(6) Não ND Envio de logs Minutos(6) Minutos a horas(6) Não Horas(6) Horas a dias(6) Não Não durante uma restauração Não durante uma restauração Alta disponibilidade e recuperação de desastre Solução do SQL Server Backup, cópia, restauração(3) (1) Um Grupo de Disponibilidade AlwaysOn não pode ter mais do que um total de quatro réplicas secundárias, independentemente do tipo. (2) Este recurso será removido em uma versão futura do Microsoft SQL Server. Use Grupos de Disponibilidade AlwaysOn em seu lugar. (3) O recurso de backup, cópia, restauração é apropriado para recuperação de desastre, mas não para alta disponibilidade. (4) O failover automático de um grupo de disponibilidade não tem suporte para ou de uma instância de cluster de failover. (5) A FCI em si não oferece proteção de dados; a perda de dados depende da implementação do sistema de armazenamento. (6) Altamente dependente da carga de trabalho, do volume de dados e dos procedimentos de failover. Camadas de proteção do SQL Server AlwaysOn As soluções SQL Server AlwaysOn ajudam a oferecer tolerância a falhas e recuperação de desastre através de várias camadas lógicas e físicas de componentes de infraestrutura e de aplicativo. Historicamente, tem sido uma prática comum ter uma separação de tarefas e responsabilidades entre os vários públicos e funções envolvidos, de modo que cada um se preocupava predominantemente apenas com uma parte dessas camadas de soluções. Esta seção do documento é organizada para percorrer uma descrição mais profunda de cada uma dessas camadas, além de oferecer a lógica e as diretrizes para suas discussões de design e decisões sobre implementação. Uma solução bem-sucedida do SQL Server AlwaysOn requer o conhecimento e a colaboração entre estas camadas: Nível de infraestrutura. A comunicação de rede intranó e a tolerância a falhas em nível de servidor utiliza recursos do Windows Server Failover Clustering (WSFC) para o monitoramento de integridade e a coordenação de failover. Nível de instância do SQL Server. A Instância de Cluster de Failover (FCI) do SQL Server AlwaysOn é uma instância do SQL Server que está instalada em nós do servidor e que pode fazer failover para eles em um cluster do WSFC. Os nós que hospedam a FCI são anexados ao armazenamento compartilhado simétrico avançado (SAN ou SMB). Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 7 Nível de banco de dados. Um grupo de disponibilidade é um conjunto de bancos de dados de usuário que fazem failover juntos. Um grupo de disponibilidade consiste em uma réplica primária e de uma a quatro réplicas secundárias. Cada réplica é hospedada por uma instância do SQL Server (FCI ou não FCI) em um nó diferente do cluster do WSFC. Conectividade de cliente. Os aplicativos cliente de banco de dados podem conectar-se diretamente a um nome de rede de instância do SQL Server ou a um VNN (nome de rede virtual) associado a um ouvinte de grupo de disponibilidade. O VNN abstrai a topologia do cluster do WSFC e do grupo de disponibilidade, redirecionando logicamente solicitações de conexão à instância do SQL Server e à réplica de banco de dados apropriadas. A topologia lógica de uma solução AlwaysOn representativa é ilustrada neste diagrama: Infraestrutura de disponibilidade Os Grupos de Disponibilidade AlwaysOn e as Instâncias de Cluster de Failover AlwaysOn utilizam o sistema operacional Windows Server e o WSFC como uma tecnologia de plataforma. Mais do que nunca, os administradores de bancos de dados do Microsoft SQL Server bem-sucedidos dependerão de uma sólida compreensão dessas tecnologias. Sistema operacional Windows O SQL Server depende da plataforma Windows para fornecer a infraestrutura e os serviços básicos de rede, armazenamento, segurança, aplicação de patch e monitoramento. As diferentes edições do SQL Server 2012 progressivamente se baseiam na capacidade e nos recursos cada vez maiores de edições semelhantes do sistema operacional Windows Server 2008 R2, incluindo os sistemas operacionais Windows Server 2008 R2 Standard, Windows Server 2008 R2 Enterprise e Windows Server 2008 R2 Datacenter. Para saber mais, consulte: Requisitos de hardware e software para a instalação do SQL Server 2012 (http://msdn.microsoft.com/pt-br/library/ms143506(SQL.110).aspx). Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 8 Opção de instalação do Windows Server Core Como um recurso fundamental de alta disponibilidade, o SQL Server 2012 dá suporte à implantação da opção de instalação Server Core no Windows Server 2008 ou versões posteriores. A opção de instalação Server Core oferece um ambiente mínimo para a execução de funções específicas de servidor com funcionalidade limitada e suporte muito limitado a aplicativos de GUI. Por padrão, somente os serviços necessários e um ambiente de prompt de comando são habilitados. Esse modo de operação reduz a superfície de ataque do sistema operacional e a sobrecarga do sistema, além de poder reduzir significativamente os constantes requisitos de manutenção, serviços e aplicação de patch. Uma consideração fundamental para implantar o SQL Server 2012 no Windows Server Core é que qualquer implantação, configuração, administração e manutenção do SQL Server e do sistema operacional deverá ser feita por meio de um ambiente de scripts, como o Windows PowerShell, ou com o uso de ferramentas de linha de comando ou remotas. Otimizando o SQL Server para a Nuvem Privada Os cenários de alta disponibilidade e recuperação de desastre são cada vez mais importantes no ambiente de Nuvem Privada. Implante o SQL Server em sua Nuvem Privada para ajudar a garantir que seus recursos de computador, rede e armazenamento sejam usados com eficiência, reduzindo a superfície física e as despesas de capital e operacionais. Isso ajuda você a consolidar implantações, dimensionar seus recursos com eficiência e implantar recursos sob demanda sem comprometer o controle. Além do suporte do Windows Server Failover Clustering a sistemas Hyper-v e convidados, o SQL Server também oferece suporte à Migração ao Vivo, que é a capacidade de mover máquinas virtuais entre hosts sem um tempo de inatividade perceptível. A Migração ao Vivo também funciona em conjunto com o clustering convidado. Para saber mais, consulte Computação em Nuvem Privada - otimizando o SQL Server para a Nuvem Privada (http://www.microsoft.com/SqlServerPrivateCloud). Windows Server Failover Clustering O WSFC (Windows Server Failover Clustering) fornece recursos de infraestrutura que dão suporte aos cenários de alta disponibilidade e recuperação de desastre dos aplicativos de servidor hospedados, como o Microsoft SQL Server. Se houver falha em um nó de cluster ou serviço do WSFC, os serviços ou recursos que foram hospedados nesse nó poderão ser transferidos de forma automática ou manual para outro nó disponível em um processo conhecido como failover. Com as soluções AlwaysOn, esse processo se aplica às FCIs e aos grupos de disponibilidade. Os nós do cluster do WSFC funcionam em conjunto para fornecer coletivamente estes tipos de recursos: Metadados distribuídos e notificações. O serviço WSFC e os metadados de aplicativos hospedados são mantidos em cada nó do cluster. Esses metadados incluem a configuração e o status do WSFC, além de configurações de aplicativos hospedados. As alterações nos metadados ou no status em um nó são propagadas automaticamente para os outros nós do cluster. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 9 Gerenciamento de recursos. Os nós individuais do cluster podem fornecer recursos físicos, como DAS (armazenamento diretamente conectado), interfaces de rede e acesso a armazenamento em disco compartilhado. Os aplicativos hospedados, como o SQL Server, registram-se como um recurso de cluster e podem configurar dependências de inicialização e integridade em outros recursos. Monitoramento de integridade. A detecção de integridade de nó primário e entre nós é realizada por meio de uma combinação de comunicações de rede de pulsação e monitoramento de recursos. A integridade geral do cluster é determinada pelos votos de um quorum de nós no cluster. Coordenação de failover. Cada recurso é configurado para ser hospedado em um nó primário, e cada um deles pode ser transferido automática ou manualmente para um ou mais nós secundários. Uma política de failover baseado em integridade controla a transferência automática de propriedade de recurso entre nós. Os nós e os aplicativos hospedados são notificados quando ocorre um failover para que possam reagir da maneira adequada. Para saber mais, consulte Windows Server | Balanceamento de nós e clustering de failover (http://www.microsoft.com/windowsserver2008/en/us/failover-clustering-main.aspx). Observação: agora é extremamente importante que os administradores de banco de dados compreendam os trabalhos internos de gerenciamento de quorum e clusters do WSFC. O monitoramento de integridade AlwaysOn e as etapas de recuperação de falhas estão todos intrinsecamente associados à configuração do WSFC. Configurações de armazenamento do WSFC O Windows Server Failover Clustering baseia-se em cada nó do cluster para gerenciar os dispositivos de armazenamento, os volumes de disco e o sistema de arquivos conectados. O WSFC presume que o subsistema de armazenamento seja extremamente robusto e, portanto, se o dispositivo de armazenamento anexado a um nó estiver indisponível, o nó de cluster estará supostamente apresentando falha. Para operações baseadas em gravação, um volume de disco é logicamente anexado a um único nó de cluster de cada vez usando uma reserva persistente SCSI-3. Dependendo dos recursos e da configuração do subsistema de armazenamento, se um nó falhar, a propriedade lógica do volume de disco poderá ser transferida para outro nó no cluster. As soluções SQL Server AlwaysOn utilizam e são restritas a determinadas combinações de configuração de armazenamento do WSFC, que incluem: Conectado diretamente versus remoto. Os dispositivos de armazenamento são conectados fisicamente de forma direta ao servidor, ou são apresentados por um dispositivo remoto através de uma rede ou um adaptador de barramento de host (HBA). As tecnologias de armazenamento remoto incluem soluções baseadas em Rede de Área de Armazenamento (SAN), como iSCSI e Fibre Channel, bem como soluções baseadas em compartilhamento de arquivos de Bloco de Mensagens de Servidor (SMB). Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 10 Simétrico versus assimétrico. Os dispositivos de armazenamento serão considerados simétricos se for apresentada exatamente a mesma configuração de volume de disco lógico e caminhos de arquivo para cada nó do cluster. A implementação e a capacidade físicas dos volumes de disco subjacentes podem variar. Dedicado versus compartilhado. O armazenamento dedicado é reservado para uso e atribuído a um único nó do cluster. O armazenamento compartilhado é acessível a vários nós do cluster. O controle e a propriedade de dispositivos de armazenamento compartilhado compatíveis podem ser transferidos de um nó para outro por meio de protocolos SCSI-3. O WSFC dá suporte à hospedagem de vários nós simultâneos de volumes compartilhados de cluster para fins de compartilhamento de arquivos. Entretanto, o SQL Server não dá suporte ao acesso de vários nós simultâneos a um volume compartilhado. Observação: as FCIs do SQL Server ainda exigem que o armazenamento compartilhado simétrico esteja acessível a todos os possíveis proprietários de nós da instância. No entanto, com a introdução de Grupos de Disponibilidade AlwaysOn, agora você pode implantar instâncias não FCI diferentes do SQL Server em um cluster do WSFC, cada um com seu próprio armazenamento exclusivo, dedicado, local ou remoto. Failover e detecção de integridade de recursos do WSFC Cada recurso em um nó de cluster do WSFC pode relatar seu status e integridade, periodicamente ou sob demanda. Uma variedade de circunstâncias pode indicar uma falha de recurso de cluster, incluindo: queda de energia, erros de disco ou de memória, erros de comunicação de rede, erros de configuração ou serviços sem resposta. Você pode tornar recursos de cluster do WSFC, como redes, armazenamento ou serviços, dependentes uns dos outros. A integridade cumulativa de um recurso é determinada pelo rollup sucessivo de sua integridade com a integridade de cada uma de suas dependências de recursos. Para Grupos de Disponibilidade AlwaysOn, o grupo de disponibilidade e o ouvinte de grupo de disponibilidade são registrados como recursos de cluster do WSFC. Para Instâncias de Cluster de Failover AlwaysOn, os serviços do SQL Server e do SQL Server Agent são registrados como recursos de cluster do WSFC, e ambos se tornam dependentes do recurso de nome de rede virtual da instância. Se um recurso de cluster do WSFC tiver um número definido de erros ou de falhas durante um período, a política de failover fará com que o serviço de cluster execute uma das seguinte ações: Reiniciar o recurso no nó atual. Definir o recurso como offline. Iniciar um failover automático do recurso e de suas dependências para outro nó. Observação: a detecção de integridade de recurso de cluster do WSFC não tem nenhum impacto direto na integridade do nó individual ou na integridade geral do cluster. Assistente de validação de cluster do WSFC O assistente de validação de cluster é um recurso que está integrado ao clustering de failover no Windows Server 2008 e no Windows Server 2008 R2. É uma ferramenta-chave para ajudar um administrador de banco de dados a assegurar que haja um ambiente de WSFC limpo, íntegro e estável antes da implantação de uma solução SQL Server AlwaysOn. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 11 Com o assistente de validação de cluster, você pode executar um conjunto de testes concentrados em uma coleção de servidores que você pretende usar como nós em um cluster ou em um cluster existente. Esse processo testa o hardware e o software subjacentes de forma direta, e individual, para obter uma avaliação precisa de como seria o suporte a um cluster do WSFC em uma determinada configuração. Esse processo de validação consiste em uma série de testes e de coleta de dados em cada nó nestas categorias: Estoque. Informações sobre versões de BIOS, níveis de ambiente, adaptadores de barramento de host, RAM, versões de sistema operacional, dispositivos, serviços, drivers etc. Rede. Informações sobre a ordem de associação de NICs, comunicações de rede, configuração IP e configuração de firewall. Valida comunicações entre nós em todos as NICs. Armazenamento. Informações sobre discos, capacidade de unidade, latência de acesso, sistemas de arquivos etc. Valida comandos de SCSI, funcionalidade de failover do disco e a configuração de armazenamento simétrico ou assimétrico. Configuração do sistema. Valida a configuração do Active Directory, que os drivers são assinados, configurações de despejo de memória, recursos e serviços necessários do sistema operacional, arquitetura de processador compatível e níveis de service pack e de Atualização de Software do Windows. Os resultados desses testes de validação fornecem as informações necessárias para você ajustar uma configuração de cluster, controlar a configuração e identificar potenciais problemas de configuração de cluster antes que eles causem tempo de inatividade. Você pode salvar um relatório dos resultados dos testes em um documento HTML para referência posterior. É necessário executar esses testes antes e depois de fazer qualquer alteração na configuração do WSFC, antes de instalar o SQL Server e como parte de qualquer processo de recuperação de desastre. Um relatório de validação de cluster é exigido pelos Serviços de Atendimento ao Cliente da Microsoft (CSS) como uma condição para que a Microsoft ofereça suporte a uma determinada configuração de cluster do WSFC. Para saber mais, consulte Guia passo a passo de cluster de failover: validando o hardware para um cluster de failover (http://technet.microsoft.com/pt-br/library/cc732035(WS.10).aspx). Observação: se a sua configuração de cluster tiver armazenamento assimétrico, como é o caso de soluções de armazenamento de clustering geográfico baseadas em hardware, ou pode ser o caso de Grupos de Disponibilidade AlwaysOn, você talvez precise aplicar alguns hotfixes para impedir a falha do assistente de validação de cluster nas etapas de validação de armazenamento. Para saber mais, consulte Pré-requisitos, restrições e recomendações para Grupos de Disponibilidade AlwaysOn (http://msdn.microsoft.com/pt-br/library/ff878487(SQL.110).aspx#SystemReqsForAOAG). Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 12 Modos de quorum do WSFC e configuração de votação O WSFC usa uma abordagem baseada em quorum para monitorar a integridade geral do cluster e maximizar a tolerância a falhas em nível de nó. Uma compreensão básica dos modos de quorum do WSFC e da configuração de votação de nó é muito importantes para o design, a operação e a solução de problemas de sua solução de alta disponibilidade e recuperação de desastre AlwaysOn. Detecção de integridade de cluster por quorum Cada nó em um cluster do WSFC participa da comunicação de pulsação periódica para compartilhar o status de integridade do nó com os outros nós. Nós sem resposta são considerados como em estado com falha. Um conjunto de nós de quorum é uma maioria dos nós de votação e testemunhas no cluster WSFC. A integridade e o status gerais de um cluster do WSFC são determinados por um voto de quorum periódico. A presença de um quorum significa que o cluster está íntegro o suficiente para fornecer tolerância a falhas em nível de nó. A ausência de um quorum indica que o cluster não está íntegro. A integridade de cluster do WSFC em geral deve ser mantida para assegurar que nós secundários íntegros estejam disponíveis para o failover de nós primários. Se o voto de quorum falhar, todo o cluster do WSFC será definido como offline por precaução. Isso também fará com que todas as instâncias do SQL Server registradas com o cluster sejam interrompidas. Observação: se um cluster do WSFC for definido como offline devido a uma falha de quorum, a intervenção manual será necessária para colocá-lo online novamente. Para saber mais, consulte a seção Recuperação de desastre do WSFC por meio de quorum forçado, mais adiante neste documento. Modos de quorum Um modo de quorum é configurado no nível do cluster do WSFC para especificar a metodologia usada para votação de quorum. O utilitário Gerenciador de Cluster de Failover recomenda um modo de quorum baseado no número de nós do cluster. Um dos seguintes modos de quorum determina o que constitui um quorum de votos: Maioria de Nós. Mais da metade dos nós votantes no cluster precisam votar afirmativamente para o cluster ser íntegro. Maioria de Nós e Compartilhamentos de Arquivos. Semelhante ao modo de quorum Maioria de Nós, exceto pelo fato de um compartilhamento de arquivo remoto também ser configurado como uma testemunha de votação e a conectividade de qualquer nó com esse compartilhamento também ser contada como um voto afirmativo. Mais da metade dos votos possíveis deve ser afirmativa para que o cluster esteja íntegro. Como uma prática recomendada, o compartilhamento de arquivo de testemunha não deve residir em nenhum nó no cluster e deve estar visível para todos os nós no cluster. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 13 Maioria de nós e discos. Semelhante ao modo de quorum Maioria de Nós, exceto pelo fato de um recurso de cluster de disco compartilhado também ser designado como uma testemunha de votação e a conectividade de qualquer nó com esse disco compartilhado também ser contada como um voto afirmativo. Mais da metade dos votos possíveis deve ser afirmativa para que o cluster esteja íntegro. Somente Disco. Um recurso de cluster de disco compartilhado é designado como uma testemunha, e a conectividade por qualquer nó com esse disco compartilhado é contada como um voto afirmativo. Para saber mais, consulte Guia passo a passo de cluster de failover: configurando o quorum em um cluster de failover (http://technet.microsoft.com/pt-br/library/cc770620(WS.10).aspx). Observação: a menos que cada nó do cluster esteja configurado para usar o mesmo disco testemunha de quorum de armazenamento compartilhado, você deverá usar o modo de quorum Maioria de Nós se tiver um número ímpar de nós votantes, ou o modo de quorum Maioria dos Nós e Compartilhamentos de Arquivos quando houver um número par de nós votantes. Nós votantes e não votantes Por padrão, cada nó do cluster do WSFC é incluído como membro do quorum de cluster; cada nó, testemunha de compartilhamento de arquivos e testemunha de disco tem um único voto na determinação da integridade de cluster geral. A discussão de quorum até este ponto do documento qualificou cuidadosamente o conjunto de nós de cluster do WSFC que votam na integridade do cluster como nós votantes. Em algumas circunstâncias, talvez você não queira que cada nó tenha um voto. Cada nó em um cluster do WSFC tentará continuamente estabelecer um quorum. Nenhum nó individual no cluster pode determinar definitivamente se o cluster como um todo é íntegro ou não íntegro. A qualquer momento, da perspectiva de cada nó, alguns dos outros nós podem aparecer offline ou talvez pareça que estão em processo de failover ou não respondentes devido a uma falha de comunicação de rede. Uma função-chave do voto de quorum é determinar se o estado aparente de cada nó do cluster do WSFC é de fato o estado real desses nós. Para todos os modelos de quorum, exceto Somente Disco, a eficácia de um voto de quorum depende de comunicações confiáveis entre todos os nós votantes no cluster. Você deverá confiar no voto de quorum quando todos os nós estiverem na mesma sub-rede física. No entanto, se um nó em outra sub-rede não estiver respondendo em um voto de quorum, mas estiver realmente online e aparentemente íntegro, a causa mais provável será uma falha de comunicação de rede entre sub-redes. Dependendo da topologia de cluster, do modo de quorum e da configuração da política de failover, essa falha de comunicação de rede pode criar efetivamente mais de um conjunto (ou subconjunto) de nós votantes. Se mais de um subconjunto de nós votantes for capaz de estabelecer um quorum próprio, isso será conhecido como cenário split-brain (partição de rede). Nesse cenário, os nós de quorums separados podem se comportar de modo diferente e conflitante. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 14 Observação: o cenário split-brain só será possível se um administrador do sistema executar manualmente uma operação de quorum forçado ou, em circunstâncias muito raras, um failover manual forçado, subdividindo explicitamente o conjunto de nós do quorum. Para saber mais, consulte a seção Recuperação de desastre do WSFC por meio de quorum forçado, mais adiante neste documento. Para simplificar sua configuração de quorum e aumentar o tempo de atividade, talvez você queira ajustar a configuração NodeWeight (um valor 0 ou 1) de cada nó, para que o voto do nó não seja computado no quorum. Ajustes recomendados na votação de quorum Para determinar a configuração de votação de quorum recomendada para o cluster, aplique estas diretrizes, em ordem sequencial: 1. Nenhum voto por padrão. Suponha que cada nó não deva votar sem uma justificativa explícita. 2. Inclua todos os nós primários. Cada nó que hospeda uma réplica primária do Grupo de Disponibilidade AlwaysOn ou é o proprietário preferencial da Instância de Cluster de Failover AlwaysOn deve ter um voto. 3. Inclua possíveis proprietários de failover automático. Cada nó que pode hospedar uma réplica primária ou FCI, em virtude de um failover automático, deve ter um vote. 4. Exclua nós de site secundários. Em geral, não dê votos a nós que residem em um site de recuperação de desastre secundário. Você não deseja que os nós no site secundário colaborem para uma decisão de colocar o cluster offline quando não houver nada errado com o site primário. 5. Número ímpar de votos. Se necessário, adicione uma testemunha compartilhamento de arquivos, um nó testemunha (com ou sem uma instância do SQL Server) ou um disco testemunha ao cluster e ajuste o modo de quorum para prevenir possíveis empates no voto de quorum. 6. Reavalie atribuições de voto pós-failover. Você não deseja o failover em uma configuração de cluster sem suporte para um quorum íntegro. Para saber mais sobre como ajustar votos de nós, consulte Definir configurações de NodeWeight de quorum de cluster (http://msdn.microsoft.com/pt-br/library/hh270281(SQL.110).aspx). Você não pode ajustar o voto de uma testemunha de compartilhamento de arquivos. Em vez disso, você deve selecionar um modo diferente de quorum para incluir ou excluir o voto. Observação: o SQL Server expõe várias DMVs (exibições de gerenciamento dinâmico) do sistema que podem ajudar você a administrar definições relacionadas à configuração de cluster do WSFC e à votação de quorum do nó. Para saber mais, consulte Monitorar grupos de disponibilidade (http://msdn.microsoft.com/ptbr/library/ff878305(SQL.110).aspx). Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 15 Recuperação de desastre do WSFC por meio de quorum forçado A falha de quorum normalmente é causada por um desastre sistêmico ou uma falha de comunicação persistente envolvendo vários nós do cluster do WSFC. Lembre-se de que a falha de quorum deixa offline todos os serviços clusterizados, instâncias do SQL Server e Grupos de Disponibilidade no cluster do WSFC, pois o cluster não pode garantir a tolerância a falhas no nível de nó. Uma falha de quorum significa que os nós votantes íntegros no cluster do WSFC não atendem mais ao modelo de quorum. Alguns nós podem ter falhado totalmente e outros podem ter apenas desligado o serviço WSFC e, nesse caso, são íntegros, exceto pela perda da capacidade de comunicação com um quorum. Para colocar o cluster do WSFC online, corrija a causa raiz da falha de quorum em pelo menos um nó da configuração existente. Em um cenário de desastre, você pode precisar reconfigurar ou identificar o hardware alternativo a ser usado. Você talvez ainda queira reconfigurar os nós restantes no cluster do WSFC para também refletir a topologia de cluster de sobrevivência. Você pode usar o procedimento quorum forçado em um nó de cluster do WSFC para substituir o controle de segurança que colocou o cluster offline. Isso indica efetivamente ao cluster que deve suspender as verificações de votação de quorum e permite que você coloque os recursos de cluster WSFC e SQL Server novamente online, em quaisquer nós no cluster. Esse tipo de processo de recuperação de desastre deve incluir as seguintes etapas: 1) Determine o escopo da falha. Identifique quais grupos de disponibilidade ou instâncias do SQL Server estão sem resposta e quais nós de cluster estão online e disponíveis para uso pós-desastre, e examine os logs de eventos do Windows e os logs do sistema SQL Server. Quando for prático, você deve preservar dados forenses e os logs do sistema para análise futura. 2) Inicie o cluster do WSFC usando o quorum forçado em um único nó. Em um nó íntegro, force manualmente o cluster a ficar online usando o procedimento de quorum forçado. Para minimizar a potencial perda de dados, selecione um nó recém-hospedado em uma réplica primária de grupo de disponibilidade. Para saber mais, consulte Forçar um cluster do WSFC a iniciar sem um quorum (http://msdn.microsoft.com/pt-br/library/hh270275(v=SQL.110).aspx). Observação: se você usar a configuração de quorum forçado, as verificações de quorum serão bloqueadas em todo o cluster, até que o cluster do WSFC alcance uma maioria de votos e passe automaticamente para um modo de operação de quorum normal. 3) Inicie normalmente o serviço WSFC em cada nó íntegro, um de cada vez. Você não precisará especificar a opção de quorum forçado quando iniciar o serviço de cluster nos outros nós. Como o serviço WSFC em cada nó volta a ficar online, ele negocia com os outros nós íntegros para sincronizar o novo estado de configuração do cluster. Lembre-se de fazer isso em um nó de cada vez, para evitar situações de potencial competição na resolução do último estado conhecido do cluster. Observação: verifique se cada nó iniciado pode se comunicar com os outros nós colocados online recentemente, ou você correrá o risco de criar mais de um conjunto de nós de quorum; esse é um cenário split-brain. Se seus resultados na etapa 1 forem precisos, isso não deverá ocorrer. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 16 4) Aplique o novo modo de quorum e a configuração de voto de nó. Se você reiniciou com êxito todos os nós do cluster usando o procedimento de quorum forçado, e corrigiu a causa raiz da falha de quorum, não precisará fazer alterações no modo de quorum original e na configuração de voto de nó. Caso contrário, você deve avaliar o nó de cluster recém-recuperado e a topologia de réplica de disponibilidade, e alterar o modo de quorum e as atribuições de voto para cada nó conforme apropriado. Defina o serviço de cluster do WSFC em nós offline não recuperados ou defina os votos de nós como zero. Observação: neste momento, os nós e as instâncias do SQL Server no cluster podem parecer restaurados à operação normal. Entretanto, talvez ainda não exista um quorum íntegro. Usando o Gerenciador de Cluster de Failover, o Painel AlwaysOn no SQL Server Management Studio ou as DMVs apropriadas, verifique se um quorum íntegro foi restaurado. 5) Recupere réplicas de banco de dados de grupo de disponibilidade, conforme necessário. Alguns bancos de dados podem ser recuperados e voltar a ficar online por conta própria como parte do processo normal de inicialização do SQL Server. A recuperação de outros bancos de dados pode exigir etapas manuais adicionais. Você pode minimizar a potencial perda de dados e o tempo de recuperação para as réplicas do grupo de disponibilidade colocando-os novamente online nesta sequência, se possível: réplica primária, réplicas secundárias síncronas, réplicas secundárias assíncronas. 6) Repare ou substitua componentes com falha e revalide o cluster. Agora que você se recuperou do desastre inicial e da falha de quorum, deve reparar ou substituir os nós com falhas e ajustar as configurações do WSFC e do AlwaysOn relacionadas adequadamente. Isso pode incluir remover réplicas do grupo de disponibilidade, remover nós do cluster ou nivelar e reinstalar o software em um nó. Observação: você deve reparar ou remover todas as réplicas de disponibilidade com falha. O SQL Server 2012 não truncará o log de transações após o último ponto conhecido da réplica de disponibilidade mais afastada. Se uma réplica com falha não for reparada ou removida do grupo de disponibilidade, os logs de transações aumentarão e você correrá o risco de ficar sem espaço para log nas outras réplicas. 7) Repita a etapa 4 conforme necessário. A meta é restabelecer o nível apropriado de tolerância a falhas e alta disponibilidade para operações íntegras. 8) Conduza a análise de RPO/RTO. Você deve analisar logs do sistema SQL Server, carimbos de data/hora de banco de dados e logs de eventos do Windows para determinar a causa-raiz da falha e documentar as experiências reais de Ponto de Recuperação e de Tempo de Recuperação. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 17 Proteção em nível de instância do SQL Server A próxima camada de proteção em uma solução AlwaysOn é a própria plataforma de dados; esses são os recursos oferecidos pelo Microsoft SQL Server 2012 e por sua integração com componentes de infraestrutura do Windows Server. Aperfeiçoamentos de disponibilidade – instâncias do SQL Server Estes são os novos recursos em nível de instância do SQL Server 2012 que aprimoram a disponibilidade para ambas as Instâncias de Cluster de Failover AlwaysOn, bem como para instâncias autônomas que hospedam os Grupos de Disponibilidade AlwaysOn. Estes aperfeiçoamentos representam melhorias em termos de gerenciamento e solução de problemas de cenários de failover: Política de failover flexível. A saída do novo procedimento armazenado do sistema usado para a detecção robusta de falhas, sp_server_diagnostics, usa a propriedade FailureConditionLevel para expressar a severidade de uma falha que afeta a instância do SQL Server. Uma política de failover do WSFC controla como esse valor afeta a instância do SQL Server; variando da relativa tolerância a erros até a sensibilidade a qualquer erro de componentes internos do SQL Server. Você pode configurar o failover para ser disparado por qualquer um de uma série de níveis de erros, incluindo: servidor inativo, servidor sem resposta, erro crítico, erro moderado e qualquer erro qualificado. A propriedade FailureConditionLevel pode ser usada para FCI ou políticas de failover de grupo de disponibilidade. Antes do SQL Server 2012, não havia granularidade das condições de erro para controlar o failover; qualquer falha em nível de serviço causava o failover. Para saber mais, consulte Política de failover para instâncias de cluster de failover (http://msdn.microsoft.com/pt-br/library/ff878664(SQL.110).aspx). Instrumentação e logs avançados. Há várias exibições de configuração do sistema, DMVs, contadores de desempenho e uma sessão de integridade de eventos estendidos específicos ao AlwaysOn que capturam e despejam as informações necessárias para solucionar problemas, monitorar e ajustar sua implantação AlwaysOn. Várias delas são expostas por meio de novas facetas e políticas do Gerenciamento de Políticas do SQL Server. Para saber mais, consulte Funções e exibições de gerenciamento dinâmico de Grupos de Disponibilidade AlwaysOn (http://msdn.microsoft.com/pt-br/library/ff877943(SQL.110).aspx), e sys.dm_os_cluster_nodes (http://msdn.microsoft.com/pt-br/library/ms187341(SQL.110).aspx). Suporte ao compartilhamento de arquivos SMB. Você pode colocar arquivos de banco de dados em um compartilhamento de arquivos remoto do Windows Server 2008, ou versões posteriores, para instâncias de cluster de failover e autônomas, anulando a necessidade de uma letra de unidade separada por FCI. Essa é uma boa opção para a consolidação do armazenamento ou para hospedar o armazenamento de arquivos de banco de dados em um servidor físico para um sistema operacional convidado de máquina virtual. Com a configuração certa, o desempenho de E/S pode ser muito próximo do desempenho de um armazenamento diretamente conectado. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 18 Para saber mais, consulte Bancos de dados SQL em compartilhamentos de arquivos - é hora de reconsiderar o cenário (http://blogs.msdn.com/b/sqlserverstorageengine/archive/2011/10/18/ sqldatabases-on-file-shares-it-s-time-to-reconsider-the-scenario.aspx). Observação: em um cluster do WSFC, você não pode adicionar uma dependência de recursos de compartilhamento de arquivos SMB ao grupo de recursos do SQL Server; você deve tomar medidas separadas para garantir a disponibilidade do compartilhamento de arquivos. Se o compartilhamento de arquivos ficar indisponível, o SQL Server lançará uma exceção de E/S e ficará offline. Interoperabilidade do WSFC com o DNS. O VNN (nome de rede virtual) para uma FCI ou um ouvinte de grupo de disponibilidade só será registrado no DNS durante a criação do VNN ou durante alterações de configuração. Todos os endereços IP virtuais, independentemente do estado online ou offline, são registrados no DNS com o mesmo nome de rede virtual. As chamadas de cliente para resolver o nome de rede virtual no DNS retornam todos os endereços IP registrados em uma sequência round-robin variável. Instâncias de Cluster de Failover AlwaysOn O objetivo principal de uma FCI (Instância de Cluster de Failover) do SQL Server AlwaysOn é aprimorar a disponibilidade de uma instância do SQL Server hospedada em servidor local e do hardware de armazenamento dentro de um único data center. Uma FCI é única instância lógica do SQL Server instalada em nós de um cluster do WSFC (Windows Server Failover Clustering), mas que fica ativa em um nó de cada vez. Os aplicativos cliente se conectam a um nome de rede virtual e a um endereço IP virtual que pertencem ao nó de cluster ativo. Cada nó instalado tem uma configuração e um conjunto de binários do SQL Server idênticos. O serviço de cluster do WSFC também replica as alterações relevantes das entradas da instância ativa no Registro do Windows para cada nó instalado. Cada nó em que a FCI está instalada é designado como um possível proprietário da instância e de seus recursos, dentro de uma sequência preferencial de failover. Os arquivos de banco de dados são armazenados em volumes de armazenamento simétricos compartilhados, são registrados como um recurso no cluster do WSFC e pertencem ao nó que atualmente hospeda a FCI. Para saber mais, consulte Instâncias de Cluster de Failover AlwaysOn (http://msdn.microsoft.com/ptbr/library/ms189134(SQL.110).aspx). Processo de failover da FCI Quando um recurso de cluster dependente falha, uma Instância de Cluster de Failover AlwaysOn interage com o serviço de cluster do WSFC usando este processo de alto nível para fazer um failover: 1) Uma reinicialização é indicada. Uma verificação periódica da configuração de Políticas de Failover do WSFC ou do SQL Server indica um estado de falha. Por padrão, é feita uma tentativa de reiniciar o serviço antes que seja iniciado um failover para outro nó. Um tempo limite na tentativa de reinicialização indica uma falha de recurso. 2) Um failover é indicado. Uma verificação de Política de Failover indica a necessidade de um failover de nó. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 19 3) O serviço do SQL Server é interrompido. Se estiver em execução, será feita uma tentativa de desligamento ordenado do serviço SQL Server. 4) O recurso de cluster do WSFC é transferido. A propriedade do grupo de recursos de cluster do SQL Server e seus recursos de armazenamento compartilhados e em rede dependentes são transferidos para o próximo proprietário de nó preferencial da FCI. 5) O SQL Server é iniciado no novo nó. A instância do SQL Server examina seus procedimentos comuns de inicialização. Se ela não voltar a ficar online dentro de um período de tempo limite pendente, o serviço de cluster colocará o recurso nesse novo nó em um estado de falha. 6) Os bancos de dados de usuários são recuperados no novo nó. Cada banco de dados de usuário é colocado no modo de recuperação enquanto as operações de restauração do log de transações são aplicadas e as transações não confirmadas são revertidas. Aperfeiçoamentos de FCI As versões anteriores do SQL Server ofereciam uma opção de instalação de FCI; entretanto, vários aperfeiçoamentos de recursos no SQL Server 2012 melhoram a robustez e a facilidade de manutenção da disponibilidade: Clustering de várias sub-redes O SQL Server 2012 dá suporte aos nós de cluster do WSFC que residem em mais de uma sub-rede. Uma determinada instância do SQL Server que reside em um nó de cluster do WSFC poderá ser iniciada se qualquer interface de rede estiver disponível; isso é conhecido como uma dependência de recurso de cluster ‘OR’. As versões anteriores do SQL Server exigiam que todas as interfaces de rede estivessem funcionais para iniciar ou fazer failover do serviço do SQL Server, e que todas estivessem na mesma sub-rede ou VLAN. Observação: a replicação em nível de armazenamento entre nós de cluster não é implicitamente habilitada com o clustering de várias redes. Sua solução FCI de várias sub-redes deve usar uma solução baseada em SAN de terceiros para replicar dados e coordenar o failover de armazenamento entre nós de cluster. Para saber mais, consulte SQL Server 2012 AlwaysOn: Instância de Cluster de Failover Multissite (http://sqlcat.com/sqlcat/b/whitepapers/archive/2011/12/22/sql-server-2012-alwayson_3a00_multisite-failover-cluster-instance.aspx). Detecção robusta de falhas. O serviço de cluster do WSFC mantém uma conexão administrativa dedicada com cada FCI do SQL Server 2012 no nó. Nessa conexão, uma chamada periódica a um procedimento armazenado especial do sistema, sp_server_diagnostics, retorna uma matriz sofisticada de informações de diagnóstico de integridade do sistema. Antes do SQL Server 2012, o mecanismo primário de detecção de integridade para uma FCI era implementado como um processo de sondagem unidirecional simples. Nesse processo, o serviço de cluster do WSFC criava periodicamente uma nova conexão de cliente SQL com a instância, consultava o nome do servidor e, em seguida, desconectava. Uma falha ao conectar, ou um tempo limite de consulta, por qualquer motivo, disparava um failover com muito poucas informações de diagnóstico disponíveis. Para saber mais, consulte sql_server_diagnostics (http://msdn.microsoft.com/pt-br/ library/ff878233(SQL.110).aspx). Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 20 Agora há um suporte mais amplo para cenários de armazenamento de FCI: Melhor suporte de ponto de montagem. A instalação do SQL Server agora reconhece configurações do ponto de montagem de disco de cluster. Os discos de cluster especificados e todos os discos montados nele são automaticamente adicionados à dependência de recurso do SQL Server durante a instalação. tempdb no armazenamento local. As FCIs agora dão suporte ao posicionamento do tempdb em armazenamento não compartilhado local, como uma unidade de estado sólido local, potencialmente descarregando uma quantidade significativa de E/S de uma SAN compartilhada. Antes do SQL Server 2012, as FCIs exigiam que o tempdb estivesse localizado em um volume de armazenamento compartilhado simétrico que fazia failover com outros bancos de dados do sistema. Observação: a localização do tempdb é armazenada no banco de dados master, que se move entre nós durante o failover. Ele deve estar em um caminho de arquivo simétrico válido (unidade, pastas e permissões) em todos os possíveis proprietários de nós, senão o serviço SQL Server não será iniciado em alguns nós. Disponibilidade do banco de dados Os recursos de alta disponibilidade oferecidos pelos componentes de infraestrutura e em nível de instância do SQL Server trabalham em conjunto para proteger implicitamente os bancos de dados hospedados. Uma solução AlwaysOn oferece um conjunto adicional de opções para a proteção explícita de dados de bancos de dados e aplicativos da camada de dados. Grupos de Disponibilidade AlwaysOn Um grupo de disponibilidade é um conjunto de bancos de dados de usuários que fazem failover juntos de uma instância do SQL Server para outra no mesmo cluster do WSFC. Os aplicativos cliente podem se conectar aos bancos de dados do grupo de disponibilidade por meio de um nome de rede virtual do WSFC, conhecido como um ouvinte de grupo de disponibilidade, que abstrai as instâncias subjacentes do SQL Server. Os Grupos de Disponibilidade AlwaysOn dependem do Windows Server Failover Clustering para monitoramento de integridade, coordenação de failover e conectividade de servidor. Você deve habilitar o suporte a AlwaysOn em uma instância do SQL Server que reside em um nó de cluster do WSFC. Porém, essa instância não precisa ser uma FCI e não requer o uso de armazenamento compartilhado simétrico. Para saber mais, consulte Visão geral de Grupos de Disponibilidade AlwaysOn (http://msdn.microsoft.com/pt-br/library/ff877884(SQL.110).aspx). Réplicas e funções de disponibilidade Cada instância do SQL Server no grupo de disponibilidade hospeda uma réplica de disponibilidade que contém uma cópia dos bancos de dados de usuários no grupo de disponibilidade. Uma instância do SQL Server pode hospedar apenas uma réplica de disponibilidade de um determinado grupo de disponibilidade, mas vários grupos de disponibilidade podem residir na mesma instância. A instância do SQL Server deve ter volumes de armazenamento (não compartilhados) dedicados. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 21 Uma das réplicas de disponibilidade funciona como réplica primária. Ela é designada como a cópia mestre dos bancos de dados do grupo de disponibilidade e habilitada para operações de leitura/gravação. Um grupo de disponibilidade pode conter de uma a quatro réplicas de disponibilidade somente leitura adicionais, e cada uma funciona separadamente como uma réplica secundária. Sincronização de réplicas de disponibilidade O conteúdo de cada banco de dados em um grupo de disponibilidade é sincronizado da réplica primária para cada uma das réplicas secundárias por meio de um mecanismo de movimentação de dados baseada em log do SQL Server. Por esse motivo, todos os bancos de dados no grupo de disponibilidade devem ser definidos para o modelo de recuperação completa. As réplicas secundárias são inicializadas com um backup e restauração completos dos bancos de dados e logs de transações da réplica primária. À medida que novas transações são confirmadas na réplica primária, a parte correspondente do log de transações é armazenada em cache, enfileirada e, em seguida, enviada pela rede a um ponto de extremidade de espelhamento de banco de dados em cada um dos nós da réplica secundária. Dessa forma, as novas entradas no log de transações da réplica primária são acrescentadas nos logs de transações de cada réplica secundária. Cada réplica secundária comunica periodicamente um LSN (número de sequência de log) à réplica primária para indicar uma marca-d’água de quanto de seu log de transações foi protegido e liberado para o disco remoto. Observação: cada réplica de disponibilidade tem seu próprio conjunto de threads de restauração de log de transações independentes que não fazem parte do processo de sincronização da réplica de disponibilidade. Você pode perceber atrasos no processo de restauração de log nas réplicas secundárias, como latência de dados. Além de ter uma função primária ou secundária, cada réplica de disponibilidade também tem um modo de disponibilidade, que controla a coordenação da proteção dos logs de transações durante uma instrução COMMIT TRAN: Modo de confirmação síncrona. A réplica primária só confirma uma determinada transação depois que todas as réplicas secundárias de confirmação síncrona reconhecem que terminaram de proteger seus respectivos logs de transações após o LSN da transação. Um grupo de disponibilidade pode ter até 2 réplicas secundárias de confirmação síncrona. O modo de confirmação síncrona apresenta a latência de transação nos bancos de dados da réplica primária, mas garante que não haja perda de dados nas réplicas secundárias para transações confirmadas. Modo de confirmação assíncrona. A réplica primária confirma as transações depois de proteger o log de transações local, mas não aguarda pela confirmação de que uma réplica secundária de confirmação assíncrona protegeu seu log de transações. Um grupo de disponibilidade pode ter até 4 réplicas secundárias de confirmação assíncrona, mas não mais do que um total de 4 réplicas secundárias de qualquer tipo. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 22 O modo de confirmação assíncrona minimiza a latência de transações nos bancos de dados da réplica primária, mas permite que os logs de transações de réplicas secundárias atrasem, tornando possível alguma perda de dados. Para saber mais, consulte Modos de disponibilidade (http://msdn.microsoft.com/pt-br/library/ ff877931(SQL.110).aspx). A integridade geral do fluxo de dados entre as réplicas de disponibilidade é indicada pelo estado de sincronização de cada réplica. Você provavelmente experimentará perda de dados se fizer failover para uma réplica secundária com um estado de sincronização diferente de ‘Sincronizado’ ou ‘Sincronizando’. O fluxo de sincronização de cada réplica secundária tem uma propriedade tempo limite de sessão. Quando uma réplica secundária configurada para um modo de disponibilidade de confirmação síncrona falha com um tempo limite de sessão, ela é marcada internamente como assíncrona de forma temporária. Isso é feito para que a falha da réplica secundária não afete a proteção do log de transações na réplica primária. Depois que a réplica secundária estiver íntegra e atualizada com a réplica primária, ela será automaticamente revertida para operações normais de modo de confirmação síncrona. Failover de grupo de disponibilidade O grupo de disponibilidade e um nome de rede virtual correspondente são registrados como recursos no cluster do WSFC. Um grupo de disponibilidade faz failover no nível de uma réplica de disponibilidade, com base na política de integridade e failover da réplica primária. Uma política de failover de grupo de disponibilidade usa a propriedade FailureConditionLevel para indicar o nível de tolerância de severidade para uma falha que afeta o grupo de disponibilidade, em conjunto com o procedimento armazenado do sistema sp_server_diagnostics. Esse mesmo mecanismo é usado para políticas de failover de FCI. No caso de um failover, em vez de transferir a propriedade de recursos físicos compartilhados para outro nó, o WSFC é utilizado para reconfigurar uma réplica secundária em outra instância do SQL Server para assumir a função de réplica primária. O recurso de nome de rede virtual do grupo de disponibilidade é transferido para essa instância. Todas as conexões de cliente com as réplicas de disponibilidade envolvidas são redefinidas. Com base na integridade, no estado de sincronização e no modo de disponibilidade atuais das réplicas, cada réplica tem um estado composto de prontidão de failover, que indica o potencial de perda de dados. Essas informações de integridade da réplica podem ser exibidas no Painel AlwaysOn ou na exibição do sistema sys.dm_hadr_availability_replica_states. Cada réplica de disponibilidade também tem um modo de failover configurado, que controla o comportamento da réplica quando o failover é indicado. Failover automático (sem perda de dados). Permite um failover mais rápido de qualquer configuração AlwaysOn, pois o log de transações da réplica secundária já está protegido e sincronizado. As transações abertas na réplica primária são revertidas, e a função de réplica primária é transferida para uma réplica secundária sem nenhuma intervenção do usuário. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 23 As réplicas primárias e secundárias devem ser definidas para o modo de failover automático, e ambas devem ser definidas para o modo de disponibilidade de confirmação síncrona. O estado de sincronização entre as réplicas deve ser ‘Sincronizado’. Além disso, o cluster do WSFC deve ter um quorum íntegro. O failover automático não terá suporte se a réplica primária ou secundária residir em uma FCI. Isso é bloqueado para evitar uma potencial condição de corrida entre o grupo de disponibilidade e os failovers de FCI. Failover manual. Permite que o administrador avalie o estado da réplica primária e tome uma decisão de deliberadamente fazer o failover para uma réplica secundária ou não. Dependendo do modo de disponibilidade e do estado de sincronização, você tem estas opções: o Failover manual planejado (sem perda de dados). Você só poderá executar esse tipo de failover se as réplicas primárias e secundárias estiverem íntegras e em um estado ‘Sincronizado’. Isso é funcionalmente equivalente a um failover automático. o Failover manual forçado (permitindo potencial perda de dados). Esta é a única forma de failover possível se a réplica secundária de destino estiver no modo de disponibilidade de confirmação assíncrona ou não estiver sincronizada com a réplica primária. Aviso: você só deverá usar essa opção de failover em uma situação de recuperação de desastre. Se a réplica primária estiver íntegra e disponível, você deverá alterar o modo de disponibilidade das réplicas envolvidas para confirmação síncrona e, em seguida, fazer um failover manual planejado. Para saber mais, consulte Executar um failover manual forçado de um grupo de disponibilidade (http://msdn.microsoft.com/pt-br/library/ff877957(SQL.110).aspx). Você deverá fazer um failover manual se qualquer uma das seguintes condições for verdadeira em relação à réplica primária ou secundária para a qual você quer fazer o failover: O modo de failover está definido como manual. O modo de disponibilidade está definido como confirmação assíncrona. A réplica reside em uma FCI. Para saber mais, consulte Modos de failover (Grupos de Disponibilidade AlwaysOn) (http://msdn.microsoft.com/pt-br/library/hh213151(SQL.110).aspx). Observação: depois de um failover, se a nova réplica primária não estiver definida para o modo de confirmação síncrona, as réplicas secundárias indicarão um estado de sincronização ‘Suspenso’. Não haverá nenhum fluxo de dados para as réplicas secundárias até que a réplica primária seja definida para o modo de confirmação síncrona. Ouvinte de grupos de disponibilidade Um ouvinte de grupo de disponibilidade é um VNN (nome de rede virtual) do WSFC que os clientes podem usar para acessar um banco de dados no grupo de disponibilidade. O recurso de cluster do VNN é de propriedade da instância do SQL Server na qual a réplica primária reside. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 24 O nome de rede virtual só será registrado no DNS durante a criação do ouvinte de grupo de disponibilidade ou durante alterações de configuração. Todos os endereços IP virtuais definidos no ouvinte de grupo de disponibilidade são registrados no DNS com o mesmo nome de rede virtual. Para usar o ouvinte de grupo de disponibilidade, uma solicitação de conexão de cliente deve especificar o nome de rede virtual como o servidor, e um nome de banco de dados que esteja no grupo de disponibilidade. Por padrão, isso deve resultar em uma conexão com a instância do SQL Server que está hospedando a réplica primária. Em tempo de execução, o cliente usa seu resolvedor de DNS local para obter uma lista de endereços IP e de portas TCP mapeados para o nome de rede virtual. O cliente tenta então se conectar a cada um dos endereços IP até conseguir ou até atingir o tempo limite de conexão. O cliente tentará fazer essas conexões em paralelo caso o parâmetro MultiSubnetFailover esteja definido como true, permitindo failovers de cliente muito mais rápidos. No caso de um failover, as conexões de cliente são redefinidas no servidor, a propriedade do ouvinte de grupo de disponibilidade é movida com a função de réplica primária para uma nova instância do SQL Server e o ponto de extremidade do VNN é associado aos endereços IP virtuais e às portas TCP da nova instância. Para saber mais, consulte Conectividade de cliente e failover de aplicativo (http://msdn.microsoft.com/pt-br/library/hh213417(SQL.110).aspx). Filtragem de tentativa de aplicativo Ao conectar-se por meio do ouvinte de grupo de disponibilidade, o aplicativo pode especificar se sua tentativa é para leitura e gravação de dados ou se ele executará exclusivamente operações somente leitura. Se não for especificado, a tentativa padrão do aplicativo para o cliente será de leitura/gravação. Para as funções primária e secundária de cada réplica de disponibilidade, você também pode especificar uma propriedade de acesso de conexão, que será usada como um filtro em nível de conexão na tentativa de aplicativo do cliente. Por padrão, as combinações de acesso de conexão e tentativa de aplicativo inválidas resultam em uma conexão recusada. O SQL Server deve filtrar solicitações de conexão de cliente usando as regras a seguir. Quando a réplica de disponibilidade estiver na função primária e o acesso de conexão for igual a: Permitir qualquer tentativa de aplicativo. Não filtre nenhuma conexão de cliente para a tentativa de aplicativo. Permitir somente tentativa de leitura/gravação explícita. Se o cliente especificar somente leitura, rejeite a conexão. Quando a réplica de disponibilidade estiver na função secundária e o acesso de conexão for igual a: Nenhuma conexão permitida. Recuse todas as conexões; a réplica é usada apenas para recuperação de desastre. Permitir qualquer tentativa de aplicativo. Não filtre nenhuma conexão de cliente para a tentativa de aplicativo. Tentativa de aplicativo somente leitura. Se o cliente não especificar somente leitura, rejeite a conexão. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 25 Para saber mais, consulte Configurar o acesso de conexão em uma réplica de disponibilidade (http://msdn.microsoft.com/pt-br/library/hh213002(SQL.110).aspx). Roteamento somente leitura de tentativa de aplicativo Uma proposta de valor importante para Grupos de Disponibilidade AlwaysOn é a capacidade de usar sua infraestrutura de hardware em espera para outras finalidades além da recuperação de desastre. Ao configurar uma ou mais de suas réplicas secundárias para acesso somente leitura, você poderá descarregar cargas de trabalho significativas de suas réplicas primárias. As cargas de trabalho que podem ser prontamente adaptadas para sair de uma réplica secundária somente leitura incluem: relatórios, backups de bancos de dados, verificações de consistência de banco de dados, análise de fragmentação de índice, extração de pipeline de dados, suporte operacional e consultas ad hoc. Para cada réplica de disponibilidade, você pode, opcionalmente, configurar uma lista de roteamento somente leitura sequencial dos pontos de extremidade da instância do SQL Server a serem aplicados quando essa réplica estiver na função primária. Se estiver presente, essa lista será usada para redirecionar solicitações de conexão de cliente que especifiquem a tentativa de aplicativo somente leitura para a primeira réplica secundária disponível na lista que satisfizer os filtros de tentativa de aplicativo observados anteriormente. Observação: o redirecionamento de roteamento somente leitura é executado pelo ouvinte de grupo de disponibilidade, que é associado à réplica primária. Se a réplica primária estiver offline, o redirecionamento do cliente não funcionará. Para saber mais, consulte Configurar o roteamento somente leitura em um Grupo de Disponibilidade (SQL Server) (http://msdn.microsoft.com/pt-br/library/hh653924(SQL.110).aspx) Aperfeiçoamentos de disponibilidade – bancos de dados O SQL Server 2012 apresenta uma série de aperfeiçoamentos de recursos que são específicos à configuração e aos recursos do banco de dados. O aperfeiçoamento a seguir reduz o tempo de recuperação: Tempo de recuperação previsível. Você pode definir um intervalo de tempo de recuperação de destino por banco de dados, que é usado para controlar a programação de um comando CHECKPOINT em segundo plano. Esse ponto de verificação indireto ocorre periodicamente, com base no tempo estimado necessário para recuperar o log de transações no caso de uma reinicialização ou um failover. Isso tem o efeito de nivelar a E/S em proporções aproximadamente iguais para cada ponto de verificação, aumentando a previsibilidade do tempo de recuperação crescente (RTO). Antes do SQL Server 2012, os comandos CHECKPOINT em segundo plano eram emitidos em um intervalo fixo, independentemente do volume ou da carga de transações, o que poderia gerar tempos de recuperação imprevisíveis. Para saber mais, consulte Pontos de verificação de banco de dados (http://msdn.microsoft.com/ptbr/library/ms189573(SQL.110).aspx). Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 26 Esses aperfeiçoamentos reduzem os cenários comuns que podem acionar o tempo de inatividade planejado: Operações de índice online para colunas LOB. Os índices que contêm colunas com varbinary(max), varchar(max), nvarchar(max) ou tipos de dados XML podem agora ser recompilados ou reorganizados online. Modificação de esquema online para novas colunas NOT NULL. Se uma nova coluna NOT NULL for adicionada com um valor padrão a uma tabela de banco de dados do SQL Server 2012, somente um bloqueio de esquema será necessário para atualizar os metadados do sistema; nem todas as linhas precisam ser preenchidas durante a instrução ALTER TABLE. O SQL Server só manterá fisicamente o valor padrão de coluna se uma linha for realmente modificada ou reindexada. As consultas retornam o valor padrão dos metadados, a menos que haja um valor de coluna real. Existe um exemplo de suporte mais abrangente para cenários de armazenamento: Reparo automático de página. Determinados tipos de erros do subsistema de armazenamento podem danificar uma página de dados, tornando-a ilegível. Os Grupos de Disponibilidade AlwaysOn podem detectar e recuperar-se automaticamente desses tipos de erros ao solicitar de forma assíncrona e aplicar uma cópia atualizada das páginas de dados afetadas de uma réplica de disponibilidade diferente. Existia uma funcionalidade semelhante antes do SQL Server 2012 para espelhamento de banco de dados, mas agora ela foi aprimorada para dar suporte a várias réplicas. Para saber mais, consulte Reparo automático de página (http://msdn.microsoft.com/pt-br/ library/bb677167(SQL.110).aspx). Recomendações de conectividade de cliente Siga estas diretrizes para permitir que aplicativos cliente aproveitem por completo a tecnologias do Microsoft SQL Server 2012 AlwaysOn: Biblioteca de cliente com reconhecimento do AlwaysOn. Use uma biblioteca de cliente que dê suporte à versão 7.4, ou mais recente, do protocolo TDS. Isso deve fornecer a funcionalidade desejada do lado do cliente para recursos AlwaysOn. As bibliotecas de cliente de exemplo incluem o Provedor de Dados para SQL Server no .NET Framework 4.02 e o SQL Native Client 11.0. Propriedade de provedor de conexão: MultiSubnetFailover = True. Use essa palavra-chave nas cadeias de conexão para permitir que bibliotecas de cliente tentem se conectar em paralelo com todos os endereços IP registrados para o ouvinte de grupo de disponibilidade ou a FCI que tenha endereço IP em várias sub-redes. Propriedade de provedor de conexão: ApplicationIntent = ReadOnly. Onde for possível, descarregue cargas de trabalho somente leitura da sua réplica primária para as réplicas secundárias. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 27 Tempo limite de conexão de cliente herdado. As bibliotecas herdadas de banco de dados cliente não implementam tentativas de conexão em paralelo e, portanto, quando vários endereços IP estiverem presentes, elas tentarão se conectar a cada um deles sequencialmente até encontrarem um tempo limite TCP ou conseguirem se conectar. Você deve ajustar o tempo limite de conexão de clientes herdados para acomodar os potenciais tempos limites sequenciais e novas tentativas, quando houver vários endereços IP, para um valor que seja de pelo menos 15 segundos + 21 segundos para cada réplica secundária. Conclusão Este white paper estabeleceu o contexto de linha de base sobre como reduzir os tempos de inatividade planejado e não planejado, maximizar a disponibilidade do aplicativo e fornecer proteção de dados usando soluções de alta disponibilidade e recuperação de desastre do SQL Server 2012 AlwaysOn. Muitos dos fatores e desafios comerciais de planejamento, gerenciamento e medição de um ambiente de banco de dados altamente disponível podem ser quantificados e expressos como RPO (objetivo de ponto de recuperação) e RTO (objetivo de tempo de recuperação). O SQL Server 2012 AlwaysOn fornece recursos em nível de infraestrutura, plataforma de dados e banco de dados que poderão ajudar sua organização a lidar com os cenários de alta disponibilidade e recuperação de desastre mais comuns, de uma maneira que possa ser bem-justificada com o uso de metas de RPO e RTO. Para saber mais: http://www.microsoft.com/sqlserver/: Site do SQL Server http://technet.microsoft.com/pt-br/sqlserver/: SQL Server TechCenter http://msdn.microsoft.com/pt-br/sqlserver/: SQL Server DevCenter Este white paper ajudou você? Envie seus comentários. Em uma escala de 1 (ruim) a 5 (excelente), como você classificaria este white paper e por quê? Por exemplo: Você está classificando-o como excelente devido aos bons exemplos, às excelentes capturas de tela, à clareza do texto ou por outro motivo? Você está classificando-o como ruim devido aos exemplos insatisfatórios, às capturas de tela confusas ou ao texto mal-escrito? Os comentários nos ajudam a melhorar a qualidade dos white papers que lançamos. Enviar comentários. ◊ Versão 1.1, 21 de fevereiro de 2012. Guia de soluções Microsoft SQL Server AlwaysOn para alta disponibilidade e recuperação de desastre 28