MVP Virtual Conference 2013 Alta Disponibilidade e Integração de Dados Nilton Pinheiro Luciano Moreira Nilton Pinheiro [email protected] @nilton_pinheiro http://www. mcdbabrasil .com.br SQL Server MVP | MCITP | MCSE | MCDBA | MCTS | MCT Luciano Moreira [Luti] @luticm [email protected] http://luticm.blogspot. com SQL Server MVP | PASS RM | MC* | MCM Wannabe Agenda Alta disponibilidade “Ontem” Cenários de alta disponibilidade Considerações e Quorum Guidelines HA + Integração de dados Conclusão Referências Alta Disponibilidade “Ontem” Failover Clustering (FC) Requer uma storage compartilhada Não permite nó secundário ativo (leitura ou backup) Para disaster recovery (DR) Requer replicação síncrona entre storages ou uma combinação de FC com Database Mirroring ou Log Shipping Database Mirroring Failover automático: requer SNAC ou o parâmetro FailoverPartner na string de conexão, Witness Não permite conexão dos sistemas utilizando nome virtual É possível leitura no secundário utilizando database snapshot no mirror Alta Disponibilidade “Ontem” Log Shipping Não permite failover automático Nós secundários offline (não permite leitura nos secundários) Difícil implementação e manutenção (Alto custo operacional\administrativo) Failover no nível de banco de dados Uma Necessidade Comum Movimentação de dados Assíncrona Movimentação de dados Síncrona Log Shipping Alta disponibilidade local (site principal) com failover automático. Réplica do banco de dados em um terceiro servidor no site principal para execucão de relatórios. Se o site principal cair, deve-se fazer failover para o site de contingência (DR). Para reduzir custo, replicação entre storage não é uma opção. DB Mirroring A A Failover Clustering A Relatórios Cenário – FCI + DBM Movimentação de dados Assíncrona Movimentação de dados Síncrona Failover Manual (Database Mirroring) Failover Cluster Instance (FCI) em cada site provê a alta disponibilidade local Cada site possui seu próprio Windows Server Failover Cluster (WSFC) Cada site possui sua própria shared storage Database Mirroring (DBM) para Disaster Recovery: oferece proteção no nível de banco de dados entre os sites No site DR o SQL Server pode ser uma instância stand-alone A A SQL Server AlwaysOn Novas soluções com AlwaysOn AlwaysOn Availability Groups proteção no nível de banco de dados Failover de múltiplos bancos de dados Múltiplos servidores secundários Sevidores secundários ativos Gerenciamento integrado através de um Dashboard Suporte a nome e IP virtual AlwaysOn Failover Cluster Instances proteção no nível de instância Multisite Clustering através de subnets Política de Failover Flexível Windows Server Core TEMPDB em disco local Cenário – FCI + AG Movimentação de dados Assíncrona Movimentação de dados Síncrona Requisito do Availability Group: Failover Manual (Availability Group) Todas as réplicas de um AG devem pertencer a um único Windows Server Failover Cluster (WSFC) Pontos para consideração: A Shared storage com discos visíveis apenas aos nós de cada site (Asymmetric storage) Modelo do quorum e política de votação dos nós A Algumas variações possíveis da arquitetura Múltiplos data centers Múltiplas réplicas: 1 primária e até 4 réplicas secundárias Múltiplos Availability Groups, podendo criar um agrupamento lógico de bancos de dados As réplicas não precisam estar em FCI Considerações – FCI + AG Storage Asymmetric storage: discos são compartilhados apenas com os nós dos respectivos sites Suportado no Windows 2008 ou Windows 2008 SP2 através de hotfix (KB 976097) Suportado no Windows 2008 R2 SP1 Ponto chave para o funcionamento do FCI + AG Extremamente recomendado que letras dos discos e caminhos sejam idênticos entre os sites Facilitar a configuração do AG Evitar problemas com adição de novos arquivos (Troubleshoot a Failed Add-File Operation (AlwaysOn Availability Groups)) Nome das Instâncias: no mesmo WSFC as duas FCI devem usar nomes diferentes Conectividade dos clientes: Pode ser feita usando o nome virtual do cluster (VNN) ou o Availability Group Listener Name Sempre que possível utilize o “Availability Group Listener Name” Modo de Failover: Automático no FCI Manual entre o FCI e Availability Group Quorum Guidelines - FCI + AG Modelo de quorum e nós votantes no cluster Antes de selecionar o modelo do quorum, conside o número de nós votantes no cluster Por default, cada nó do cluster conta 1 voto Para uma solução de HA/DR pode não ser o mais apropriado KB 2490036 permite remover o voto dos nós (Windows 2008/ Windows 2008 R2) Recomendações gerais para configuração de votos em ambientes FCI + AG Inclua todos os nós do site primário Inclua possíveis owners de failover automático Exclua nós dos sites secundários (DR) Mantenha sempre um número impar de votos Pós-failover, reavalie a configuração do quorum Regra geral: Característica do cluster Número impar de nós Número pares de nós (mas não multi-site cluster) Número pares de nós (em multi-site cluster) Número pares de nós (não shared storage) Recomendação para Quorum Node Majority Node and Disk Majority Node and File Share Majority Node and File Share Majority Quorum Guidelines - FCI + AG Outros modelos possíveis: Node and Disk Majority No Majority: Disk Only Failover Manual (Availability Group) ** Windows 2008 R2 SP1 ou Windows 2008 SP2 + KB 976097 NÃO VOTO A NÃO VOTO VOTO VOTO A VOTO FileShare Demo Failover Cluster Intance + Availability Group Integração de Dados Com a proliferação dos sistemas, existe necessidade de se oferecer a integração dos dados Durante a escolha da solução entre as alternativas arquiteturais, existem trade-offs: Tolerância para latência Push versus pull Granularidade Relação mestre/subordinado Lógica de sincronização versus latência Há diversas formas de fazermos integração dos dados, até manutenção de fonte única é uma abordagem Integração de Dados Opções de replicação de dados: Move Copy of Data Data Replication Master-Master Replication Master-Subordinate Replication Master-Master Row-Level Synchronization Master-Subordinate Snapshot Replication Capture Transaction Details Master-Subordinate Transactional Incremental Replication Implementing Master-Master Row Level Synchronization Using SQL Server Implementing Master-Subordinate Snapshot Replication Using SQL Server Master-Subordinate Cascading Replication Integração de Dados Always-on Availability Groups com secundários Read-Only É uma excelente forma de garantir a alta disponibilidade, mas também a acessibilidade do dado Acessibilidade = menor overhead nos sistemas OLTP e possibilidade de manutenção de sistemas em near real time Integration Services pode se beneficiar bastante para cargas de dados incrementais Questões como latência do dado e modelo de sincronização entre elementos do AG devem ser sempre considerados Integração de Dados SSIS é uma plataforma extensível para construir soluções de ETL complexas Disponível junto com o SQL Server 2012 para instalação Consiste em serviço do Windows e diversas ferramentas auxiliares, para desenvolvimento e execução dos pacotes Integração com plataforma de desenvolvimento .NET Demo SQL Server Integration Services Conclusão Existem diversos cenários de alta disponibilidade que podem ser criados dependendo da necessidade do seu negócio AlwaysOn Availability Groups é uma das “estrelas” do SQL Server 2012 e facilita questões como separação de cargas de leitura / escrita O SSIS 2012 como ferramenta de integração pode se beneficiar dos secundários ativos para integração de dados A plataforma SQL Server oferece uma cobertura ampla de soluções para essas e outras questões Referências Migration Guide: Migrating to SQL Server 2012 Failover Clustering and Availability Groups from Prior Clustering and Mirroring Deployments Microsoft SQL Server AlwaysOn Solutions Guide for High Availability and Disaster Recovery Failover Cluster Step-by-Step Guide: Configuring the Quorum in a Failover Cluster Recommended Adjustments to Quorum Voting Prerequisites, Restrictions, and Recommendations for AlwaysOn Availability Groups (SQL Server) Client Connectivity and Application Failover (AlwaysOn Availability Groups) Asymmetric Storage: http://support.microsoft.com/kb/976097 Node Votes: http://support.microsoft.com/kb/2494036 Obrigado!