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

一、MariaDB Galera Cluster介绍node

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

  • 同步复制 Synchronous replicationlinux

  • Active-active multi-master 拓扑逻辑sql

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

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

  • 自动节点加入bash

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

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


二、环境准备工具

准备两台虚拟机,分别安装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,确保重启后也生效。


三、安装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


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


四、配置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;


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


五、组建集群

两台独立的数据库都准备好后,开始组建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=20
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语句,均会同步到对方。

相关文章
相关标签/搜索