MariaDB Galera Cluster 搭建过程

mysql数据库高可用解决方案

MariaDB Galera群集是用于MariaDB的几乎同步的多主群集。 它仅在Linux上可用,并且仅支持XtraDB / InnoDB存储引擎

特点

虚拟同步复制

双活多主拓扑

读写任何集群节点

自动成员资格控制,失败的节点从集群中删除

自动节点加入

真正的并行复制,在行级别

直接的客户连接,原生的MariaDB外观

优势

上述功能为DBMS集群解决方案带来了许多好处,包括:

没有从站滞后

没有丢失的传输

读取可扩展性

较小的客户端时延


搭建过程如下

搭建环境采用ubuntu 20.04 LTS, 搭建3台服务器

Ubuntu-10.11.1.31-node1

Ubuntu-10.11.1.32-node2

Ubuntu-10.11.1.33-node3

添加mariadb官方仓库

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash

更新apt

sudo apt update

安装MariaDB starting with 10.4

sudo apt-get install mariadb-server galera-4 mariadb-client libmariadb3 mariadb-backup mariadb-common -y

初始化数据库,具体步骤百度吧

sudo mysql_secure_installation

修改配置文件,如果没有就新建一个,3个ubuntu都一样的修改,除了IP地址变动一下

sudo vim /etc/mysql/conf.d/galera.cnf
[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0

# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so

# Galera Cluster Configuration
wsrep_cluster_name="my_cluster"
#把三个node的IP地址写入进去
wsrep_cluster_address="gcomm://10.11.1.31,10.11.1.32,10.11.1,33"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="10.11.1.31" #当前node的IP地址
wsrep_node_name="Node1"

这4个参数自己修改一下就行了。

wsrep_cluster_name="my_cluster"

wsrep_cluster_address="gcomm://10.11.1.31,10.11.1.32,10.11.1,33"

wsrep_node_address="10.11.1.31"

wsrep_node_name="Node1"


打开防火墙端口

sudo ufw allow 3306,4567,4568,4444/tcp
sudo ufw allow 4567/udp

在node1上初始化集群,记得执行命令前把mysql服务先停止一下,我第一次是重启系统的。

sudo galera_new_cluster

然后就可以查看集群状态了

sudo mysql -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

会输出下面的结果,就是代表集群已经有1个node了

+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size |   1   |
+--------------------+-------+

#在node2上也启动mariaDB

systemctl start mysql

查看集群状态,

sudo mysql -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

已经有2个了

+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size |   2   |