Gelrea Cluster est simple à utiliser

Vous pouvez vous référer à la documentation https://galeracluster.com/library/documentation/index.html, ici seule la méthode d'installation est présentée

1) Trois nœuds, créez des sources yum séparément

[root@ydong ~]# cat /etc/yum.repos.d/mariadb.repo 
[mariadb]
name = MariaDB
baseurl = https://yum.mariadb.org/10.0-galera/centos/7/x86_64/
gpgcheck = 0

2) Installationinstall MariaDB-client MariaDB-Galera-server galera

yum install MariaDB-client \
      MariaDB-Galera-server \
      galera

3) Préparez la configuration du système et la configuration de la réplication des nœuds pour chaque nœud, reportez - vous au document

[mysqld]
skip_name_resolve=ON
innodb_file_per_table=ON

[galera]
# Mandatory settings
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.199.157,192.168.199.141,192.168.199.155"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
#
# Optional setting
#wsrep_slave_threads=1
#innodb_flush_log_at_trx_commit=0

# this is only for embedded server

4) Démarrez le cluster, commencez d'abord sur n'importe quel nœud, vous devez ajouter --wsrep-new-cluster, pour initialiser le cluster, le reste des nœuds peut démarrer normalement

/etc/init.d/mysql start --wsreq-new-cluster
其余节点可以直接使用systemctl 
systemctl start mysql

5) Afficher l'état du cluster de base de données dans mysql

#证明已经有三个节点成功启动了
MariaDB [(none)]> SHOW STATUS LIKE 'wsrep_cluster_size';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+
1 row in set (0.00 sec)

6) Testez le cluster

MariaDB [ydong]> CREATE TABLE my_cluster ( id INT UNSIGNED  ,  message char(10));
MariaDB [ydong]> INSERT INTO my_cluster VALUES (1,'hello');

[root@ydong ~]# mysql -e 'SELECT * FROM ydong.my_cluster'
+------+---------+
| id   | message |
+------+---------+
|    1 | hello   |
+------+---------+

7) Déconnectez un nœud, continuez à y écrire des données pendant cette période, puis redémarrez le nœud cassé.

再次插入一条数据
[root@ydong ~]# mysql -e 'SELECT * FROM ydong.my_cluster'
+------+---------+
| id   | message |
+------+---------+
|    1 | hello   |
|    2 | hi      |
+------+---------+

重启断掉的节点会自动重新启动

8) Redémarrez l'ensemble du service de cluster.Si tous les services de cluster se bloquent en raison d'un cas de force majeure et doivent être redémarrés, les nœuds doivent être démarrés dans l'ordre, sinon une partie des données sera perdue. Documents de référence

killall mysqld

9) Le /var/lib/grastate.datfichier enregistre le dernier mysql qui a arrêté le nœud, dont l'un est safe_to_bootstrap=1le mysql correct qui doit être démarré lorsque tout le cluster est redémarré. Ceci 1est automatiquement écrit par le système. Si nous voulons démarrer la base de données où cet élément est 0. Ne démarre pas la base de données

 [root@ydong ~]#  cat /var/lib/mysql/grastate.dat 
# GALERA saved state
version: 2.1
uuid:    9c81c2b4-fa9c-11ea-80a0-bbd29ca18721
seqno:   5
safe_to_bootstrap: 0
[root@ydong ~]# /etc/init.d/mysql start
Starting MariaDB.200920 13:47:37 mysqld_safe Logging to '/var/lib/mysql/ydong.com.err'.
200920 13:47:37 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
................................../etc/init.d/mysql: 第 262 行:kill: (14016) - 没有那个进程
 ERROR! 

10) 1La base de données que nous avons redémarrée , car c'est un processus /var/lib/mysql.socktué , il y a toujours mysql.sock, cela provoquera des conflits, vous devez d'abord supprimer, le test ci-dessus a été supprimé

rm -rf /var/lib/mysql/mysql.sock

[root@ydong ~]# /etc/init.d/mysql start --wsrep-new-cluster
Starting MariaDB.200920 13:50:36 mysqld_safe Logging to '/var/lib/mysql/ydong.com.err'.
200920 13:50:36 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
. SUCCESS! 

11) Nous commençons deux autres nœuds

[root@ydong ~]# systemctl restart mysql
[root@ydong ~]# systemctl status mysql
● mysql.service - LSB: start and stop MariaDB
   Loaded: loaded (/etc/rc.d/init.d/mysql; bad; vendor preset: disabled)
   Active: active (running) since 日 2020-09-20 13:51:20 CST; 5s ago

12) Afficher l'état du cluster

wsrep_cluster_size           | 3  
wsrep_ready                  | ON                                                             | 
wsrep_thread_count           | 2     

Je suppose que tu aimes

Origine blog.csdn.net/qq_44564366/article/details/108692018
conseillé
Classement