Alta Disponibilidade para pequenos, médios e grandes ambientes Nilton Pinheiro Sr. Support Engineer | Microsoft MCSE | MCDBA | MCTS | MCSA/MCSE: SQL Server 2012 [email protected] [email protected] Apresentação Pessoal • Mais de 16 anos trabalhando com SQL Server • Alta Disponibilidade (SQL Server FCI, AlwaysOn, Availability Groups, DBMirroring...) • MCITP, MCSA/MCSE: SQL Server 2012 • Palestrante em vários eventos: SQLSaturday, TechEd BR, MVP Virtual Conference, MVPShowCast • Ex-MVP (Microsoft MVP por onze anos) • Criador e administrador do portal www.mcdbabrasil.com.br Apresentação Pessoal Alta Disponibilidade AD/DC DNS Rede Publica SQLINST1 SQLINST2 Standby C:\ C:\ D:\ D:\ E:\ E:\ Alta Disponibilidade • Alta disponibilidade são recursos ou mecanismos de identificação, recuperação e mitigação de falhas que buscam garantir aos usuários de um serviço ou aplicação a maior disponibilidade possível Alta Disponibilidade • Alta disponibilidade se mede e o grau de alta disponibilidade requerido depende exclusivamente da necessidade do negócio − Quanto tempo por mês sua necessidade de negócio requer que seu sistema se mantenha disponível para os usuários/clientes? − Em caso de uma queda do servidor ou sistema, qual é o tempo máximo de indisponibilidade ou “downtime” permitido? Disponibilidade Requerida Indisponibilidade Permitida/Ano Indisponibilidade Permitida/Mês 99% 3 dias 15:36 0 dias 7:12 99,9% 0 dias 8:45 0 dias 0:43 99,99% 0 dias 0:52 0 dias 0:04 99.999% 0 dias 0:05 0 dias 0:00 Alta Disponibilidade no SQL Server AlwaysOn Failover Cluster Intance proteção no nível de instâncias AlwaysOn Availability Groups proteção no nível de banco de dados ou grupo de bancos de dados Database Mirroring proteção no nível de banco de dados Log Shipping proteção no nível de banco de dados Alta Disponibilidade no SQL Server AlwaysOn Failover Cluster Intance proteção no nível de instâncias Requer a utilização de storages Para soluções de DR é necessário replicação de dados entre storages Multi-site Clustering através de subnets Suporte ao Windows Server Core Suporte a TEMPDB em disco local Requer Windows Server Failover Clustering (WSFC) Disponível nas edições Enterprise ou Standard (dois nós) do SQL Server Garante disponibilidade das bases de sistemas e usuários Alto custo Maioria das implementações são feitas com 2 servidores (nós) e uma ou duas instâncias de SQL Server Alta Disponibilidade no SQL Server AlwaysOn Failover Cluster Instance (single instance) Rede Publica SQLINST1 (nome virtual) Rede Privada (HeartBeat) HeartBeat Windows Server Failover Cluster (WSFC) Standby SRVNODE1 SRVNODE2 E:\ F:\ G:\ W:\ SQL DB SQL DB Log Alta Disponibilidade no SQL Server AlwaysOn Failover Cluster Instance (multi instances) Rede Publica SQLINST2 SQLINST1 HeartBeat Windows Server Failover Cluster (WSFC) E:\ G:\ W:\ SQL DB SQL DB Log E:\ F:\ G:\ F:\ H:\ H:\ W:\ X:\ Alta Disponibilidade no SQL Server AlwaysOn Availability Groups proteção no nível de banco de dados ou grupo de bancos de dados Requer WSFC Requer edição Enterprise Médio para alto custo Suporta até 8 servidores secundários (réplicas) 3 síncronos (failover automático) Failover de múltiplos bancos de dados Servidores secundários ativos (readonly) Redirecionamento automático das aplicações usando nome/ip virtual Gerenciamento Integrado, configuração flexível e simples Não requer uso de storage Não espelha as bases de sistemas AG Basic para SQL Server Standard Database Mirroring proteção no nível de banco de dados Requer witness para Failover automático Requer edição Standard/Enterprise Baixo custo Suporta apenas 1 secundário Replicação síncrona ou assícrona Failover é banco a banco Bases indisponíveis para leitura Não suporta utilização de nome/ip virtual (listener) Não requer uso de storage Não espelha as bases de sistemas Alta Disponibilidade no SQL Server AlwaysOn Availability Group - Arquitetura AD/DC DNS Rede Publica SQLINST2 SQLINST1 AVG_Grupo1 DBRH DBNFE DBRH DBNFE DBPED Standby Windows Server Failover Cluster (WSFC) C:\ D:\ E:\ C:\ D:\ E:\ As aplicações se conectam na SQLINST1 Na falha as aplicações perdem conexão e o WSFC faz o “move” do AVG para o servidor secundário A reconexão requer alteração do nome da instância ou adaptação da aplicação Alta Disponibilidade no SQL Server AlwaysOn Availability Group - Arquitetura AD/DC DNS Rede Publica SQLINST1 SQLINST2 VSQLINST AVG_Grupo1 DBRH DBNFE DBRH DBNFE DBPED Standby Windows Server Failover Cluster (WSFC) C:\ D:\ E:\ C:\ D:\ E:\ As aplicações se conectam utilizando o listener “VSQLINST” Na falha as aplicações perdem conexão e o WSFC faz o “failover” do listener e do recurso AVG_Grupo1 para o servidor secundário. As conexões são reestabelecidas com o novo primário assim que o failover é concluído e o nome virtual ficar online Alta Disponibilidade no SQL Server Database Mirroring AD/DC DNS Rede Publica SQLINST1 Síncrono (automático/manual) ou Assíncrono (manual) DBRH DBNFE DBPED Express\witness SQLINST2 DBRH In-Recovery DBNFE In-Recovery DBPED In-Recovery Standby C:\ D:\ E:\ C:\ D:\ E:\ As aplicações se conectam na instância SQLINST1 Reconexão requer alteração do nome da instância ou alteração da aplicação Para “failover automático” requer a configuração do WITNESS Alta Disponibilidade no SQL Server Log Shipping proteção no nível de banco de dados Diferentes bancos podem ser replicados para diferentes secundários Não requer edição Enterprise Replicação é feita através dos log de transação de cada banco de dados SQL Jobs fazem backup, copiam pela rede e restauram no secundário Log shipping é SEMPRE assíncrono Depende totalmente dos backups/restore dos logs Tudo que está no backup de log é transferido Failover é sempre manual e requer redirecionamento das aplicações Não suporta utilização de nome/ip virtual (listener) Baixo custo (permite reutilização de hardware existentes) Configuração e manutenção complexas Bases espelho pode fi ar dispo íveis para leitura os se u dários sta d y Alta Disponibilidade no SQL Server Log Shipping AD/DC DNS Rede Publica SQLINST2 SQLINST1 Linked Server Jobs backup DBRH DBRH Standby/RO DBNFE DBNFE Standby/RO DBPED DBPED Standby/RO Job Cópia Job Restore Job Alerta Standby C:\ C:\ D:\ E:\ Log tran dbrh.trn dbnfe.trn dbped.trn D:\ Aplica log tran E:\ As aplicações se conectam na instância SQLINST1 Na falha as aplicações perdem conexão e o failover deve ser feito manualmente Grande risco de perda de dados Alta Disponibilidade no SQL Server Prós/ Contras AlwaysOn FCI AlwaysOn AVG Database Mirroring Log Shipping - Suporte no nivel de instância - Failover automático - Suporte a múltiplas instâncias - Suporte a múltiplos servidores - Bases de sistemas única - Suporta TEMPDB em disco local - Proteção no nível de grupos de bancos de dados - Permite relatórios/backup nos secundários - Rápido failover (~ 3seg) - Permite réplica para até 4 servidores secundários - Fácil configuração e gerenciamento - Não requer storage - Médio para baixo custo de implementação - Atende médios/grandes ambientes - Perda de dados zero - Sincronização síncrona e assíncrona - Instalação do SQL é stand-alone - Redirecionamento automático (Listener) - Failover automático Fácil configuração e manutenção Rápido failover (~10s) Edição Standard (apenas síncrono) e Enterprise Não requer storage Baixo custo para implementação Atende pequenos/médios ambientes Não requer WSFC Perda de dados zero Compressão de log Recuperação de páginas Redirecionamento automatico (FAILOVER PARTNER) - Permite vários secundários - Permite bases em readonly no secundário - Não requer edição Enterprise - Atende pequenos/ médios ambientes - Não requer WSFC - Suportado apenas na edição Enterprise - Não replica bases de sistemas - Requer configuração do WSFC - Apenas 1 secundário - Não permite leitura/backup no secundário - Marcado para ser descontinuado em breve - Proteção/Failover no nível de de banco de dados - Não replica bases de sistemas - Método de sincronização deve ser síncrono ou assíncrono - Depende de Jobs para funcionar - Failover manual - Configuração complexa e difícil troubleshooting - Não replica bases de sistemas - Failover acima de 30min - Sincronização assíncrona Comparativo entre as soluções Prós Contras - Requer storage (shareddisk) - Alto custo para implementação - Voltado apenas grandes ambientes - Configuração complexa - Possibilidade de perda de dados - Failover de ~ 60 seg ou mais - Referências Overview of SQL Server High-Availability Solutions http://technet.microsoft.com/en-us/library/ms190202.aspx Failover Clustering Deployment Guide: http://technet.microsoft.com/en-us/library/dd197477.aspx TechNet: Installing a Failover Cluster: http://technet.microsoft.com/en-us/library/cc772178.aspx SQL Server Failover Clustering End-to-End http://www.mcdbabrasil.com.br Migrating to SQL Server 2012 Failover Clustering and Availability Groups from Prior Clustering and Mirroring Deployments: http://msdn.microsoft.com/en-us/library/hh923056.aspx Troubleshooting Log Shipping Issues http://troubleshootingsql.com/2009/12/30/troubleshooting-log-shipping-issues/ Database Mirroring Best Practices and Performance Considerations http://download.microsoft.com/download/4/7/a/47a548b9-249e-484c-abd729f31282b04d/DBM_Best_Pract.doc