MariaDB - Grappe de serveurs avec Galera
De Wiki doc
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
- Dépôt de MariaDB : https://downloads.mariadb.org/mariadb/repositories/#mirror=cnrs&version=10.1&distro_release=jessie--jessie&distro=Debian
- Utilisation de Galera : https://blog.sprinternet.at/2016/03/mariadb-10-1-galera-cluster-on-debian-8-jessie/
- Pour la configuration de Galera : http://galeracluster.com/documentation-webpages/configuration.html