Mariadb-galera集群配置

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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集群配置

1.安装环境准备

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

在这里,我列出试验机器的配置:

操作系统版本:CentOS7.3、mariadb10.1.21

hmcloud-Flow01:10.199.10.101 hmcloud-Flow02:10.199.10.102 hmcloud-Flow03:10.199.10.103

为了保证节点间相互通信,需要禁用防火墙设置:

在三个节点分别执行命令:

systemctl stop firewalld

systemctl enable firewalld

如需要开启防火墙,需要开放mariadb端口和4567端口,并开启组播(keepalived),实测firewall开启后即使开放端口和协议也会导致haproxy不能转发,如需使用防火墙功能建议更换成iptables.

firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface eth0 --destination 224.0.0.18 --protocol vrrp -j ACCEPT

firewall-cmd --add-port=4567/tcp --permanent

firewall-cmd --reload

关闭selinux:

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config,

setenforce 0

host解析,分别修改三台机器/etc/hosts,添加对应IP和主机名

创建mysql目录,挂载磁盘

mkdir /data/

mount /dev/sdb /data/

vim /etc/fstab添加挂载项

mkdir /data/mysql

升级内核,设置新内核为默认kernel ,启用BBR协议

rpm --import https:///

rpm -Uvh /elrepo-release-7.0-2.el7.elrepo.noarch.rpm yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y

[root@Ms_NxEra ~]# cat /boot/grub2/grub.cfg |grep 4.

[root@Ms_NxEra ~]# grub2-set-default "CentOS Linux (4.9.0-1.el7.elrepo.x86_64) 7 (Core)"

echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

echo "net.core.default_qdisc=fq">> /etc/sysctl.conf

配置安装源

[root@hmcloud-Flow01 mariadb]# cat /etc/yum.repos.d/mariadb.repo [mariadb]

name = MariaDB

baseurl = /10.1.21/centos7-amd64/

gpgkey=https:///RPM-GPG-KEY-MariaDB

gpgcheck=1

2.安装 MariaDB Galera Cluster

[root@hmcloud-Flow01 ~]#yum install MariaDB-server MariaDB-client galera -y

3.配置 MariaDB Galera Cluster

初始化数据库服务,只在一个节点进行

[root@hmcloud-Flow01 mariadb]# systemctl start mariadb

[root@hmcloud-Flow01 mariadb]# mysql_secure_installation

关闭数据库,修改 /etc/f.d/f

相关文档
最新文档