Fala galera, tudo bem? Quando você escuta sobre alta disponibilidade e recuperação de desastres no SQL Server muitas dúvidas podem surgir e nesse post eu quero te explicar de forma simples o que são cada um desses termos e se eles fazem coisas diferentes.
Não somente para quem esta começando na área de banco de dados, mas também uma boa parte do pessoal que já é de TI e até mesmo da área de dados se confundem com os termos. Por isso é importante que você aprenda desde já, além de saber da forma correta você poderá planejar melhor qual tipo de ação aplicar em cada cenário.
Eu divido em dois tipos de ação: Proativo e Reativo.
High availability (Alta disponibilidade) chamado no dia a dia de HA é uma ação proativa que mantem um ambiente disponível para uso (disponível em todos os sentidos, software, hardware, energia, link de internet, SQL Server...). Internet banking por exemplo precisa estar disponível o tempo todo para que em qualquer momento do dia o cliente possa executar uma transação bancária, para garantir que o sistema bancário sempre fique disponível ações de alta disponibilidade são necessárias. Resumindo, quando você precisar usar tem que estar disponível!
Quando falamos de SQL Server especificamente existem algumas funcionalidades/tecnologias que o DBA SQL pode usar para garantir que o ambiente fique sempre disponível, vale ressaltar que não existe 100%, quando falamos sempre disponível trabalhamos sempre com uma certa folga mas que na maioria dos casos são imperceptíveis.
As funcionalidades que podem ser usadas para alta disponibilidade no SQL Server são:
- Always On Failover Cluster Instance (FCI)
- Always On Availability Group (AG)
Disaster Recovery (recuperação de desastres) chamado no dia a dia de DR é uma ação mais reativa (contém também um pouco de proatividade, mas no geral é reativo), o DR é a sua capacidade de se recuperar de um problema com o seu ambiente, você tem um planejamento de ações a tomar para que quando o seu ambiente pare de funcionar você saiba exatamente o que fazer e execute da forma mais rápida possível fazendo com que o ambiente volte a funcionar o quanto antes e com a menor "perda de dados possível". Em resumo, é ter um plano de ações para deixar o cliente o menor tempo possível parado em caso de problemas. Pensa em um escritório de contabilidade que precisa enviar arquivos para a receita pelo sistema e o HD do servidor de banco de dados SQL Server onde o banco de dados esta alocado queima, esta encerrando o ultimo dia do mês e é preciso enviar os arquivos nesse dia, pois do contrário os clientes podem pagar uma multa para o governo por atrasar o envio, com um bom plano de DR o DBA SQL pode recriar o ambiente em poucos minutos ou poucas horas dependendo do que foi planejado e o escritório conseguirá voltar a usar o sistema e transmitir os arquivos para a receita.
Essas são algumas alternativas que podem ser usadas para recuperação de desastres no SQL Server:
- Copia de backups para um novo servidor já com SQL Server instalado
- Log shipping (fiz um post mostrando como configurar, você pode ver clicando aqui)
- Imagem da máquina com cópia de arquivo de backup
Você já deve estar pensando que o melhor é o HA e que em todos os ambiente compensa ter mais um HA do que um plano de recuperação. Sim, a minha resposta seria essa também, mas é preciso levar algumas coisas em consideração.
O principal ponto que gostaria de destacar é que tudo tem um custo, o HA é uma solução mais completa porém é muito mais cara também, esse custo envolve recursos e licenças. As soluções de HA são usadas sim mas em sua maioria por grandes empresas onde o tipo de negócio requer essa disponibilidade do ambiente praticamente o tempo todo. O investimento nesse tipo de solução muitas vezes inviabiliza projetos para empresas de médio porte, nem levo em consideração as de pequeno nesse caso, "o molho sai mais caro que o peixe".
Outra situação que deve ser levada em conta é que uma solução de HA não envolve apenas o SQL Server, além do custo relacionado ao SQL que comentei anteriormente, existe todo o entorno. Veja, não adianta eu ter um banco de dados SQL em um FCI se quando acabar a energia do prédio eu não tiver um gerador para manter tudo ligado, tudo será desligado pela falta de energia, então um projeto de HA vai muito além, por isso que na grande maioria dos casos são empresas realmente grandes que utilizam.
Na grande maioria das empresas nós DBAs temos que trabalhar com a ideia do DR, e apesar de não ser uma solução de disponibilidade atende muito bem muitos cenários, eu já recuperei um ambiente em menos de 30 minutos com uma solução de DR. Se bem planejada, treinada, validada a solução, o DBA já pode ficar bem mais tranquilo. Diante do que o cliente te colocar você pode planejar as ações e criar um plano de recuperação. Vamos para um exemplo.
Uma farmácia tem ali o seu sistema e ela consegue "tocar" o atendimento por até 30 minutos sem o sistema funcionar, o DBA poderia usar um log shipping (replicar os dados) para um outro servidor, poderia até ser inferior em relação a recursos, se o "oficial" queimou, deu algum problema, basta ativar o "secundário" e apontar a aplicação para lá, você valida esse processo e vê que leva no máximo 15 minutos para essa ação. Com isso você já consegue atender a necessidade do cliente e com um custo bem baixo.
Cada um dos dois tem a sua função e serve para atender uma necessidade específica. Agora você já sabe a diferença entre eles.
Gostou do post? Compartilha com seus colegas que querem ser um DBA SQL Server!
Nos acompanhe em nossas redes sociais!
Grupo VIP Telegram: DBA On boarding
Youtube(vídeos novos todas as quartas): DBA On boarding
Face & Instagram(conteúdo diário): DBA On boarding
Até a próxima, tchau!
Comentarios