超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数

  • Post author:
  • Post category:mysql




超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数

介绍galera cluster原理的文章已经有一大堆了,百度几篇看一看就能有相关了解,这里就不赘述了。本文主要侧重实操,因为跟着百度前几页的搭建教程或多或少都有坑,前后配置逻辑矛盾的也有。终于,经过几个通宵的bug修复,反复验证,力求以最简洁的代码,最少的操作量,最直白的逻辑来完成集群的搭建。因为操作过程中,网上对wsrep相关参数的介绍少之又少,所以最后特别写了完整版的参数说明,供搭建成功后,各种测试调试使用,对于这些参数有坑的地方,欢迎在底下留言,供大家参考,谢谢。

对于mysql的集群方案,我之前总结过,详情点击查看,

多图文,详细介绍mysql各个集群方案



一,需求了解

Galera Cluster需要至少三个节点的服务器硬件。

如果群集在单个交换机上运行,请使用三个节点。如果您的群集跨越多个交换机,请使用三个交换机。如果您的群集跨越网络,请使用三个网络。如果您的群集跨越数据中心,请使用三个数据中心。这样可以确保在网络中断的情况下,群集可以维护主组件。



1,硬体需求

对于服务器硬件,每个节点至少需要以下组件:

  • 1 GHz单核CPU;
  • 512 MB RAM;
  • 100 Mbps网络连接;

注意:Galera Cluster可能会由于内存不足而在有限的硬件上运行时偶尔崩溃。为避免这种情况,请确保分配了足够的交换空间。



2,软件需求

对于软件,群集中的每个节点至少需要以下条件:

  • 已安装Linux或FreeBSD操作系统;
  • 带有wsrep API补丁的MySQL或MariaDB服务器,已安装Galera复制插件。

注意:Galera Cluster的二进制安装软件包包括带有wsrep API补丁的数据库服务器。但是,从源构建时,必须手动应用此修补程序。



二,准备服务器

在开始安装过程之前,需要完成一些任务以为Galera Cluster准备服务器。您必须在集群中的每个节点上执行以下步骤。



1,配置SELinux

如果在服务器上启用了SELinux(增强安全性的Linux),则它可能会阻止mysqld执行所需的操作。您必须对SELinux禁用mysqld或对其进行配置,以允许mysqld运行外部程序并在非特权端口上打开侦听套接字,即非特权用户可以执行的操作。在这里我看了看它的状态

cat /etc/selinux/config

,然后就直接把它给禁用了。

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

若服务器必须要启用SELinux,

请查阅selinux和mysql



2,配置防火墙

接下来需要更新每个节点上的防火墙设置,以便它们可以与群集通信。具体执行方式取决于您的发行版和所使用的特定防火墙软件。在这里我看了看防火墙状态

firewall-cmd --state

,就直接把它关闭了。

systemctl stop firewalld.service
systemctl disable firewalld.service

有关为Galera Cluster设置防火墙以及其他用于在Linux和FreeBSD中配置数据包过滤的程序的详细信息,

请参阅防火墙设置



3,禁用AppArmor

默认情况下,某些服务器(例如Ubuntu)包括AppArmor,这可能会阻止mysqld打开其他端口或运行脚本。 您必须禁用AppArmor或对其进行配置,以允许mysqld运行外部程序并在非特权端口上打开侦听套接字。在这里我就禁用AppArmor了。

ln -s /etc/apparmor.d/usr /etc/apparmor.d/disable/.sbin.mysqld

输入效果如下所示,因为我是centos,不是Ubuntu的,所以禁用APPArmor是不需要的操作,这里只是为了演示。

lgx_211



三,安装Galera群集


1,依赖包准备

安装过程十有八九会报错,会提示依赖检测失败,请按照提示,下载相关依赖。这是我依据下面的安装顺序进行安装而报错,我为此逐个而安装的依赖。我的centos是刚安装的最简版,所以缺很多东西,你可以先把以下这些依赖安装完,再安装mysql cluster相关的。

yum -y install lsof net-tools perl socat openssl openssl-devel boost-devel

有个安装的文件和系统现有的有冲突,导致安装失败,卸载掉这个mariadb。

rpm -qa| grep mariadb
rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64

修改配置文件的时候,还有几个依赖包是被需要的,提前下载好

rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum -y install rsync jemalloc


2,下载、安装

Galera Cluster由两部分组成:Galera复制库(galera-3)和使用写集复制(WSREP)API扩展的MySQL版本(mysql-wsrep)。

若因软件版本变化,导致无法下载,或者你不是centos系统,请自行访问http://releases.galeracluster.com,找到可以下载的对应的版本。

强烈建议安装顺序按照下面所示,逐个来,因为后面的安装需要依赖前面的安装。

wget http://releases.galeracluster.com/galera-3/centos/7/x86_64/galera-3-25.3.29-1.el7.x86_64.rpm
wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/mysql-wsrep-5.7-5.7.29-25.21.el7.x86_64.rpm
wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/mysql-wsrep-client-5.7-5.7.29-25.21.el7.x86_64.rpm
wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/mysql-wsrep-common-5.7-5.7.29-25.21.el7.x86_64.rpm
wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/mysql-wsrep-devel-5.7-5.7.29-25.21.el7.x86_64.rpm
wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/



版权声明:本文为weixin_43750212原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。