2019/04/27 MHA实现MYSQL主从复制的高可用性

在这里插入图片描述MHA高可用性,需要4台主机
7,manager ,监控用
17,master
27 slave
37,slave

在这里插入图片描述
17 master
在这里插入图片描述
27,37 slave
在这里插入图片描述
在这里插入图片描述
实现前,先把主从搭建下,做这一步一定要注意时间的问题,集群一定要注意时间
配置时间同步

在这里插入图片描述
在这里插入图片描述
前期需要手工同步一下,设置开机启动
在这里插入图片描述
重复这个操作,在所有主机上都去实现
在这里插入图片描述
在这里插入图片描述
确认时间是否同步
在这里插入图片描述
确认防火墙和selinux没启用
在这里插入图片描述
环境好了现在需要实现主从
配置主服务器配置文件,需要加这项,因为默认会用主机名做名词解析
my。cnf这个文件其实是在mariadb-libs包里的

在这里插入图片描述
安装数据库
在这里插入图片描述
启动数据库,创建账号
在这里插入图片描述
在从服务器安装
在这里插入图片描述
修改从服务器配置
read only,从服务器有可能变成主,所以可以不用加,加了也没事,MHA会自动的修改变量为不是只读的
relay_log_purge不让它自动清理日志
skip_name_resolve
二进制日志bin_log一定要加(将来可能成为主)

在这里插入图片描述
另外一个从服务器也这样配置
在这里插入图片描述
现在change master
在这里插入图片描述
成功
在这里插入图片描述
测试是否同步成功
在这里插入图片描述
从服务器就有了
在这里插入图片描述
现在就需要改造成为MHA的架构
在这里插入图片描述
要用到两个软件包,manager,和节点软件包,在manager主机上都需要安装,在其他服务器上只需要装节点包
另外manager服务器要抓取从服务器的日志,就需要一定的权限,这个权限,我们需要实现准备一个用户,让它具有相应的管理员权限,所以之前在主服务器创建单一账号,是远远不够的,不仅要创建账号,而且还要考虑到一些访问文件的安全,这里需要创建基于ssh的key验证,意味将来就需要完全互相通过ssh互相访问
如何实现4个主机互相ssh的访问

在这里插入图片描述
这时候就生成了两个文件
把自己的公钥复制到自己机器上

在这里插入图片描述
这个里面放的就是自己的公钥
在这里插入图片描述
传送到其他机器上去
在这里插入图片描述
现在就可以随便ssh别人了。,任何主机都可以互相ssh
在这里插入图片描述
为了方便管理,我们需要在所有主机上建立一个专门的数据库管理员账号,让它能够通过这个账号,让manager来远程的进行连接
这个账号的目的就是让MHA主机,将来去链接管理这些mysql数据库服务器(如,你要修改readonly,就需要管理员身份),现在就需要创建这个账号
在这里插入图片描述
因为开了主从,就会复制到27,37上去
在这里插入图片描述
查看被授权的权限
在这里插入图片描述
到此准备工作基本完成
现在需要在4台主机上安装MHA软件
在这里插入图片描述
需要额外利用epel源,
在这里插入图片描述在这里插入图片描述
配置的dhcp出现问题,拿到地址上不了网
在这里插入图片描述
在这里插入图片描述
重启之后 还拿不到网关。手动加一下

修改静态ip
在这里插入图片描述
生效
在这里插入图片描述
路由成功加上
在这里插入图片描述
装包
在这里插入图片描述
查看一下安装包括的文件列表
在这里插入图片描述
这些程序都是perl语言写的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
node包里含有的东西,也是perl语言写的
在这里插入图片描述
mysql服务器装node包,把每个node包复制过去
在这里插入图片描述
在每台机器上安装node包
在这里插入图片描述
安装好后,需要我们单独配置一个MHA的界面,要指定在集群里谁是master,谁是slave
manager可以管理多个集群,每个集群都需要单独的一个配置。这个集群在MHAmanager里叫应用程序

在这里插入图片描述
在这里插入图片描述
全局就是给所有的设置,也可以单独给某个集群设置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述这个文件夹需要手动创建,配置文件放哪里不重要,启动的时候要指定这个文件路径在哪里
在这里插入图片描述
在这里插入图片描述
用哪个账号去ssh对方,root
在这里插入图片描述
ping_inter val =1秒探测一次是否活动的
三个集群节点,各自的地址都要写
candidate_master=1这个意思就是将来谁可以成为主服务器(将来有成为主服务器的能力)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
建立目录,随便起个名字,作为配置文件
在这里插入图片描述
到此为止,所有环境都搭建好了
在这里插入图片描述
通过它还能测试是否能ssh链接成功
在这里插入图片描述
在这里插入图片描述
检查复制情况是否正常
在这里插入图片描述
都是ok的
在这里插入图片描述
有错误文件,会放在整个自动生成 的文件夹里
在这里插入图片描述
在这里插入图片描述
开启MHA,是前台命令,(在执行的时候是不会退出的,就需要在本机上面操作,不要在终端上面操作,当主服务器宕机,新从服务器升为主,才会停下来,所以会长期运行,所以这个命令在真正执行的时候,放在本机执行)
在这里插入图片描述
查看主服务器工作状态。7522
在这里插入图片描述
、目前从服务器同步状态没有问题
在这里插入图片描述
主服务器创建数据库
在这里插入图片描述

从服务器也会复制过去。目前来讲是同步的在这里插入图片描述
只要不出现问题,前台MHA不会出现任何信息,现在来模拟损害
在这里插入图片描述
主服务器关机
上面的等于shutdown正常关机
下面的属于掉电

在这里插入图片描述
在这里插入图片描述
基本上在5秒内进行反应,这个程序就停止了
在这里插入图片描述
27,37谁是从,根据刚才的配置文件,只有27才有资格当主
在这里插入图片描述
已经不是从了,再到37上去看
在这里插入图片描述
之前在27上设置的read-only,也自动的改回来了
在这里插入图片描述
虽然配置文件里写的read-only
在这里插入图片描述
现在检查新的主从,是否能正常复制
在这里插入图片描述
成功复制,说明主从没有任何问题
在这里插入图片描述
MHA是解决了一定的问题,但是不是所有问题都解决,比如调度器还是会往原来的机器调度
在这里插入图片描述
那么可以不修改调度器吗,用户在访问数据库的时候,先访问调度器,然后再去访问数据库,怎么不去修改调度器去更新主服务器,需要人为修改,虚拟ip,VIP
在这里插入图片描述
虚拟ip是对外发布的一个地址,可以根据用户请求,漂移到,服务器上,让这些主机共用一个地址
当17 主机宕机的时候,自动把vip飘到27
调度器是往vip调,而不是固定的机器,17,或者27,vip在哪,就调到哪,就比较智能

在这里插入图片描述
需要配合专门的应用程序keepalived,可以实现vip的调度
在这里插入图片描述
以后很多设计到的单点问题都可以用keepalived熟悉,调度器如果单点失败,还可以再增加一个调度器
在这里插入图片描述
但是如果原本的17 又恢复了,会如何
在这里插入图片描述
这个机器成了孤独的机器了
在这里插入图片描述
朱祁钰当两次皇帝,打蒙古被抓,弟弟当皇帝,后又被送回来,朱祁镇
应该把原来恢复的机器降级为从,就要修改配置,
在这里插入图片描述
修改成从服务器样子
在这里插入图片描述
查看新的主的日志位置,如果差距大最好是备份数据文件恢复
在这里插入图片描述
恢复的从服务器change master to
在这里插入图片描述
开启复制,但是现在如果27主服务宕机了,不开启MHA的话,就不会恢复了
不用修改配置,因为里面的配置都是均等的

在这里插入图片描述日志信息写的很清楚,17宕机,27做主
在这里插入图片描述
再次开启程序,保证 27出现问题也可以代替它
在这里插入图片描述
再试试用27 宕机能否回到17
在这里插入图片描述
在这里插入图片描述
**查看日志里有明确报警信息,当前时间太早,把这个文件删除了 **
在这里插入图片描述
想要over需要手动删除此文件
在这里插入图片描述
主服务器已经宕机,ssh链接不上去了
在这里插入图片描述
先回复,继续当主人
在这里插入图片描述
在这里插入图片描述
查看日志是否有明确描述
在这里插入图片描述
再次启动MHA程序
在这里插入图片描述查看出现的错误,切换到17 主服务器成功 了
在这里插入图片描述
37的主都变成17了
在这里插入图片描述
因为27的数据库服务没有启动,等于宕机,所以切换到17作为主服务器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
现在manager服务就一个,manager要是宕机了,无法实现MHA
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值