FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE
SERGIPE – FANESE
NÚCLEO DE PÓS-GRADUAÇÃO E EXTENSÃO – NPGE
CURSO DE PÓS-GRADUAÇÃO “LATO SENSU”
ESPECIALIZAÇÃO EM BANCO DE DADOS
REPLICAÇÃO E AUTO DISPONIBILIDADE NO SQL
SERVER 2012
DAYSE SOARES SANTOS
ARACAJU – SE
2012
2
DAYSE SOARES SANTOS
REPLICAÇÃO E AUTO DISPONIBILIDADE NO SQL SERVER 2012
Projeto de pesquisa cientifica apresentado ao
Núcleo de Pós-graduação e Extensão da Faculdade
de Administração e Negócios de Sergipe como
exigência para obtenção do título de Especialista
em Banco de dados.
Orientação: Professora Renata Azevedo.
ARACAJU – SE
2012
3
REPLICAÇÃO E AUTO DISPONIBILIDADE NO SQL SERVER 2012
RESUMO
Nesse artigo será relatado sobre o SQL Server 2012, focando a auto disponibilidade e a
replicação de bases. A grande novidade é o SQL Server AlwaysOn, considerado uma solução
simples e unificada, é muito fácil de gerenciar e implementar, trazendo redução de custos por
causa da permissão de reutilização de hadware já existente, melhor utilização dos servidores,
e maior retorno sobre o investimento. Será detalhado as duas soluções do AlwaysOn que é a
AlwaysOn Availability Groups que atua no nível de banco de dados e o Alwayson Failover
Cluster Instances que atua na proteção no nível de instâncias.
O Alwayson veio para facilitar as complexidades do failover Cluster Instance, do data base
mirroring e do Log Shipping.
PALAVRAS CHAVE
SQL Server Alwayson, failover, instance, mirroring, log shipping, banco de dados, clustering
ABSTRACT
In this paper is reported about SQL Server 2012, focusing on self availability and replication
bases. The big news is the SQL Server AlwaysOn, considered a simple and unified, it is very
easy to manage and deploy, bringing cost savings because of permission to reuse existing
Hadware, better server utilization, and greater return on investment . The two solutions will be
detailed to the AlwaysOn AlwaysOn Availability Groups is that it operates at the level of
database and AlwaysOn Failover Cluster Instances that works to protect the level of instances.
The AlwaysOn came to ease the complexities of Failover Cluster Instance, the data base
mirroring and Log Shipping.
KEYWORDS
SQL Server AlwaysOn, failover, instance, mirroring, log shipping, database clustering
4
1. INTRODUÇÃO
SQL Server AlwaysOn é uma solução de alto disponibilidade e disaster recovery
com muito mais abrangência através da implementação do AlwaysOn Availability Groups e
AlwaysOn Failover Cluster Instances que traz maior disponibilidade para as aplicações, maior
retorno sobre os investimentos, simplicidade para implementação e gerenciamento. Atende
pequenos, médios e grandes ambientes (banco de dados ou instância) e não esquecendo o
multisite clustering através do suporte a subnets.
Maior flexibilidade e eficiência na configuração de alta disponibilidade, baixo custo
permitindo reutilização de hardware, suporte a windows server core reduzindo
significativamente o downtime e a aplicação de paths.
2. DESENVOLVIMENTO
2.1. Novidades em consideração as versões anteriores
O SQL Server 2012 veio trazer tudo que é necessário para resolver a disponibilidade
e a confiabilidade dos dados em todos os níveis de uma empresa, pelo preço certo e na hora
certa.
O SQL Server 2012 é uma plataforma de informações pronta para a nuvem que
oferece às organizações a agilidade para criar e escalonar soluções do servidor privada ou
pública rapidamente.
Capacidades principais:
Reduzir a complexidade;
Acelerar tempo;
Flexibilidade nos termos do servidor para nuvem;
Otimização;
Expansividade;
5
2.2. Novidades do Sql server 2012 para alta disponibilidade e replicação
O que é Alwayson?
É uma nova e mais abrangente solução de alta disponibilidade e disaster recovery
que permite aumentar a disponibilidade das aplicações seja no nível de banco de dados ou no
nível de instância, proporcionando um melhor retorno sobre os investimentos.
Com o alwayson é possível aproveitar do hardware já existente dentro de uma
estrutura da empresa.
O que é usado hoje como ferramenta de alta disponibilidade nas estrutura das
empresas?
Pensando no SQL Server 2008 ou SQL Server 2008 R2, voltado aos grandes
ambientes existem três soluções:
Failover Cluster Instance (FCI): Seria instalar o SQL Server em um cluster de dois ou
mais nós, colocar a instancia com o nome virtual e dar ao ambiente alta
disponibilidade em caso de falha de hardware ou de software, para isso, requer uma
storage, os discos precisam ser compartilhados entre os nós que compõem a solução
do cluster. Quando se pensa em desastres recoveres os custos ficam bem mais altos,
pois, será necessário de uma storage em cada site, será necessário configurar a
replicação de dados entre as storage do site principal e a storage do site secundário.
Essa solução requer custos muito alto, voltado para grandes ambientes ou quando
existe a necessidade de trabalhar na replicação ou na alta disponibilidade englobando
um instancia como o todo.
Database Mirroring: Configura a replicação de um ou mais banco de dados entre duas
instancias de sql. O problema é quando precisa de um failover automático e que seja
transparente para a minha aplicação, isso, requer customização da aplicação, é
necessário alterar a string de conexão e informar a ela quem é o servidor par da
solução para que na ocorrência de uma falha e na movimentação do banco de dados,
possa parar o servidor secundário e sua aplicação entenda esse failover. Outro
problema seria que o database mirroring não suporta a utilização de nome virtual, ou
seja, se não estiver utilizando o failover par na string de conexão da aplicação, será
6
necessário um procedimento manual para sinalizar que o servidor principal falhou e o
banco de dados moveu para o servidor mirroring da solução.
Snapshot: Leitura na base espelho, somente usando o database snapshot, no servidor
espelho, e isso seria outra nova solução.
Log Shipping: Não permite o failover automático e as bases ficam indisponíveis no
servidor secundário.
Foi discutido quatro soluções que dependendo do cenário, pode ser utilizado uma ou
duas e dependendo as quatros, com um custo muito alto.
Alta disponibilidade usando o SQL Server AlwaysOn
O Alwayson unifica as quatros soluções acima citadas de uma maneira muito mais
simplificada e de custo muito mais baixo, o alwayson traz:
Integração:
Uma solução simples e unificada
Fácil de gerenciar e implementar
Flexibilidade
Reutilização de investimentos
Facilidade de configuração
Eficiência
Redução de custo
Reutilização de hardware
Melhor utilização dos servidores
Baixo custo com implantação de DR
Maior retorno sobre investimento.
7
2.3. Detalhes do AlwaysOn
Com o SQL Server AlwaysOn a alta disponibilidade e disaster recovery são
implementados com duas novas soluções:
AlwaysOn Availability Groups: É a solução que atua no nível de banco de dados e
fornece:
Failover de múltiplos bancos de dados
Replicação síncrona e assíncrona com failover automático ou manual.
Redirecionamento automático das aplicações usando nome virtual.
Múltiplos Servidores secundários.
Servidores Secundários ativos para leitura.
Gerenciamento Integrado e configuração flexível.
Alwayson Failover Cluster Instances: É a solução que atua na proteção no nível de
instâncias e fornece:
Multi-site clustering através de subnets.
Política de failover mais flexível.
Suporte ao Windows Server Core.
Suporte a TEMPDB em disco local.
Otimização do tempo de failover.
2.4. AlwaysOn Availability Group
É uma solução de alta disponibilidade SQL Server 2012, fornece alta disponibilidade
e disaster recovery para as aplicações no nível de banco de dados, combinando o database
mirroring e log shipping.
8
Proporciona muito mais flexibilidade fornecendo:
Failover de múltiplos bancos de dados;
Múltiplos secundários;
o Total de 4 secundários;
o 2 síncronos
1 par com failover automático
o 2 assíncronos
Servidores secundários ativos (leitura)
Compressão e criptografia integrada
Failover automático e manual
Política de failover flexível
Recuperação de páginas automáticas.
Proporcionando integração e eficiência:
Servidores secundários ativos;
o Leitura nos secundários;
o Backup nos secundários;
Redirecionamento automático da aplicação utilizando nome virtual;
Configuração utilizando Wizard;
Dashboard Integrado;
Integração com System Center;
Automação via power-Shell.
2.5. Cenário (Atendendo uma necessidade)
O requisito do negócio é ter um failover automático de múltiplos bancos de dados e
redundância através de múltiplos datacenters.
Como é no SQL Server 2008/R2:
Como se soluciona esse cenário através do SQL Server 2008/R2? Pode utilizar a
solução Database mirroring. O problema é que ele oferece failover automático de um único
9
banco de dados. Realiza cópias redundantes dos bancos de dados no principal e mirror server.
Para Failover de múltiplos bancos de dados requer customização de código. O
redirecionamento da aplicação requer uso do parâmetro "FailoverPartner" na string de
conexão.
Como é no SQL Server 2012:
O failover de múltiplos bancos de dados é tratado automaticamente pelo Availability
group.
Cópias redundantes dos bancos de dados são mantidas em todos os servidores que
participam do Availability group, podendo a sincronização ser síncrona ou assíncrona.
Podendo ter até quatro servidores secundários.
O redirecionamento da aplicação é tratado automaticamente com o uso do
Availability Group Listener e um nome virtual.
Arquitetura
Um exemplo da arquitetura a figura abaixo ilustra três servidores, cada servidor com
uma instancia SQL Server, os servidores precisam do Windows Server Failover Cluster
(WSFC) que é uma solução que depende do cluster para funcionar.
Uma vez instalado o WSFC é possível configurar a replicação da base entre os nós
do cluster. Lembrando que as instâncias não são clusterizadas, ou seja, não precisa configurar
ou instalar as instancias SQL Server de forma clusterizadas, cada maquina tem sua instancia
10
SQL Server utilizando discos locais, cada servidor tem seu banco de dados armazenado no
seu disco local e através do AlwaysOn Availability Group é realizado a replicação desses
dados do servidor primário para até quatro servidores secundários.
O Availability group usa o WSFC para:
Detecção da saúde entre os nós
Coordenação do Failover;
Armazenamento distribuído dos dados de configuração e status do availability group;
Notificações distribuídas das alterações.
Configuração Step-by-Step
Eleger os servidores que irão compor o Availability Group;
Instalar o SQL Server 2012 local em todos os servidores (stand-alone);
Instalar o failover cluster no Windows (em todos os servidores);
Criar um cluster composto pelos servidores eleitos;
Ative o serviço do SQL Server para Availability Group em todos os servidores;
No servidor primário (aquele que possui o banco de dados a ser espelhado), utilizar o
SSMS para criar e configurar o Availability Group;
11
3. ESTUDO DE CASO
Agora para entender como funciona uma implementação de AlwaysOn vamos fazer
uma demonstração do seu funcionamento seguindo os passos abaixo:
Obs.: Instale o windows server 2008 e o sql server 2012
1 - Criar três instancias de sql, sendo que na primeira instância teremos um banco de dados,
nas demais instancias não criar banco de dados nenhum.
2 - Não esqueça de instalar o serviço de clusters em cada uma das maquinas, sendo que o
clusters é composto por três nós e cada um desses nós está rodando um instancia de forma
stand-alone.
3 - Não esqueça de ir no serviço do sql server e sinalize para ele que estará fazendo parte de
um solução AlwaysOn Availability Group.
4 – Agora clique com o botão direito do mouse em AlwaysOn High Availability e New
Availability Group Wizard.
12
5 - Informe o nome do grupo de disponibilidade e selecione as base de dados que irá compor
esse grupo de disponibilidade. Clique em next
6 – Agora informe quais serão os servidores que irão receber a base de dados
automaticamente, ou seja, a replica secundário.
Isso significa que caso o servidor01 chegue a cair, automaticamente o serviço de cluster vai
atuar e fazer a movimentação desse grupo para o próximo servidor. Clique em next.
13
7 – É necessário um diretório de rede que seja acessível pelas instancias do SQL, pelos
serviços que estão rodando o sql. Feito esse diretório, informe-o como diretório FULL. Clique
em next.
8 – Agora é só esperar ele fazer as atualizações e o backup.
14
Apartir desse momento já temos a base de dados replicando para as outras instancias de SQL
Server, essas instancias podem está dentro do mesmo CPD ou em datacenter diferentes.
15
4. CONCLUSÃO
Nesse artigo foi relatado sobre a nova solução de alto disponibilidade e disaste
recovery chamada de alwayson, dando ênfase o Availability Group que é uma nova e
abrangente solução de alta disponibilidade e disaster recovery que atuando no nível de banco
de dados proporciona:
Failover de múltiplos bancos de dados para aplicações que requerem múltiplos bancos
de dados em uma única instância.
Conectividade e redirecionamento automático da aplicação através da implementação
do Avilbility Group Listener e nome virtual;
Compressão e criptografia integrada;
Sincronização de dados de forma síncrona ou assíncrona para até 4 nós.
Reparação automática de páginas corrompidas
Servidores secundários disponíveis para leitura;
Suporte a FILESTREAM, FILETABLE e Service Broker;
Configuração simplificada com o uso de Wizard, integração com PowerSell e
monitoração através de um Dashboard;
Suporta até 3 réplicas síncronas sendo uma primária e duas secundárias;
Permite o failover de múltiplos bancos de dados removendo a necessidade de lógicas
complexas.
4. REFERÊNCIAS
https://www.microsoftvirtualacademy.com/tracks/introducao-ao-sql-server-2012
http://luanmorenodba.wordpress.com/2012/06/30/entendendo-e-utilizando-o-sql-server-
alwayson/
Top Related