MariaDB - Grappe de serveurs avec Galera

De Wiki doc

Révision datée du 5 janvier 2017 à 17:25 par Nmorin (discussion | contributions) (Page créée avec « Category:linux Category:base_de_données '''<span style="color:#FF0000">Tous les manipulations sont à faire sur tous les serveur (sauf contraction).</span>''' =A... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Tous les manipulations sont à faire sur tous les serveur (sauf contraction).

Ajout des dépôts MariaDB

Sur Debian 8 "Jessie", les paquets de Galera ne sont pas dans les dépôts de Debian contrairement à Debian 9 "Stretch".

  • Ajouter la clef du dépôt de MariaDB:
$ apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
  • Ajouter dans le fichier /etc/apt/sources.list :
[...]
deb [arch=amd64,i386] http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.1/debian jessie main
  • Faire un update:
$ apt update

Installer MariaDB et Galera

  • Installer MariaDB et Galera:
$ apt install -y rsync mariadb-client mariadb-galera-server galera

Configurer le cluster

  • Créer le fichier /etc/mysql/conf.d/galera.cnf sur tous les serveurs et ajouter:
[mysqld]
#mysql settings
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
innodb_doublewrite=1
query_cache_size=0
query_cache_type=0
bind-address=0.0.0.0

#galera settings
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_name="test_cluster"
wsrep_cluster_address=gcomm://cluster01,cluster02,cluster03
wsrep_sst_method=rsync

Modifier cluster01,cluster02,cluster03 par les IP de tous vos serveurs en cluster. ex: gcomm://10.0.99.31,10.0.99.32,10.0.99.33.
Modifier test_cluster par le nom du cluster de votre choix.

  • Stopper MariaDB sur tous les machines du cluster:
$ service mysql stop
  • Sur l'un des serveur du cluster que l'on va appeler cluster01 dans ce tuto, exécuter:
$ galera_new_cluster
  • Toujours sur cluster01, exécuter la commende suivant:
$ mysql -u root -p -e 'SELECT VARIABLE_VALUE as "cluster size" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"'

Résultat:

+--------------+
| cluster size |
+--------------+
| 1            |
+--------------+

Le 1 correspond au nombre de serveur connecté au cluster.

  • Sur les autres serveurs du cluster, il suffit de démarrer MariaDB:
$ service mysql start
  • Sur cluster01, si vous exécutez:
$ mysql -u root -p -e 'SELECT VARIABLE_VALUE as "cluster size" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"'

Résultat:

+--------------+
| cluster size |
+--------------+
| 2            |
+--------------+

Vous voyez le chiffre augmenté suivant le nombre de serveur connecté dans le cluster.

Liens