在CentOS7上安装 MariaDB Galera Cluster 多主集群

1、MariaDB Galera Cluster介绍

MariaDB Galera Cluster 是一个用于同步 MariaDB 数据库的多 master 集群的工具。在数据方面完全兼容 MariaDB 和 MySQL。特性:

  • 同步复制 Synchronous replication

  • Active-active multi-master 拓扑逻辑

  • 可对集群中任一节点进行数据读写

  • 自动成员控制,故障节点自动从集群中移除

  • 自动节点加入

  • 真正并行的复制,基于行级

  • 直接客户端连接,原生的 MySQL 接口


2、环境准备

准备两台虚拟机,分别安装CentOS7-1908(7.7)。

服务器A:193.168.12.9     db1
服务器B:193.168.12.10    db2


两台虚机上关闭防火墙:

systemctl stop firewalld
systemctl disable firewalld


两台虚机上关闭selinux:

setenforce 0

修改/etc/selinux/config,设置SELINUX=disabled,确保重启后也生效。


3、安装mariadb 10.5

默认centos的源里不带mariadb 10.5,需要自己配置,创建/etc/yum.repo.d/mariadb.repo文件,这里配置的是从阿里云镜像下载,速度比从官网快。内容如下:

[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


下载并导入KEY:

wget --no-check-certificate https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB /etc/pki/rpm-gpg/
rpm --import /etc/pki/rpm-gpg/*


用yum安装:

yum install -y MariaDB-server MariaDB-client


如果之前配置过其它源导致安装失败,可以先清理一下再重试:

yum clean metadata


两台数据库服务器做同样操作。


4、配置mariadb

启动mariadb:

systemctl start mariadb


可按需执行初始化:

mysql_secure_installation


mariadb默认仅允许root本地登录,需要手工创建root远程管理权限,可以新建,也可以修改当前root,新建的话:

mysql -uroot -p
use mysql
create user root@'%' identified by 'mariadb';
flush privileges;


或者修改已有root的host:

mysql -u root -p
use mysql
update user set host='%' where user='admin' and host='localhost';
flush privileges;


两台数据库服务器做同样操作。


5、组建集群

两台独立的数据库都准备好后,开始组建galera cluster,先停mariadb服务:

systemctl stop mariadb


修改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=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=0
bind-address=0.0.0.0


两台服务器的配置里除wsrep_node_name和wsrep_node_address外,其它配置项都相同。


以创建新集群的方式启动第一个节点:

galera_new_cluster


此时能看到mysqld进程以带参数的方式启动,并且同时监听4567和3306端口。

需要注意galera_new_cluster仅执行一次,以后这个节点重启按正常服务方式启动就行了。

06.png

07.png


以正常方式启动第二个节点:

systemctl start mariadb


如果启动没有报错,恭喜,集群组成完成。官方推荐集群至少3个节点,但2个也能工作,只是可能出现Split-Brain问题。


此时双方分别登录自己的mariadb,查看集群状态,可以看到有相同的cluster_status_uuid,集群数量cluster_size也是2,表示两台。

09.png


在两台上分别执行DDL或者SQL语句,均会同步到对方。






猜你喜欢

转载自blog.51cto.com/boytnt/2542583