Alta Disponibilidade para pequenos, médios e grandes ambientes

Propaganda
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
Download