MariaDB Galera Cluster 部署

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MariaDB Galera Cluster 部署相关的知识,希望对你有一定的参考价值。

一、MariaDB Galera Cluster 部署介绍

  MariaDB作为mysql的一个分支,在开源项目中已经广泛使用,例如大热的openstack,所以,为了保证服务的高可用性,同时提高系统的负载能力,集群部署是必不可少的。
 
  MariaDB Galera Cluster 介绍

  MariaDB集群是MariaDB同步多主机集群。它仅支持XtraDB/ InnoDB存储引擎(虽然有对MyISAM实验支持 - 看wsrep_replicate_myisam系统变量)。

主要功能:

  • 同步复制
  • 真正的multi-master,即所有节点可以同时读写数据库
  • 自动的节点成员控制,失效节点自动被清除
  • 新节点加入数据自动复制
  • 真正的并行复制,行级
  • 用户可以直接连接集群,使用感受上与MySQL完全一致

优势:

  • 因为是多主,所以不存在Slavelag(延迟)
  • 不存在丢失事务的情况
  • 同时具有读和写的扩展能力
  • 更小的客户端延迟
  • 节点间数据是同步的,而Master/Slave模式是异步的,不同slave上的binlog可能是不同的

技术:

Galera集群的复制功能基于Galeralibrary实现,为了让MySQL与Galera library通讯,特别针对MySQL开发了wsrep API。

Galera插件保证集群同步数据,保持数据的一致性,靠的就是可认证的复制,工作原理如下图:

技术分享图片

当客户端发出一个commit的指令,在事务被提交之前,所有对数据库的更改都会被write-set收集起来,并且将 write-set 纪录的内容发送给其他节点。

write-set 将在每个节点进行认证测试,测试结果决定着节点是否应用write-set更改数据。

如果认证测试失败,节点将丢弃 write-set ;如果认证测试成功,则事务提交。

 

二、环境准备

环境说明:安装MariaDB集群至少需要3台服务器(如果只有两台的话需要特殊配置,请参照官方文档)

1、关闭防火墙

[[email protected] ~]# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/selinux/config
[[email protected] ~]# setenforce 0
setenforce: SELinux is disabled

2、selinux
[[email protected] ~]# systemctl stop firewalld.service
[[email protected] ~]# systemctl disable firewalld.service

3、配置域名解析

[[email protected] ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.120 mariadb-node1
192.168.1.121 mariadb-node2
192.168.1.122 mariadb-node3

 

3、配置mariadb源

备注:从MariaDB 10.1版本开始,Galera Cluster就已经包含在MariaDB包里面了,不需要单独部署MariaDB-Galera-server 和galera 包。

使用YUM方式部署MariaDB Galera Cluster。

#三台机器同时配置mariadb源

[[email protected] ~]# cd /etc/yum.repos.d/

#移走目录中,其它源文件,只保留mariadb源 [[email protected] yum.repos.d]# vi mariadb.repo [mariadb] name = MariaDB baseurl =http://yum.mariadb.org/10.1/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 #更新缓存 yum clean all yum makecache

4、安装 MariaDB Galera Cluster (#备注:三台机器同时操作,并把yum源改成国内阿里源)

 

以上是关于MariaDB Galera Cluster 部署的主要内容,如果未能解决你的问题,请参考以下文章

MariaDB Galera Cluster部署实践

Mariadb Galera Cluster 部署

MariaDB Galera Cluster 之二 MariaDB Galera Cluster主要功能优缺点和对比

初见 MariaDB Galera Cluster

MariaDB-Galera-cluster实现mariadb高可用的详细步骤

Mysql/MariaDB??????????????????Galera Cluster