Le clustering de bases de données est un terme un peu ambigu, certains fournisseurs considèrent qu'un cluster ayant deux serveurs ou plus partagent le même stockage, d'autres appellent un cluster un ensemble de serveurs répliqués.
La réplication définit la méthode par laquelle un ensemble de serveurs reste synchronisé sans avoir à partager le stockage pouvant être dispersé géographiquement, il existe deux façons principales de procéder:
Réplication maître-maître (ou multi-maître): tout serveur peut mettre à jour la base de données. Il est généralement pris en charge par un module différent au sein de la base de données (ou un tout autre logiciel fonctionnant dessus dans certains cas).
L'inconvénient est qu'il est très difficile de bien faire, et certains systèmes perdent les propriétés ACID dans ce mode de réplication.
L'avantage est qu'il est flexible et que vous pouvez prendre en charge la défaillance de n'importe quel serveur tout en ayant la base de données mise à jour.
réplication maître-esclave: il n'y a qu'une seule copie des données faisant autorité, qui sont transmises aux serveurs esclaves.
L'inconvénient est qu'il est moins tolérant aux pannes, si le maître meurt, il n'y a plus de changements dans les esclaves.
L'avantage est qu'il est plus facile à faire que le multi-maître et qu'il conserve généralement les propriétés ACID.
L'équilibrage de charge est un concept différent, il consiste à distribuer les requêtes envoyées à ces serveurs afin que la charge soit aussi uniformément répartie que possible. Cela se fait généralement au niveau de la couche application (ou avec un pool de connexions). La seule relation directe entre la réplication et l'équilibrage de charge est que vous avez besoin d'une réplication pour pouvoir équilibrer la charge, sinon vous auriez un seul serveur.
Vinko Vrsalovic
la source
Du point de vue de SQL Server:
Le clustering vous donnera une configuration active-passive. Cela signifie que dans un cluster à 2 nœuds, l'un d'eux sera actif (serveur) et l'autre sera passif (en attente de prendre le relais lorsque le nœud actif échoue). C'est une haute disponibilité du point de vue matériel.
Vous pouvez avoir un cluster actif-actif, mais il nécessitera plusieurs instances de SQL Server s'exécutant sur chaque nœud. (c'est-à-dire que l'instance 1 sur le nœud A bascule sur l'instance 2 sur le nœud B, et l'instance 1 sur le nœud B bascule sur l'instance 2 sur le nœud A).
L'équilibrage de charge (du moins du point de vue de SQL Server) n'existe pas (du moins dans le même sens de l'équilibrage de charge du serveur Web). Vous ne pouvez pas équilibrer la charge de cette façon. Cependant, vous pouvez diviser votre application pour qu'elle s'exécute sur une base de données sur le serveur 1 et également sur une base de données sur le serveur 2, etc. C'est le principal moyen d '«équilibrage de charge» dans le monde SQL.
la source
Le clustering utilise un certain type de stockage partagé (une cage de lecteur ou un SAN, par exemple) et y place deux frontaux de base de données. Les serveurs frontaux partagent une adresse IP et un nom de réseau de cluster que les clients utilisent pour se connecter, et ils décident entre eux qui est actuellement en charge de traiter les demandes des clients.
Si vous posez des questions sur un serveur de base de données particulier, ajoutez-le à votre question et nous pouvons ajouter des détails sur leur implémentation, mais au fond, c'est ce qu'est le clustering.
la source
Le clustering de bases de données est en fait un mode de réplication synchrone entre deux nœuds ou plus, avec une fonctionnalité supplémentaire de tolérance aux pannes ajoutée à votre système, et cela aussi dans une architecture sans partage. En rien partagé, cela signifie que les nœuds individuels ne partagent en fait aucune ressource physique telle que le disque ou la mémoire.
En ce qui concerne la synchronisation des données, il existe un serveur de gestion auquel tous les nœuds de données sont connectés avec le nœud SQL pour y parvenir (en parlant spécifiquement de MySQL).
Voyons maintenant les différences: l'équilibrage de charge n'est qu'un résultat qui pourrait être obtenu grâce au clustering, les autres incluent la haute disponibilité, l'évolutivité et la tolérance aux pannes.
la source