Buscar

Alta disponibilidade no SQL Server

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

www.devmedia.com.br
[versão para impressão]
Link original: http://www.devmedia.com.br/articles
/viewcomp.asp?comp=33296
Este artigo apresenta soluções de alta
disponibilidade para o SQL Server. Serão
discutidas estratégias para garantir a
continuidade dos negócios de sua empresa.
Fique por dentro
A necessidade de continuidade das atividades de negócio leva
empresas de tecnologia a criarem sistemas de alta disponibilidade. O
SQL Server apresenta várias tecnologias deste tipo, considerando
questões como tempo de recuperação, capacidade de manter as
informações íntegras, dentre outras.
Neste artigo apresentaremos uma visão geral de cada uma delas, suas
características e sugestões de uso. Conhecer as soluções de alta
disponibilidade do SQL Server permite que definamos estratégias que
R
e
c
e
b
a
 n
o
ti
fic
a
ç
õ
e
s 
:)
Alta disponibilidade no SQL Server http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=33296
1 de 18 07/02/2017 13:32
estejam melhor alinhadas às restrições impostas pelo cenário que
estamos tratando.
Um sistema de alta disponibilidade é aquele que permanece disponível a
maior parte do tempo, minimizando ao máximo riscos de parada do
sistema. Como muitos sistemas de informação têm como elemento
central bancos de dados relacionais, a continuidade dos negócios
depende da disponibilidade destes bancos.
Um sistema de gerenciamento de banco de dados depende de vários
componentes de hardware e software para rodar e a alta disponibilidade
é conseguida com redundâncias que tentam eliminar pontos únicos de
falha (Single Point Of Failure - SPOF) de cada componente do sistema
O SQL Server fornece boas alternativas de alta disponibilidade que
trabalham em conjunto com outras tecnologias de software e hardware
que também eliminam pontos únicos de falha, aumentando assim a
confiabilidade do sistema como um todo.
Assim, a camada de hardware da solução de alta disponibilidade deve ser
levada em consideração pensando-se em dispositivos tolerantes a falha.
Para servidores físicos, os pontos de atenção são a fonte de alimentação,
o armazenamento e a rede.
Esta lista foca nos principais componentes que podem ter redundância, o
que garante que o hardware onde rodam sistema operacional e softwares
que fornecem serviços aos usuários não fique vulnerável a falhas. Vale
notar também que estas opções de hardware são independentes de
software e podem atender a várias plataformas como Windows, Linux e
Unix, e SGBDs como SQL Server e Oracle.
Apesar da virtualização ser uma realidade hoje em dia, não iremos entrar
nesse detalhe pois algumas características de proteção de máquinas
virtuais não se aplicam a servidores de banco de dados, pois não
contemplam o conceito de transação, conceito este que é essencial para
R
e
c
e
b
a
 n
o
ti
fic
a
ç
õ
e
s 
:)
Alta disponibilidade no SQL Server http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=33296
2 de 18 07/02/2017 13:32
o funcionamento e garantia de consistência dos mesmos.
Em se tratando de software, a versão 2012 do SQL Server apresenta as
opções de alta disponibilidade listadas a seguir:
· Al w ay sOn Fa i l ove r Cl u st e r I n st an ces: com base no Windows
System Failover Cluster (WSFC), fornece alta disponibilidade através de
redundância no nível da instância.
Na prática, são duas instâncias de mesmo nome rodando em servidores
diferentes que estão ligados ao mesmo storage. No entanto, a instância
permanece ativa em um único nó do cluster usando exclusivamente o
storage que atende a todos os servidores do cluster;
· Al w ay sOn Ava i l ab i l i t y g r ou p: permite que um ou mais bancos de
dados de uma instância tenham uma cópia da base em outro servidor de
SQL Server. O termo “réplica”, neste artigo, se referenciará a cópias de
um banco de dados principal que fica em modo read/write;
· Dat abase m i r r o r i n g : espelhamento de um banco de dados de um
servidor principal em outro servidor secundário, que pode permitir
failover manual ou instantâneo e automático. A base principal é chamada
de principal database, enquanto que a base redundante é chamada
mirrored database. Esta funcionalidade será removida em futuras versões
do SQL Server;
· Log Sh ipp in g : também opera no nível de banco de dados e pode
manter uma ou mais cópias de um banco de dados principal. As cópias
são chamadas de bases secundárias e são warm databases, ou seja,
podem ser usadas apenas para leitura. Um exemplo seria seu uso para
apoiar a geração de relatórios.
Veremos a partir de agora como cada uma dessas opções podem ser
utilizadas de forma que tenhamos uma infraestrutura de banco de dados
com alta disponibilidade.
Hardware
R
e
c
e
b
a
 n
o
ti
fic
a
ç
õ
e
s 
:)
Alta disponibilidade no SQL Server http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=33296
3 de 18 07/02/2017 13:32
As opções para se eliminar pontos de falha de hardware são as
seguintes:
· Fon t e de a l i m en t ação : um servidor com mais de uma fonte de
alimentação permite que ele continue funcionando no caso de uma das
fontes falhar. Estas fontes também podem ser do tipo hot swap, ou seja,
trocadas com o servidor em operação;
· Ar m azen am en t o : a redundância de disco local de um servidor pode
ser obtida utilizando RAID (Redundant Array of I nexpensive Disks) ou
através de sistemas de armazenamento como NAS (NAS é a sigla de
Network At t ached Storage, que representa volumes de disco conectados
a um servidor que os disponibiliza a outros servidores) e SAN (Storage
Area Network). Inclui-se nesta categoria também o uso de placas de HBA
(Host Bus Adapter) redundantes. Os termos SAN e RAID serão explicados
mais adiante;
· Rede: múltiplas placas de rede trabalhando em t eaming, ou seja,
atuam em conjunto se comportando para o sistema como se fossem uma
placa de rede única.
A SAN é um conjunto de discos ligados em uma rede específica para este
fim. Nesta SAN, vários grupos de discos podem ser configurados com
redundância a falha como se fossem um único volume, e os servidores
são ligados a esta rede para que possam usar os conjuntos de discos da
SAN.
A tecnologia RAID permite que vários discos configurados em
redundância sejam apresentados para o servidor como uma única
unidade lógica. A seguir são apresentadas algumas das configurações
RAID mais usadas:
· RAI D0 – vários discos físicos combinados e apresentados como um
único volume ao servidor, onde os dados são divididos em pequenos
segmentos e distribuídos entre os mesmos. Esta configuração não
apresenta dispositivo de redundância e não deve ser usada como
R
e
c
e
b
a
 n
o
ti
fic
a
ç
õ
e
s 
:)
Alta disponibilidade no SQL Server http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=33296
4 de 18 07/02/2017 13:32
alternativa de alta disponibilidade;
· RAI D1 – os discos são espelhados no storage, mas apresentados ao
servidor como se fossem um só. O espelhamento garante a
disponibilidade no caso de falha de um dos discos;
· RAI D5 - vários discos físicos combinados e apresentados como um
único volume ao servidor garantindo a disponibilidade através de
paridade.
Nesta configuração, o bit de paridade é utilizado para garantir a
redundância e caso um dos discos fique indisponível, o volume único
apresentado continua respondendo.
A desvantagem dessa configuração é o desempenho. Este nem sempre
atende às demandas de uso intenso de escrita devido ao overhead do
cálculo de paridade.
Além disso, apesar de funcionar sem um dos discos, isso causa lentidão
pois os dados do disco faltante são calculados atravésdos discos ainda
disponíveis. Para entender o uso de paridade, vamos usar um array de
três discos e um dado representado pelo binário 10.
Ao realizar uma operação de escrita no conjunto de discos, no disco 1 é
escrito um bit 0, no disco 2, um bit 1. No terceiro disco, utiliza-se para
calcular a paridade o resultado de operação binária XOR (ou exclusivo). O
resultado de 1 XOR 0 é 1.
Caso o disco 1 falhe, o dado do mesmo pode ser reconstruído ao se fazer
a operação inversa entre o bit do disco 2 e o bit do disco 3 de paridade.
Obviamente, o algoritmo utilizado pelos sistemas de storage é mais
complexo do que o do exemplo, mas com o exemplo pode-se ter uma
ideia do funcionamento da paridade.
Isto serve para mostrar também o porquê dessa configuração não ser
recomendada para bancos de escrita intensa, pois a cada escrita, a
paridade deve ser calculada aumentando o tempo para persistir os
R
e
c
e
b
a
 n
o
ti
fic
a
ç
õ
e
s 
:)
Alta disponibilidade no SQL Server http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=33296
5 de 18 07/02/2017 13:32
dados.
No caso de falha de um disco, o tempo de leitura também fica
comprometido pois para extrair o bit do disco que falhou, deve ser feito o
cálculo inverso com os dados dos discos disponíveis;
· RAI D6 – funciona como o RAID5, porém utiliza dois bits de paridade,
permitindo assim a perda de dois discos e ainda assim mantendo o
conjunto de discos acessível;
· RAI D 1 0 ou 1 + 0 – discos espelhados dois a dois e depois
configurados em stripe (os dados são subdivididos em segmentos
consecutivos que são escritos sequencialmente através de cada um dos
discos), sendo apresentados como um único volume ao servidor;
· RAI D 0 1 0 u 0 + 1 – discos configurados em stripe e espelhados,
configurando assim um único volume que é apresentado ao servidor.
AlwaysOn Failover Cluster Instances (AOFCI)
Esta tecnologia fornece proteção contra falhas no nível de instância
(servidor), e não apenas em nível de banco de dados. O Windows Server
Failover Cluster (WSFC) utiliza dois ou mais servidores ligados a um
armazenamento em comum, os quais são chamados nodes ou nós.
Devido ao fato de todos os nós precisarem acessar os mesmos discos, é
utilizada uma SAN nesta configuração. Em ambos os nós, o Windows
fornece o serviço de cluster que controla, entre outros recursos, o uso do
storage comum entre os nós.
Além desse controle, o cluster também apresenta o serviço de nome
virtual e IP virtual, o que permite que o acesso ao cluster seja sempre
feito pelo nome e/ou IP virtual, ficando transparente para o usuário em
que nó o recurso está.
O software de cluster agrupa os itens necessários ao funcionamento da
instância em um grupo de recursos. Recursos são discos compartilhados,
R
e
c
e
b
a
 n
o
ti
fic
a
ç
õ
e
s 
:)
Alta disponibilidade no SQL Server http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=33296
6 de 18 07/02/2017 13:32
nome virtual, IP virtual e os serviços do SQL Server. Este grupo de
recursos pode ser controlado por cada nó exclusivamente em um certo
momento.
Além dos recursos de disco, de serviço, de nome virtual e de IP virtual, o
cluster utiliza dois importantes componentes para seu funcionamento.
Um deles é a rede de comunicação entre os nós, chamada heartbeat, que
normalmente é dedicada a este fim.
Ela permite que os nós se monitorem para saber qual está ativo e, numa
eventual falha, qual deles pode assumir. O segundo componente é o
quórum, que é um disco dedicado do cluster utilizado para determinar o
número de falhas de nó que o cluster pode sustentar.
Em resumo, os nós do cluster usam o heartbeat para se comunicar e, em
uma eventual falha do nó ativo, as informações contidas no quórum são
utilizadas para decidir qual nó pode assumir os recursos do grupo.
O AlwaysOn Failover Instance Cluster é instalado e configurado em um
servidor que já está rodando o software de cluster do Windows, o
chamado Windows System Failover Cluster (WSFC). O software de
cluster controla a instância de qual nó fica ativa acessando os recursos e
disponibilizando serviços de SQL Server para os usuários.
Suponhamos que os servidores físicos SRV01 e SRV02 tenham
respectivamente os IPs 10.192.30.10 e 10.192.30.11 e ambos estão
ligados em um storage SAN. O cluster é configurado neste Windows e
são criados recursos de nome e IP virtual nestes servidores, que são
respectivamente SRV10 e 10.192.30.12. O cluster será acessado pelo
nome e/ou IP virtual, independentemente de qual servidor físico controla
os recursos de disco, nome e IP virtual.
Instalando o SQL Server também em cluster, será necessário definir um
grupo de recursos dedicado ao SQL Server.
Este grupo também terá nome virtual e IP virtual, que no nosso exemplo
são respectivamente SRVDB10 e 10.192.30.20. Supondo o nome de
R
e
c
e
b
a
 n
o
ti
fic
a
ç
õ
e
s 
:)
Alta disponibilidade no SQL Server http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=33296
7 de 18 07/02/2017 13:32
instância SQLCL10, os acessos a esta instância deverão ser ao
SRVBD10\SQLCL10 independente da instância estar ativa no servidor
SRV01 ou SRV02.
O tempo de resposta de um cluster à falha do nó ativo é o tempo de
detecção da falha mais o tempo que os serviços demoram para subir no
novo nó ativo. Esta ação é chamada failover e é automática na
configuração do cluster. Pode-se também fazer a troca de papéis entre os
nós do cluster manualmente (move group). O termo “group” evidencia o
fato de que a mudança dos recursos é feita por grupos, ou seja, todos os
recursos (storage, nome virtual e IP virtual) do cluster são movidos em
conjunto.
Uma das grandes vantagens desta configuração é que o software de
cluster tem toda a inteligência para configurar e administrar o SQL
Server, sendo basicamente necessária a instalação inicial do SQL Server
em cluster para poder utilizar seus benefícios.
Nos itens seguintes do artigo será possível perceber que as outras
soluções exigem um certo grau de esforço por parte do DBA para
implementar com sucesso a alta disponibilidade.
Além disso, as outras soluções trabalham no nível do banco de dados e
não da instância, o que também pode aumentar a carga de trabalho do
DBA para configurar e utilizar as outras tecnologias de alta redundância.
Como a SAN tem redundância de hardware de disco, de elementos de
rede e outros dispositivos, ela elimina o ponto único de falha de disco e
como o cluster utiliza mais de um servidor, o ponto único de falha de
servidor também é eliminado.
Por outro lado, redes de armazenamento SAN são estruturas complexas
e, por isso, com alto custo de implantação, configuração e manutenção.
Assim, o ganho em disponibilidade tem como contrapartida o alto custo
de hardware e software se comparado às outras soluções.
R
e
c
e
b
a
 n
o
ti
fic
a
ç
õ
e
s 
:)
Alta disponibilidade no SQL Server http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=33296
8 de 18 07/02/2017 13:32
Log Shipping
Log shipping é uma tecnologia de redundância que existe desde a versão
2005 do SQL Server. Ela opera no nível de banco de dados e pode ser
usada para manter uma ou mais bases standby (chamados secondary
database) de uma única base de produção, chamada primary database.
A construção do log shipping envolve, inicialmente, o backup de uma
base principal no servidor principal e posteriormente um restore deste
backup em servidor secundário. Esta fase pode ser feita no momento ou
antes da configuração do log shipping.
Fazer este backup antes permite um maior controle sobre esta fase, o
que é uma vantagem para basesgrandes pois para elas os tempos de
backup e restore em disco podem ser maiores do que o tempo disponível
para configurar o log shipping.
Além disso, por ser uma solução no nível de banco de dados, objetos
externos ao banco como logins e jobs envolvendo a base do log shipping,
por exemplo, não são levados para o servidor secundário
automaticamente, forçando o DBA a realizar estas transferências
manualmente antes de configurar o mesmo.
A transferência de logins é importante para não haver usuários de banco
sem logins associados. Os jobs, se contiverem DML, não podem ser
executados na base secundária enquanto ela está em modo read only,
porém uma vez que esta base se torna a base principal e fica em estado
online, os jobs podem ser executados.
Caso a fase de backup e restore seja feita antes de se iniciar a
configuração do log shipping, a base secundária deve ser restaurada com
a opção NORECOVERY. Cabe aqui uma distinção entre restore e recovery.
Ao se usar o comando RESTORE DATABASE sem definir informações de
recovery, na fase de restore os datafiles que estão em um backup são
lidos e copiados para disco.
R
e
c
e
b
a
 n
o
ti
fic
a
ç
õ
e
s 
:)
Alta disponibilidade no SQL Server http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=33296
9 de 18 07/02/2017 13:32
Posteriormente a esta fase, é realizado o recovery, ou seja, rollback de
transações não comitadas e o roll forward de transações comitadas que
estão pendentes na mídia de backup.
Ao final do recovery, a base é colocada em estado online e fica acessível.
No recovery, o transaction log do backup é lido e aplicado aos dados. Se
no comando RESTORE for feito o uso da função NORECOVERY, a fase de
recovery não ocorre completamente.
Nas configurações do SQL Server de log shipping, um terceiro servidor
opcional (chamado Monit or) pode ser configurado para realizar tarefas de
monitoramento do log shipping. Caso não seja possível utilizar um
servidor exclusivo para este fim, o secondary server pode realizar o papel
de Monitor.
Em linhas gerais, o log shipping funciona da seguinte maneira:
1. Na etapa inicial de configuração, no Primary Server é realizado um
backup full da base a ser replicada em pasta compartilhada;
2. No Secondary Server, o arquivo de backup do item anterior é utilizado
para criação de base réplica através de restore, sem que a base réplica
seja aberta para alterações. Os passos 1 e 2 podem ser feitos no
momento da configuração inicial do log shipping, ou antes disso para
maior controle do processo de backup/restore;
3. Backups periódicos do transaction log são gerados em disco no
Primary e depois copiados para o Secondary automaticamente por jobs
do SQL Server;
4. Com as cópias dos backups do transaction log já no Secondary, é feito
o restore de transaction log na base no Secondary, deixando-a em um
estado em que futuros backups de transaction log sejam restaurados.
Para que a transmissão de arquivos entre Primary e Secondary ocorra, é
necessário que os backups de transaction log fiquem em uma pasta
compartilhada que todos os servidores envolvidos no log shipping
R
e
c
e
b
a
 n
o
ti
fic
a
ç
õ
e
s 
:)
Alta disponibilidade no SQL Server http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=33296
10 de 18 07/02/2017 13:32
possam acessar.
Uma vez configurado o log shipping, as tarefas de cópia e restore de
transaction log são feitas automaticamente através de jobs do SQL
Server e o monitoramento é feito através do Management Studio.
Existem ambientes em que o backup é feito em fita, seja localmente no
servidor ou em robôs. Caso o servidor configurado com log shipping
esteja em um ambiente onde o padrão é o backup de SQL Server em
fita, os servidores do log shipping devem utilizar backup em disco.
Com isto, o software de backup, em vez de fazer backup do SQL Server
direto para fita, deve fazer backup em fita dos arquivos gerados pelo
backup do SQL Server.
Uma vantagem do log shipping é que ele pode ter mais de uma base
replicada em servidores instalados em locais distantes. O fato do backup
ficar em disco pode ser uma desvantagem, pois é necessário espaço para
manter backups full e de transaction logs, aumentando o custo de
storage.
Database mirroring
Esta é uma tecnologia que fornece proteção no nível do banco de dados,
assim como o log shipping. Por ser uma proteção em nível de banco de
dados, os cuidados a entidades externas ao banco como backup, restore
e database users órfãos são as mesmas do log shipping.
A diferença para o log shipping é que, após o restore inicial, não é
necessário ter um compartilhamento de rede para manter e compartilhar
os backups de transaction log pois o mirror não depende destes arquivos
para funcionar.
Como esta tecnologia não será mantida em futuras versões do SQL
Server, deve-se tomar cuidado com uso de mirror em ambientes que
sofrerão upgrade.
R
e
c
e
b
a
 n
o
ti
fic
a
ç
õ
e
s 
:)
Alta disponibilidade no SQL Server http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=33296
11 de 18 07/02/2017 13:32
O database mirroring é uma solução para aumentar disponibilidade
através do suporte quase instantâneo a falhas. Pode ser usado para
manter uma única base de standby ou mirrored database,
correspondente a uma base de produção chamada principal database.
Cada base da parceria principal/mirrored fica em instâncias distintas e,
para garantir disponibilidade, devem ficar em servidores distintos.
No mirroring, toda operação de DML executada na base principal é
refeita no mirrored database. Refazer envolve enviar um conjunto de
transaction log records ao server mirror, que aplica os logs records no
mirror database. O servidor principal compacta o conjunto de transaction
log records antes de enviar ao mirror server, otimizando o uso de rede.
O mirroring possui dois modos de funcionamento:
· Sín cr on o – neste modo, a finalização da transação ocorre apenas
quando ela é confirmada nas bases principal e mirrored, trazendo desta
forma possível latência no tempo de resposta. Este modo é chamado
high-safety pois garante que as bases estão no mesmo estado
transacional a qualquer momento;
· Assín cr on o – neste modo, assim que o principal servidor envia o log
de uma transação para o mirror server, ele ao mesmo tempo envia
confirmação ao cliente sem aguardar um reconhecimento vindo do mirror
server.
Este modo é chamado também de high-performance e é útil em cenários
de recuperação de desastres no qual a distância entre os pares do mirror
é significativa, pois a latência ou mesmo queda de rede entre os
servidores não causa grande impacto no funcionamento do servidor
principal.
Este modo deve ser utilizado com cuidado pois, dependendo do caso, a
mudança de papéis entre principal e mirrored pode causar perda de
dados.
A ação de troca de papéis entre principal e mirror é chamada failover. O
R
e
c
e
b
a
 n
o
ti
fic
a
ç
õ
e
s 
:)
Alta disponibilidade no SQL Server http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=33296
12 de 18 07/02/2017 13:32
modo high safety ou síncrono pode ser usado com failover manual ou
failover automático. O failover manual pode ser feito quando as bases
estão sincronizadas porque se a instância do servidor mirror ficar inativa,
a instância principal trabalha sem problemas, mas exposta a falhas.
Se o servidor principal cair, o mirror é suspenso, mas o serviço pode ser
forçado para o servidor mirror com possível perda de dados pois eles
poderiam não estar sincronizados no momento da queda do servidor
principal.
A melhor forma de usar o modo síncrono é com failoverautomático.
Nesta configuração, além dos servidores principal e mirror, existe uma
terceira instância (chamado Witness) que é usada no quórum do
conjunto. Este quórum é utilizado para saber qual dos nós deve ser o
principal em um determinado momento.
Esta configuração utiliza discos distintos para cada servidor, ou seja,
cada parceiro do mirror pode estar ligado a volumes distintos da SAN ou
cada servidor pode ter seu conjunto local de discos.
A independência de armazenamento compartilhado traz a vantagem que
os servidores, além de poderem evitar o uso de SAN de alto custo,
podem estar localizados a grandes distâncias, possibilitando seu uso
como solução de disaster recovery.
AlwaysOn Availability Group (AOAG)
Primeiramente você deve estar se perguntando o porquê deste item de
AlwaysOn não estar na sequência do assunto AlwaysOn Failover Cluster
Instance. A resposta é que o AlwaysOn Availability Group (AOAG) é uma
alternativa ao mirroring, o qual acabamos de explicar.
Entender o mirroring ajuda a entender o AOAG pois seu funcionamento é
parecido, porém os availability groups têm vantagens em relação ao
mirror e acreditamos que sejam estas melhorias que levaram a Microsoft
a descontinuar o mirror.
R
e
c
e
b
a
 n
o
ti
fic
a
ç
õ
e
s 
:)
Alta disponibilidade no SQL Server http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=33296
13 de 18 07/02/2017 13:32
A funcionalidade AOAG está disponível no SQL Server a partir da versão
2012 e fornece proteção contra falha de database. Os principais
benefícios do AOAG são:
· No SQL Server 2012 podem haver até cinco réplicas de uma base
enquanto no SQL 2014 podem haver nove réplicas de uma base;
· A réplica pode ser configurada como uma base somente leitura, que
pode ser útil para desonerar a base principal em caso de consultas que
consumam muito recurso do servidor, como as de geração de relatório ou
de carga para data warehouse;
· A réplica também pode ser utilizada para backups, desonerando a base
principal;
· Uso de listener para manter a acessibilidade das bases
independentemente da localização dela. Desta forma, a base pode estar
online em qualquer um dos servidores do grupo e o acesso à mesma é
fornecido pelo listener (processo que roda no servidor e fica ouvindo
pedidos de conexão na porta definida).
O AOAG está disponível na versão Enterprise e tem como um dos
pré-requisitos o Windows System Failover Cluster nos servidores
envolvidos na configuração.
Além disso, cada réplica deve ficar em um nó distinto do cluster. A base
que fica em estado de escrita e leitura é chamada de primária e a base
replicada é chamada secundária.
O funcionamento é o mesmo do mirror, onde o setup inicial envolve o
backup da base original no servidor primário e o restore da mesma no
servidor secundário com a opção WITH NORECOVERY. Esta permite que
na base replicada possam ser aplicados registros de log vindos do
primary database. Após o setup inicial, sequências de registros do
transaction log são enviados do servidor primário para o secundário, o
qual aplica estes registros à base replicada.
R
e
c
e
b
a
 n
o
ti
fic
a
ç
õ
e
s 
:)
Alta disponibilidade no SQL Server http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=33296
14 de 18 07/02/2017 13:32
Availability group é um grupo de um ou mais bancos de dados que
possuem uma cópia dos mesmos em outro servidor e o SQL Server
mantém a sincronização dos bancos. O failover das bases ocorre em
grupo. Por exemplo, pode-se colocar várias bases em um Availability
Group e estas bases são chamadas availability databases, que passam
por failover todas juntas.
O availability group suporta dois modos de disponibilidade, a saber:
· Assín cr on o ( Asyn ch r on ou s- com m i t m ode) – solução de
recuperação de desastres que funciona bem quando as réplicas de
disponibilidade são distribuídas por distâncias consideráveis.
Se cada réplica secundária está sendo executada em modo assíncrono, a
réplica primária não espera que nenhuma das réplicas secundárias
escreva o log em disco.
Em vez disso, imediatamente depois de escrever o escrever o registro de
log no arquivo local, a réplica primária envia a confirmação da transação
para o cliente. A réplica primária é executada com o mínimo de latência
de transação em relação a uma réplica secundária que está configurada
para o modo assíncrono.
Se o primário atual está configurado para assíncrona, ele irá fazer
commit das operações de forma assíncrona para todas as réplicas
secundária independentemente de suas configurações de modo de
disponibilidade individuais;
· Sín cr on o ( Syn ch r on ou s- com m i t m ode) – prioriza a alta
disponibilidade em relação ao desempenho à custa do aumento da
latência da transação. Sob o modo síncrono, as transações enviam ao
cliente a confirmação da transação após a réplica secundária ter escrito
em disco o registro de log.
Quando a sincronização de dados começa em um banco de dados
secundário, a réplica secundária começa a aplicar registros de log de
transação vindas do banco de dados primário correspondente.
R
e
c
e
b
a
 n
o
ti
fic
a
ç
õ
e
s 
:)
Alta disponibilidade no SQL Server http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=33296
15 de 18 07/02/2017 13:32
Assim que todos os registros de log foram escritos no disco, o banco de
dados secundário entra no estado sincronizado. A partir daí cada nova
transação é escrita em disco pela réplica secundária antes do registro de
log ser gravado no arquivo de log local.
Quando todos os bancos de dados secundários de uma determinada
réplica secundária estiverem sincronizados, o modo síncrono suporta
failover manual e, opcionalmente, o failover automático.
Como se pode ver, o funcionamento de controle transacional do AOAG é
parecido com o do mirror, no entanto, o AlwaysOn possui vantagens
como o uso do listener, possibilidade de mais de uma réplica e uso da
base secundária para desonerar servidor principal. Como bases replicadas
podem ser usadas como disaster recovery, o monitoramento do estado
do funcionamento das réplicas é muito importante.
Etapas pré-con�guração
Exceto pelo AlwaysOn Failover Instance Cluster, as outras alternativas
citadas demandam ações do DBA como backup e restore, migração de
logins e de jobs.
A etapa de backup e restore, conforme comentado, pode ser manual ou
automática. Muitos recomendam fazê-la manualmente para maior
controle do técnico. A seguir explicaremos como realizar estas etapas.
Back u p e Rest o r e :
1. No servidor original, realizar backup normal em disco:
BACKUP DATABASE DB01 TO DISK = ‘C:\TEMP\DB01.BAK’ 
2. No servidor destino (secundário ou mirrored), realizar o restore com a
opção NORECOVERY:
RESTORE DATABASE DB01 FROM DISK = ‘C:\TEMP\DB01.BAK’ WITH NORECOVERY 
R
e
c
e
b
a
 n
o
ti
fic
a
ç
õ
e
s 
:)
Alta disponibilidade no SQL Server http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=33296
16 de 18 07/02/2017 13:32
A partir desse ponto, podemos aplicar os registros de log vindos de um
backup de log no caso do log shipping ou registros de log diretamente de
outro servidor, nos casos de mirror e AlwaysOn availability group.
No SQL Server, o database user de um banco está vinculado a um login
do SQL Server, ou seja, quando uma base é transportada de um servidor
para outro por backup e restore, os database users são migrados, mas os
logins da instância não.
Se a base for restaurada em outro servidor, os database users ficam
órfãos e, por este motivo, no caso de restore de base em servidor
distinto do original, os logins devem ser recriadosmanualmente.
O fato de existirem usuários órfãos não impede a alteração da base para
online, mas as permissões no banco devem ser revistas e como as
aplicações usarão sempre o mesmo login, deve-se recriar os logins no
servidor destino.
Para migrar os Jobs, deve-se gerar o script do mesmo no servidor origem
e executar no servidor destino o script criado.
Cada uma das opções de alta disponibilidade do SQL Server possui
características distintas de arquitetura, manutenção e custo. Não existe
uma resposta única às necessidades de disponibilidade.
Elas devem ser escolhidas de acordo com as necessidades de negócio,
recursos financeiros disponíveis e conhecimento da equipe de suporte
sobre as alternativas de alta disponibilidade.
Lin k s
Opções de a l t a d i spon ib i l i dade do SQL Ser v er
ht tp: / / msdn.microsoft .com/ en-us/ library/ ms190202(v= sql.110) .aspx
Si st em as de r edu n dân ci a de d i sco
ht tp: / / www.infowester.com/ raid.php
R
e
c
e
b
a
 n
o
ti
fic
a
ç
õ
e
s 
:)
Alta disponibilidade no SQL Server http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=33296
17 de 18 07/02/2017 13:32
por Alex m. Bastos
Revista SQL Magazine lover 
R
e
c
e
b
a
 n
o
ti
fic
a
ç
õ
e
s 
:)
Alta disponibilidade no SQL Server http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=33296
18 de 18 07/02/2017 13:32

Continue navegando

Outros materiais