O espelhamento do SQL Server é confiável (alta disponibilidade)?

3

Estou avaliando o Espelhamento do SQL Server 2008 (async) para fornecer melhor disponibilidade. Gostaria de saber, com base em sua experiência, se o espelhamento do SQL Server é uma tecnologia confiável e madura. Failover automático não é obrigatório, mas é um bom para ter. Portanto, estou avaliando o mecanismo de espelhamento e o mecanismo de failover automático separadamente.

  • O mecanismo de espelhamento é confiável? Requer configuração e ajuste contínuos?

  • A opção de failover automático é confiável? Requer configuração e ajuste contínuos?

Atenciosamente,

    
por Sly 03.08.2009 / 16:41

1 resposta

12

Sim, o espelhamento de banco de dados é uma tecnologia confiável e está sendo usado por muitos clientes corporativos atualmente. Ajudei as pessoas a configurar o espelhamento tanto dentro quanto fora da Microsoft - eu costumava ter o espelhamento de banco de dados quando eu era responsável pelo Mecanismo de Armazenamento do SQL Server.

Como acontece com qualquer tecnologia de HA, você precisa entender seus requisitos e limitações antes de escolher tecnologias para ajudá-lo a implementar uma estratégia de alta disponibilidade. Se você escolher tecnologias antes de fazer isso e tentar adaptá-las às suas necessidades, não terá uma estratégia bem-sucedida.

Acabei de escrever um white paper de 35 páginas sobre HA com o SQL Server para a equipe do SQL - ele será publicado antes do SQL PASS. Enquanto isso, para ter uma idéia do tipo de pergunta a ser feita, veja este post no blog:

  • Quantos bancos de dados existem no ecossistema do seu aplicativo? Ou seja quais recursos precisam ser todos reprovados de uma só vez. Mais de 2 a 3 e você pode ver o cluster de failover com a replicação SAN.
  • Fora de um único ecossistema de aplicativos, quantos bancos de dados você deseja espelhar? Vai mais de 10 e você começará a ver problemas com threads de trabalho, memória e espera no buffer de envio de espelhamento compartilhado.
  • Qual é a taxa de geração de log de transação?
  • Qual é a largura de banda e a latência da rede? Essas duas coisas determinam se o espelho estará em sincronia com o principal - e quanto de perda de dados você está observando no modo assíncrono (de uma grande fila de envio) ou degeneração do throughput da carga de trabalho de esperar que as transações sejam endurecidas espelho (para o modo de sincronização)

E assim por diante.

Depois de configurar o espelhamento, você precisará monitorá-lo para garantir que ele funcione dentro dos parâmetros desejados - as coisas mais importantes a serem monitoradas são as filas SEND e REDO - que fornecem uma medida do quanto atrás do espelho e quanto tempo um failover levará, respectivamente. Não precisa de sintonização contínua em cenários comuns, mas YMMV como em qualquer tecnologia.

Failover automático - depende. Há uma variedade de cenários a serem considerados, em termos de quais links de rede ficam inativos, quais parceiros de espelhamento diminuem e qual é a falha real. Confira esta postagem do blog para obter uma lista de falhas: Q & A # 3 do mecanismo de pesquisa: tipos de failover de espelhamento de banco de dados e tempos limite de parceiro .

Isso tudo foi um pouco difícil, mas para resumir, sim, o espelhamento é confiável e não deveria precisar de ajuste e monitoramento excessivos. O SQL Server 2008 adicionou algumas novidades interessantes para ajudar - a compactação do fluxo de logs e o reparo automático de páginas - que eu escrevi em meu blog na minha Espelhamento de banco de dados na categoria post de blog.

Por fim - há vários bons whitepapers que você deve consultar (consulte os links de espelhamento de banco de dados em nossa página de links de hipertexto de whitepapers - Eu escrevi o sobre a combinação de espelhamento de banco de dados com replicação transacional no SS2008) e um novo livro Espelhamento do Pro SQL Server .

Espero que isso ajude!

    
por 03.08.2009 / 16:58