构建双vip的高可用MySQL集群

目录
  • 一、 项目描述:
  • 二、项目环境:
  • 二、项目步骤:
  • 三、项目概念图:
  • 四、部署zabbix监控系统
    • 4.1 准备:
    • 4.2 步骤:
  • 五、项目心得:

一、 项目描述:

    本项目的目的是:
构建一个高可用的能实现读写分离的高效的MySQL集群
确保业务的稳定,能沟通方便的监控整个集群
同时能批量的去部署和管理整个集群。

二、项目环境:

8台服务器(2G,2核),centos7.8
mysql5.7.30 mysqlrouter8.0.21
keepalived2.0.10 zabbix ansible

二、项目步骤:

  1.安装好centos7.8的系统,部署好ansible,在所有的机器之间配置SSH免密通道
2.部署好zabbix监控系统
3.通过ansible去以二进制方式安装部署MySQL
主要是通过编写好的脚本一键安装二进制版本的MySQL
4.使用ansible安装mysqlrouter 和keepalived,在另外2台中间件服务器上
实现读写分离和高可用,在keepalived上配置2个实例,实现2个vip,互为master和backup.
更加好的提升高可用的性能。
5.在3台MySQL服务器上配置好主从复制,建立读写分离使用的用户
形成一个master+2个slave节点(半同步+GTID)的集群,提供数据库服务
部署一台延迟备份的服务器(延迟30分钟)
6.尝试部署mysql的failover插件(自己编写脚本或者使用MHA)
实现自动的故障切换,确保master宕机
作用:能自动提升另外一台slave为主,另外一台slave切换到新的mater上获得二进制日志。
7.验证测试读写分离和高可用以及主从的failover
8.使用压力测试软件(sysbench)测试整个MySQL集群的性能(cpu、IO、内存等)

三、项目概念图:

四、部署zabbix监控系统

4.1 准备:

部署一台Zabbix监控服务器,一台被监控主机,为进一步执行具体的监控任务做准备:

安装LNMP环境

源码安装Zabbix

安装监控端主机,修改基本配置

初始化Zabbix监控Web页面

修改PHP配置文件,满足Zabbix需求

安装被监控端主机,修改基本配置

使用1台RHEL7虚拟机,安装部署LNMP环境、Zabbix及相关的依赖包,配置数据库并对Zabbix监控平台进行初始化操作。使用2台被监控端,源码安装Zabbix Agent。完成Zabbix实验需要我们搭建一个实验环境,拓扑结构如表-1所示。

表-1 实验拓扑结构

4.2 步骤:

步骤一:部署监控服务器

1)安装LNMP环境

Zabbix监控管理控制台需要通过Web页面展示出来
并且还需要使用MySQL来存储数据
因此需要先为Zabbix准备基础LNMP环境。

2)修改Nginx配置文件

配置Nginx支持PHP动态网站,因为有大量PHP脚本需要执行
因此还需要开启Nginx的各种fastcgi缓存,加速PHP脚本的执行速度。

3)启动服务

启动Nginx、PHP-FPM、MariaDB服务,关闭SELinux与防火墙。

4)客户端测试LNMP环境

服务器创建PHP测试页面,浏览器访问页面测试网页连通性。

步骤二:部署监控服务器Zabbix Server 1)源码安装Zabbix Serve

多数源码包都是需要依赖包的,zabbix也一样,源码编译前需要先安装相关依赖包。

2)初始化Zabbix

创建数据库,上线Zabbix的Web页面

提示:如果是因为配置文件不对,导致服务无法启动时,不要重复执行zabbix_server,
一定要先使用killall zabbix_server关闭服务后,再重新启动一次。
修改Zabbix_agent配置文件,启动Zabbix_agent服务

提示:如果是因为配置文件不对,导致服务无法启动时,不要重复执行zabbix_agentd,

一定要先使用killall zabbix_agentd关闭服务后,再重新启动一次。
浏览器访问Zabbix_server服务器的Web页面

修改完PHP配置文件后,再次使用浏览器访问服务器
则会提示如图的提示信息。

注意:这里有一个PHP LDAP是warning状态是没有问题的!
在初始化数据库页面,填写数据库相关参数
,如图所示。

在登陆页面,使用用户(admin)和密码(zabbix)登陆
登陆后设置语言环境为中文,如图所示。

步骤三:部署被监控主机Zabbix Agent 1)源码安装Zabbix agent软件

在2.100和2.200做相同操作(以zabbixclient_web1为例)。

2)修改agent配置文件,启动Agent

3)拷贝启动脚本(非必须操作,可选做)

 有启动脚本可以方便管理服务,启动与关闭服务

启动脚本位于zabbix源码目录下

五、项目心得:

 1.一定要规划好整个集群的架构,配置要细心,脚本要提前准备好,边做边修改

 2.防火墙和selinux的问题需要多注意

 3.对MySQL的集群和高可用有了深入的理解

 4.对自动化批量部署和监控有了更加多的应用和理解

 5.keepalived的配置需要更加细心和IP地址的规划有了新的认识

 6.对双vip的使用,添加2条负载均衡记录实现dns轮询,达到向2个vip负载均衡器上分流

到此这篇关于构建双vip的高可用MySQL集群的文章就介绍到这了,更多相关高可用MySQL集群内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解MySQL集群搭建

    概述 MySQL Cluster 是MySQL 适合于分布式计算环境的高实用.可拓展.高性能.高冗余版本,其研发设计的初衷就是要满足许多行业里的最严酷应用要求,这些应用中经常要求数据库运行的可靠性要达到99.999%.MySQL Cluster允许在无共享的系统中部署"内存中"数据库集群,通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求.此外,由于每个组件有自己的内存和磁盘,不存在单点故障. 实际上,MySQL集群是把一个叫做NDB的内存集群存储引擎集成与标准的MyS

  • 详解mysql集群:一主多从架构实现

    实验环境: 1.三台CentOS 7 服务器 2.mysql5.7.26(三台都通过yum安装) 服务器列表 7.100.222.111 master 47.103.211.5 slave1 47.103.98.221 slave2 如果还没安装mysql请看安装教程:mysql安装 一.概述: 架构图: 此种架构,一般初创企业比较常用,也便于后面步步的扩展 特点: 1.可以缓解读的压力. 2.成本低,布署快速.方便 3.读写分离 4.还能通过及时增加从库来减少读库压力 5.主库单点故障 6.数

  • MySQL之高可用集群部署及故障切换实现

    一.MHA 1.概念 2.MHA 的组成 3.MHA 的特点 二.搭建MySQL+MHA 思路和准备工作 1.MHA架构 数据库安装 一主两从 MHA搭建 2.故障模拟 模拟主库失效 备选主库成为主库 原故障主库恢复重新加入到MHA成为从库 3.准备4台安装MySQL虚拟机 MHA高可用集群相关软件包 MHAmanager IP:192.168.221.30 MySQL1 IP:192.168.221.20 MySQL2 IP:192.168.221.100 MySQL3 IP: 192.168

  • 集群rpm安装MySQL步骤详解

    安装mysql数据库 a)下载mysql源安装包:wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm b)安装mysql源:yum localinstall mysql57-community-release-el7-8.noarch.rpm 若结尾出现complete!,则说明MySQL源安装完成 c)检测是否安装完成:yum repolist enabled | grep "mysql.*-comm

  • 构建双vip的高可用MySQL集群

    目录 一. 项目描述: 二.项目环境: 二.项目步骤: 三.项目概念图: 四.部署zabbix监控系统 4.1 准备: 4.2 步骤: 五.项目心得: 一. 项目描述:     本项目的目的是: 构建一个高可用的能实现读写分离的高效的MySQL集群 确保业务的稳定,能沟通方便的监控整个集群 同时能批量的去部署和管理整个集群. 二.项目环境: 8台服务器(2G,2核),centos7.8 mysql5.7.30 mysqlrouter8.0.21 keepalived2.0.10 zabbix a

  • 详解.net core下如何简单构建高可用服务集群

    一说到集群服务相信对普通开发者来说肯定想到很复杂的事情,如zeekeeper ,反向代理服务网关等一系列的搭建和配置等等:总得来说需要有一定经验和规划的团队才能应用起来.在这文章里你能看到在.net core下的另一种集群构建方案,通过Beetlex即可非常便捷地构建高可用的集群服务. 简述 Beetlex的Webapi集群应用并没有依赖于第三方服务,而是由Beetlex自身完成:它主要是通过Client和策略监控服务相结合的方式来实现集群化的服务负载访问.以下是服务结构: client一旦从配

  • 如何搭建 MySQL 高可用高性能集群

    目录 MySQL NDB Cluster 是什么 搭建集群的前置工作 开始部署集群 部署管理服务器 部署数据服务器 部署 SQL 服务 所有集群服务部署完毕,我们来测试一下集群是否真的部署成功 数据库集群部署成功了,总结一下集群的注意事项 MySQL NDB Cluster 是什么 MySQL NDB Cluster 是 MySQL 的一个高可用.高冗余版本,适用于分布式计算环境. 文档链接 搭建集群的前置工作 至少准备 3 台服务器,一台作为管理服务器,两台作为数据服务器和 SQL 服务器,当

  • Keepalived+Nginx+Tomcat 实现高可用Web集群的示例代码

    Keepalived+Nginx+Tomcat 实现高可用Web集群 一.Nginx的安装过程 1.下载Nginx安装包,安装依赖环境包 (1)安装 C++编译环境 yum -y install gcc #C++ (2)安装pcre yum -y install pcre-devel (3)安装zlib yum -y install zlib-devel (4)安装Nginx 定位到nginx 解压文件位置,执行编译安装命令 [root@localhost nginx-1.12.2]# pwd

  • docker 搭建Mysql集群的方法示例

    docker基本指令: 更新软件包 yum -y update 安装Docker虚拟机(centos 7) yum install -y docker 运行.重启.关闭Docker虚拟机 service docker start service docker stop 搜索镜像 docker search 镜像名称 下载镜像 docker pull 镜像名称 查看镜像 docker images 删除镜像 docker rmi 镜像名称 运行容器 docker run 启动参数 镜像名称 查看容

  • Docker部署Mysql集群的实现

    单节点数据库的弊病 大型互联网程序用户群体庞大,所以架构必须要特殊设计 单节点的数据库无法满足性能上的要求 单节点的数据库没有冗余设计,无法满足高可用 单节点MySQL的性能瓶领颈 2016年春节微信红包巨大业务量,数据库承受巨大负载 常见MySQL集群方案 mysql 集群方案介绍,建议使用pxc,因为弱一致性会有问题,比如说a节点数据库显示我购买成功,b 节点数据库显示没有成功,这就麻烦了,pxc 方案是在全部节点都写入成功之后才会告诉你成功,是可读可写双向同步的,但是replication

  • MySQL 集群迁移到 Kubernetes操作步骤

    目录 背景 适用场景 前提条件 操作步骤 Step 1:自建集群开启 GTID Step 2:容器集群在线迁移全量数据 Step 3:进行增量同步 Step 4:同步数据到容器集群的其他节点 Step 5:业务切换 Step 6:停止同步 总结 背景 如果你有自建的 MySQL 集群,并且已经感受到了云原生的春风拂面,想将数据迁移到 Kubernetes 上,那么这篇文章可以给你一些思路. 文中将自建 MySQL 集群数据,在线迁移到 Kubernetes 的 MySQL 集群中,快速实现了 M

  • Windows Server 2003 下配置 MySQL 集群(Cluster)教程

    MySQL 群集是 MySQL 适合于分布式计算环境的高可用.高冗余版本.它采用了 NDB Cluster 存储引擎,允许在 1 个群集中运行多个 MySQL 服务器.在 MySQL 5.0 及以上的二进制版本中,以及与最新的 Linux 版本兼容的 RPM 包中提供了该存储引擎. MySQL 群集是一种技术,该技术允许在无共享的系统中部署"内存中"和"磁盘中"数据库的 Cluster .通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求.此外,由于

随机推荐