1. Introduction à MariaDB Galera Cluster
MariaDB Galera Cluster est un outil de synchronisation d'un cluster multi-maître de bases de données MariaDB. En termes de données, il est entièrement compatible avec MariaDB et MySQL. caractéristique:
Réplication synchrone
Logique de topologie multi-maître actif-actif
Les données peuvent être lues et écrites sur n'importe quel nœud du cluster
Contrôle automatique de l'appartenance, le nœud défaillant est automatiquement supprimé du cluster
Jointure automatique des nœuds
Réplication parallèle réelle, basée sur le niveau de la ligne
Connexion client directe, interface MySQL native
2. Préparation de l'environnement
Préparez deux machines virtuelles et installez respectivement CentOS7-1908 (7.7).
Serveur A: 193.168.12.9
serveur db1 B: 193.168.12.10 db2
Désactivez le pare-feu sur les deux machines virtuelles:
systemctl arrêter le firewalld systemctl désactiver le pare - feud
Fermez selinux sur les deux machines virtuelles:
setenforce 0
Modifiez / etc / selinux / config et définissez SELINUX = disabled pour vous assurer qu'il prend effet après le redémarrage.
3. Installez mariadb 10.5
Par défaut, la source de centos ne contient pas mariadb 10.5. Vous devez le configurer vous-même. Créez le fichier /etc/yum.repo.d/mariadb.repo. La configuration ici est à télécharger depuis le miroir Alibaba Cloud, qui est plus rapide que le site officiel. Le contenu est le suivant:
[mariadb] name = MariaDB baseurl = https: //mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64 pgpkey = https: //mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB pgpcheck = 0
Téléchargez et importez la clé:
wget - no-check-certificate https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB / etc / pki / rpm-gpg / rpm --import / etc / pki / rpm-gpg / *
Installez avec yum:
yum install -y MariaDB-serveur MariaDB-client
Si vous avez déjà configuré d'autres sources et que l'installation échoue, vous pouvez nettoyer et réessayer:
miam nettoyer les métadonnées
Les deux serveurs de base de données effectuent la même opération.
4. Configurer mariadb
Démarrez mariadb:
systemctl start mariadb
L'initialisation peut être effectuée à la demande:
mysql_secure_installation
Par défaut, mariadb autorise uniquement root à se connecter localement. Vous devez créer manuellement les autorisations de gestion à distance root. Vous pouvez en créer une ou modifier la racine actuelle. Si vous en créez une nouvelle:
mysql -uroot -p utilise mysql create user root @ '%' identifié par 'mariadb'; privilèges de vidage;
Ou modifiez l'hôte qui a la racine:
mysql -u root -p utilise mysql update user set host = '%' où user = 'admin' et host = 'localhost'; privilèges de vidage;
Les deux serveurs de base de données effectuent la même opération.
5. Configurer un cluster
Une fois les deux bases de données indépendantes prêtes, commencez à former un cluster galera et arrêtez d'abord le service mariadb:
systemctl stop mariadb
Modifiez la configuration de mariadb: /etc/my.cnf.d/server.cnf
[Galera] wsrep_on = ON wsrep_provider = / usr / lib64 / Galera-4 / libgalera_smm.so wsrep_cluster_address = Gcomm: //193.168.12.9,193.168.12.10 wsrep_cluster_name = rvsdb wsrep_node_name = db1 wsrep_node_address = 193.168.12.9 binlog_format = ligne default_storage_engine = InnoDB innodb_autoinc_lock_mode = 2 wsrep_slave_threads = 1 innodb_flush_log_at_trx_commit = 0 adresse de liaison = 0.0.0.0
À l'exception de wsrep_node_name et wsrep_node_address, les autres éléments de configuration de la configuration des deux serveurs sont identiques.
Démarrez le premier nœud en créant un nouveau cluster:
guy_new_cluster
À ce stade, vous pouvez voir que le processus mysqld est démarré avec des paramètres et écoute sur les ports 4567 et 3306 en même temps.
Il convient de noter que galera_new_cluster n'est exécuté qu'une seule fois et que le nœud redémarre en mode de service normal dans le futur.
Démarrez le deuxième nœud de la manière normale:
systemctl start mariadb
Si aucune erreur n'est signalée lors du démarrage, félicitations, la formation du cluster est terminée. La recommandation officielle est de regrouper au moins 3 nœuds, mais 2 peuvent également fonctionner, mais des problèmes de Split-Brain peuvent survenir.
À ce stade, les deux parties se connectent à leur propre mariadb et vérifient l'état du cluster. Vous pouvez voir qu'il existe le même cluster_status_uuid et que le nombre de clusters cluster_size est également de 2, ce qui signifie deux.
Exécutez respectivement des instructions DDL ou SQL sur deux ordinateurs, et les deux seront synchronisés l'un avec l'autre.