Lucas's profileLucas Souza [MCP | MCTS ...PhotosBlogListsMore Tools Help

Blog


    September 20

    Alta disponibilidade no SQL Server

    A definição básica de Hight Availability (Alta-Disponibilidade) pode ser descrito de forma simples, ou seja, é a solução que permite o hardware ou software em caso de falha continue sendo executado ou melhor, funcionando. A solução de alta-disponibilidade é funcionável através da redundância de drivers, memória ou CPU no servidor.

    Particulamente quando definimos a redundância dos díscos rígidos em nossa aplicação geralmente aplicamos a tecnologia RAID (Redundant Array of Inexpensive Disks), ou seja, esta tecnologia tem por objetivo nos oferecer diversas opções relacionado á perfomance, segurança, alta-disponibilidade no sistema operacional (S.O), todos níveis de RAID requerêm pelo o menos dois discos rígidos dísponiveis, sendo que alguns é necessário termos três ou quatro.

    RAID 0: Aonde em todos os discos são escritos numa só vez. A parte superior deste nível RAID é bastante rápida e econômica, porém em caso de falha de hardware os díscos irão perder as informações processadas.

    RAID 1: Aqui é necessário ter pelo menos dois discos rígidos, os dados são escritos primeiramente ao disco um e também será escrito ao disco dois numa só vez, este level tem por objetivo nos garantir ótimo benefício com relação á alta-disponibilidade, ou seja, em caso de falha as informações não serão perdidas, com relação á perfomance não é uma boa escolha.

    RAID 5: É o mais comum usado, nos garante ambos as funcionalidades de RAID 0 e 1, porém tem o menor custo por gigabyte, o RAID 5 requer pelo o menos três díscos rígidos, este lével (RAID 5) é escrito em todos discos com exceção á um.

    RAID 6: É um novo level RAID dísponivel dentro no mundo de banco de dados, este level requer pelo o menos quatro dísco rígido, similar ao RAID 5 com exceção de que usa dois drivers separados.

    RAID 10: É o mais caro entre todos dísponiveis, possuí alta redundância e execução, requer pelo o menos quatro dísco rígido;

    Veja bem, acima mostra-se cinco tipos distintos de RAID, Uma das perguntas que sempre vem a mente é: Qual deles é o melhor¿ Esta resposta pode ser facilmente respondida: Qual objetivo de sua aplicação¿, perfomance¿, alta-disponibilidade¿  segurança¿, Se necessário for buscar sua resposta pergunta á si mesmo e adquira o que submeter a sua aplicação.

    Opções de Alta-Disponibilidade
    Existem diferentes opções de alta-disponibilidade que garante ao usuário confiabilidade em sua aplicação comercial e além disso, cada opção possuí objetivo distinto por mais que pareçam similares.

    Log Shipping (overview)
    Dísponivel em versões anteriores ao 2008, esta é uma das opções de alta-disponibilidade considerada mais antiga no SQL Server a qual tem por objetivo a efetuação de backup completo (full backup) do banco de dados e restaurá-lo em máquinas distintas.
    Vale lembrar que Log Shipping está dísponivel em todas edições do SQL Server 2008 cobradas, ou seja, Enterprise, Standard, WorkGroup, Web, e além disso, não requer hardware especial para funcionamento, no entanto é necessário termos dois servidores que estão usando hardwares iguais.
    OBS: SQL Server 2000 permite log-shipping apenas na versão Enterprise, já no SQL Server 2008 possuí em várias como foi descritas acima.

    Log Shipping é consistido por três operações:
    01) Backup do transaction log na instância do servidor primário;
    02) Cópia do arquivo transaction log para a instância do servidor secundário;
    03) Restaurar o backup do transaction log na instância do servidor secundário.

    Para utilizar o log-shipping siga os passos abaixo:

    01) Na janela Object-Explorer, clique com o botão direito encima do banco de dados desejado, em seguida Tasks, a imagem abaixo ilustra de forma clara.


    Figura 1.0 (Object Explorer – Tasks(Shipg Transaction Logs))

    Apartir de já podemos configurar/alterar algo referente na aplicação pelo qual utiliza o log shipping.

    Mirroring(overview)
    Relativamente é outra opção de alta-disponibilidade que foi introduzida no SQL Server 2005 que garante uma solução altamente confiável e robusta. Existe diversos caminhos para configurarmos o espelhamento (mirroring), um deles seria o modo assícrono (asyncrhronous mode), e / ou síncrono (syncrhronous mode).
    Ultimamente o modo síncrono
    (
    syncrhronous mode). tem sido mais utilizado em aplicações pelas quais existem apenas dois servidores de banco de dados, isto devido aos tipos de transações de um enviando para o outro, no caso ambos são isolados, ou seja, as mudanças criadas/alteradas no servidor primário são escritas também no servidor secundário (mirroring) e assim enviando o ‘agradecimento’ de que a aplicação sofreu alteração ou algo similar.
    Já em relação ao modo assícrono(asyncrhronous mode) os comandos são rodados primeiramento no servidor primário e em seguida é enviado o ‘agradecimento’  de volta ao cliente, depois que a transação for executa com sucesso rapidamente será posta ao servidor de espelhamento (mirror server).

    Benefícios:
    * Alto nível da proteção a dados;
    * Garante alta-disponibilidade de dados;
    * Garante dísponibilidade em banco de dados de produção durante atualizações.

    OBS:
    *
    Espelhamento de dados (Data Mirroring) pode ser utilizado apenas no modelo ‘recovery full’, ou seja, as opções de simple e bulk-logged não suporta espelhamento;
    * Não é possivel aplicar o espelhamento nos banco de dados master, msdb, tempdb ou model.

    Além disso o Data Mirroring pode ser utilizado com os seguintes componentes do SQL Server:
    * Replication;
    * Database snapshot;
    * Full-Text Catalogs;
    * Log-shipping.

    Para configurarmos o Data Mirroring clique com o botão direito no banco de dados desejado em seguida Tasks > Mirror como mostra a imagem abaixo.

     
    Figura 1.1 (Object Explorer – Tasks(Mirror))

    Desde já podemos iniciar nosso espelhamento no banco de dados desejado.

    Clustering
    Windows Clustering é viável ao Microsoft Cluster Service (MSCS), ou seja, é uma das tecnologias de alta-disponibilidade mais utilizada em aplicações de grande porte. O conceito de Windows Clustering é que você tenha únicamente configurado díscos rígidos para ambos os servidores de acesso, ou melhor, você instala e em seguida configura o Microsoft Cluster Service em ambos os servidores de cluster e após isto inicia a instalação do SQL Server utilizando a opção de Cluster como desejavelmente quer.

    O cluster está aplicado geralmente em dois ou mais servidores unidos mostrando-se como um único servidor, os servidores que estão conectados ao cluster permitem o compartilhamento de cargas de trabalho, permite unicamente um ponto de gerenciamento/operação e além disso nos garante um dirétorio altamente beneficiado e protegido, sendo assim o objetivo do Cluster é fornece um ambiente de Alta-disponibilidade.

    Para iniciar a instalação do Cluster juntamente com o SQL Server clique no link New SQL Server Stand-Alone Installation ou então abaixo dele, no link New SQL Server Failover Cluster Installation, a figura abaixo ilustra de forma mais viável.


    Figura 1.2 (SQL Server Installation Center – High-Availability)

    Apartir de então podemos escolher qual das opções acima satisfaz o nosso ambiente e  após isto aplicarmos.

    Links:

    Installing a SQL Server 2008 Failover Cluster:
    http://msdn.microsoft.com/en-us/library/ms179410.aspx

    White papers

    SQL Server 2008 Failover Clustering:
    http://sqlcat.com/whitepapers/archive/2009/07/08/sql-server-2008-failover-clustering.aspx

    SQL Server 2008 High Availability:
    http://www.microsoft.com/sqlserver/2008/en/us/high-availability.aspx

     

    []´s
    Lucas Souza

    Comments

    Please wait...
    Sorry, the comment you entered is too long. Please shorten it.
    You didn't enter anything. Please try again.
    Sorry, we can't add your comment right now. Please try again later.
    To add a comment, you need permission from your parent. Ask for permission
    Your parent has turned off comments.
    Sorry, we can't delete your comment right now. Please try again later.
    You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
    Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
    Complete the security check below to finish leaving your comment.
    The characters you type in the security check must match the characters in the picture or audio.

    To add a comment, sign in with your Windows Live ID (if you use Hotmail, Messenger, or Xbox LIVE, you have a Windows Live ID). Sign in


    Don't have a Windows Live ID? Sign up

    Trackbacks

    The trackback URL for this entry is:
    http://souzalucas.spaces.live.com/blog/cns!289B02192542DA52!573.trak
    Weblogs that reference this entry
    • None