Balanceamento de carga com o SQL Server

31

O que existe hoje para fazer o balanceamento de carga do Microsoft SQL Server no Windows Server e ser transparente para qualquer acesso programático. Isso é incorporado ou é necessário adquirir uma solução?

Estou tentando descobrir se existe hoje uma solução que torne isso muito fácil do ponto de vista dos servidores Web ou de outro acesso ao banco de dados no SQL Server.

RolandoMySQLDBA
fonte

Respostas:

31

Não há balanceamento de carga "padrão" configurado para o MS SQL Server que você possa executar por meio de um assistente.

Essa seria uma decisão da arquitetura do banco de dados e implementada no nível do banco de dados e não no servidor. As técnicas seriam:

  • Dimensionando / federando os servidores de banco de dados
  • Particionamento
  • Descarregue seus requisitos de relatório
  • Talvez replicação

Se alguém discordar, gostaria de ver um artigo de uma figura conhecida e respeitada do MS SQL dizendo que clustering é balanceamento de carga. Os artigos citados acima não mencionam o balanceamento de carga. Por exemplo, A Microsoftie (Chas Boyd) diz que não está aqui .

Minha pergunta para o OP seria: que tipo de carga você espera?

Os servidores de banco de dados geralmente têm entrada e saída de memória e, portanto, a configuração adequada do disco (com grupos de arquivos apropriados) e o máximo de RAM possível vão muito além de qualquer solução acima.

Não se esqueça: o SQL Server 2005 / Windows 2003 Enterprise de 32 bits vai para 32 GB de RAM (dos quais você teria um cache de dados de 26 a 28 GB) e você não é limitado pelas letras das unidades devido aos pontos de montagem do NTFS. Quanto a x64 ...

gbn
fonte
22

Primeiro eu gostaria de esclarecer algumas coisas, se eu puder….

O SQL Server Clustering é uma tecnologia de disponibilidade criada sobre o Windows Clustering. Ele fornece redundância no nível do hardware e não tem relação com a técnica conhecida como balanceamento de carga, ou seja, distribuição de uma carga de processamento.

Além disso, o espelhamento de banco de dados e o envio de logs também são tecnologias para implementar principalmente a disponibilidade de formas variadas.

Agora na pergunta original ...

Infelizmente, não existe uma solução pronta para usar para o balanceamento de carga no SQL Server.

Você pode usar as Tecnologias de Replicação do SQL Server para implementar um ambiente de banco de dados distribuído que também leva em consideração a distribuição do carregamento do processamento de transações. No entanto, seu aplicativo precisa estar "ciente" da arquitetura subjacente.

Essa abordagem requer desenvolvimento e customização de um determinado aplicativo para fornecer um serviço com balanceamento de carga.

Espero que o que detalhei seja claro e faça sentido, mas é claro que não hesite em enviar suas perguntas diretamente para mim.

John Sansom
fonte
-1

Se você não possui um banco de dados de gravação muito alto, digamos 10/90, em que apenas 10% de suas transações são gravadas, você pode usar o sql 2005 e a replicação ponto a ponto acima de um balanceador de carga de hardware para atender às suas necessidades. Nada fora da caixa.


fonte
-1

O AlwaysOn Group com um grupo com conjunto de bancos de dados atua como Principal no Servidor A e o outro grupo de bancos de dados restantes atua como Principal no Servidor B, que eu posso considerar uma solução de balanceamento de carga. Só é necessário desenvolver a sincronização manual de objetos no nível do servidor, como logins, servidores vinculados, operadores, alertas, configurações de correio do banco de dados.

Bhargav
fonte
Isso é realmente difícil de entender. Se você tem algo a acrescentar, pode fazê-lo com mais clareza?
Laurenz Albe
-2

Novas tecnologias para o balanceamento de carga do banco de dados, separadas do SQL Server, estão disponíveis. Essas soluções de software se integram ao Always On em 2012 ou 2014 e suportam divisão automática de leitura / gravação e outras técnicas de balanceamento de carga. Procure o NetScaler DataStream ou o ScaleArc for SQL Server como dois exemplos deste software transparente de balanceamento de carga SQL.

Michelle
fonte