Agregado de bases de dados e equilibragem de carga

O que é o agrupamento de bases de dados? Se você permitir que o mesmo banco de dados esteja em 2 servidores diferentes como eles mantêm os dados entre sincronizados. E como isso difere do balanceamento de carga da perspectiva de um servidor de banco de dados?

Author: Anony-Mousse, 2009-07-22

4 answers

O Agrupamento de bases de dados é um termo ambíguo, alguns fornecedores consideram um conjunto com dois ou mais servidores partilhando o mesmo Armazenamento, outros chamam um conjunto de servidores replicados.

A replicação define o método pelo qual um conjunto de servidores permanecem sincronizados sem ter que compartilhar o armazenamento sendo capaz de ser disperso geograficamente, existem duas maneiras principais de fazer isso:

  • Replicação Master-master( ou multi-master): qualquer servidor pode actualiza a base de dados. Ele é geralmente tratado por um módulo diferente dentro do banco de dados (ou um software totalmente diferente executando em cima deles, em alguns casos). O lado negativo é que é muito difícil fazer bem, e alguns sistemas perdem propriedades ácidas quando Neste modo de replicação.

    O lado positivo é que é flexível e você pode suportar a falha de qualquer servidor enquanto ainda tem a base de dados atualizada.

  • Replicação mestre-escravo: só há uma única cópia de dados autoritários, que são os empurrados para os servidores escravos. A desvantagem é que é menos tolerante à culpa, se o mestre morrer, não haverá mais mudanças nos escravos.

    O lado positivo é que é mais fácil de fazer do que multi-mestre e normalmente preserva propriedades ácidas.

Balanceamento de carga é um conceito diferente, consiste em Distribuir as consultas enviadas a esses servidores para que a carga seja distribuída tão uniformemente quanto possível. Geralmente é feito na aplicação camada (ou com um conjunto de ligações). A única relação direta entre replicação e equilíbrio de carga é que você precisa de alguma replicação para ser capaz de carregar equilíbrio, caso contrário você teria um único servidor.

 113
Author: Vinko Vrsalovic, 2009-07-22 05:57:57

Do ponto de vista do servidor SQL:

O agrupamento dar - lhe-á uma configuração activa-passiva. Significando em um cluster de 2 nós, um deles será o ativo (servindo) e o outro será passivo (esperando para assumir quando o nó ativo falha). É uma alta disponibilidade do ponto de vista do hardware.

Pode ter um conjunto activo, mas irá necessitar de várias instâncias do servidor SQL a correr em cada nó. (isto é, a instância 1 no nó A está a falhar para Instance 2 on Node B, and instance 1 on Node B failing over to instance 2 on Node a).

A balanceamento de carga (pelo menos do ponto de vista do servidor SQL) não existe (pelo menos no mesmo sentido de balanceamento de carga do servidor web). Não podes balancear a carga dessa maneira. No entanto, você pode dividir sua aplicação para executar em algum banco de dados no servidor 1 e também executar em algum banco de dados no servidor 2, etc. Esta é a principal média de "balanceamento de carga" no mundo SQL.

 11
Author: Jimmy Chandra, 2009-07-22 05:42:57

O agrupamento usa armazenamento compartilhado de algum tipo (uma caixa drive ou uma SAN, por exemplo), e coloca dois front-ends de banco de dados sobre ele. Os servidores front-end compartilham um endereço IP e nome de rede de cluster que os clientes usam para se conectar, e eles decidem entre si quem está atualmente encarregado de atender pedidos de clientes.

Se você está perguntando sobre um servidor de banco de dados em particular, adicione isso à sua pergunta e podemos adicionar detalhes sobre sua implementação, mas no seu núcleo, é isso que agrupar e.
 7
Author: SqlRyan, 2009-07-22 05:54:43

Agrupamento de bases de dados é na verdade um modo de replicação síncrona entre dois ou possivelmente mais nós com uma funcionalidade adicional de tolerância de falha adicionada ao seu sistema, e isso também em uma arquitetura compartilhada nada. Por nada compartilhado significa que os nós individuais realmente não compartilham quaisquer recursos físicos como disco ou memória.

No que diz respeito a manter os dados sincronizados, existe um servidor de gestão ao qual todos os nós de dados estão ligados, juntamente com o Nó SQL para conseguir isso (falando especificamente sobre MySQL). Agora sobre as diferenças: balanceamento de carga é apenas um resultado que poderia ser alcançado através de agrupamento, os outros incluem alta disponibilidade, escalabilidade e tolerância de falha.
 4
Author: Puneet Misra, 2013-01-10 16:58:43