Sur les projets à volumétrie importante, on parle très souvent de cluster de bases de données ou de grappe de serveurs de bases de données.
La mise en place d’une grappe consiste à relier entre eux plusieurs serveurs et à les faire apparaître comme un unique serveur depuis l’extérieur. Cela permet de réaliser des traitements en parallèle sur des machines nommées nœuds qui se partagent le travail et d’améliorer les performances. Il y a aussi des avantages en terme de sécurité (tolérance aux pannes), de disponibilité et de mise à l’échelle. Peu coûteux pour les petites grappes, cette façon de faire de l’informatique de puissance est une alternative aux supercalculateurs. Malgré ses intérêts, les clusters rajoutent de la complexité à un système d’information.
Organisation d’un cluster de bases de données
Le terme cluster est utilisé spécifiquement pour les bases de données. On parle alors de bases de données distribuées. Les SGBD les plus importants savent tous gérer les clusters de bases de données avec des outils intégrés ou dédiés : SQL Server, Oracle RAC (Real Application Clusters), MySQL Cluster, Percona XtraDB Cluster pour MySQL, MariaDB et MySQL avec Galera, Google Cloud SQL, InnoDB Cluster…
Il existe aussi des bases de données spécifiquement distribuées. C’est le cas de CockroachDB, de Google Spanner, de YugabyteDB, d’Apache Cassandra ou d’Amazon Aurora.
Instruction CLUSTER en SQL
En SQL, un cluster est aussi une structure de stockage constitué de plusieurs tables avec des colonnes partagées. Il se créé avec l’instruction « CREATE CLUSTER » et se supprime avec « DROP CLUSTER ». C’est tout autre chose que la mise en commun de plusieurs serveurs et il y a peu de chance de confusion mais il fallait le notifier.