« MariaDB - Grappe de serveurs avec Galera » : différence entre les versions

De Wiki doc

Aucun résumé des modifications
Aucun résumé des modifications
Ligne 9 : Ligne 9 :


*Ajouter la clef du dépôt de MariaDB:
*Ajouter la clef du dépôt de MariaDB:
  $ apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
  # apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db


*Ajouter dans le fichier '''/etc/apt/sources.list''' :
*Ajouter dans le fichier '''/etc/apt/sources.list''' :
Ligne 16 : Ligne 16 :


*Faire un update:
*Faire un update:
  $ apt update
  # apt update


=Installer MariaDB et Galera=
=Installer MariaDB et Galera=
*Installer MariaDB et Galera:
*Installer MariaDB et Galera:
  $ apt install -y rsync mariadb-client mariadb-galera-server galera
  # apt install -y rsync mariadb-client mariadb-galera-server galera


=Configurer le cluster=
=Configurer le cluster=
Ligne 46 : Ligne 46 :


*Stopper MariaDB sur tous les machines du cluster:
*Stopper MariaDB sur tous les machines du cluster:
  $ service mysql stop
  # service mysql stop


*<span style="color:#FF0000">'''Sur l'un des serveur du cluster'''</span> que l'on va appeler <span style="color:#FF0000">''cluster01''</span> dans ce tuto, exécuter:
*<span style="color:#FF0000">'''Sur l'un des serveur du cluster'''</span> que l'on va appeler <span style="color:#FF0000">''cluster01''</span> dans ce tuto, exécuter:
  $ galera_new_cluster
  # galera_new_cluster


*Toujours sur <span style="color:#FF0000">''cluster01''</span>, exécuter la commende suivant:
*Toujours sur <span style="color:#FF0000">''cluster01''</span>, 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"'
  # mysql -u root -p -e 'SELECT VARIABLE_VALUE as "cluster size" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"'


Résultat:
Résultat:
Ligne 64 : Ligne 64 :


*<span style="color:#FF0000">'''Sur les autres serveurs du cluster'''</span>, il suffit de démarrer MariaDB:
*<span style="color:#FF0000">'''Sur les autres serveurs du cluster'''</span>, il suffit de démarrer MariaDB:
  $ service mysql start
  # service mysql start


*Sur <span style="color:#FF0000">''cluster01''</span>, si vous exécutez:
*Sur <span style="color:#FF0000">''cluster01''</span>, 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"'
  # mysql -u root -p -e 'SELECT VARIABLE_VALUE as "cluster size" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"'


Résultat:
Résultat:

Version du 8 janvier 2017 à 22:15

Suite a plusieurs tests, cette solution n'est pas adaptée pour faire du cluster via VPN. Cette outils ne fonctionne que dans un réseau interne. Nous somme partie sur une solution de réplication MySQL Master-Master.

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.

Sources