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

it2024-11-19  0

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仅执行一次,以后这个节点重启按正常服务方式启动就行了。

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

systemctl start mariadb

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

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

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

最新回复(0)