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

2019/04/27 MHA实现MYSQL主从复制的高可用性_第1张图片MHA高可用性,需要4台主机
7,manager ,监控用
17,master
27 slave
37,slave

2019/04/27 MHA实现MYSQL主从复制的高可用性_第2张图片
17 master
2019/04/27 MHA实现MYSQL主从复制的高可用性_第3张图片
27,37 slave
2019/04/27 MHA实现MYSQL主从复制的高可用性_第4张图片
2019/04/27 MHA实现MYSQL主从复制的高可用性_第5张图片
实现前,先把主从搭建下,做这一步一定要注意时间的问题,集群一定要注意时间
配置时间同步

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

2019/04/27 MHA实现MYSQL主从复制的高可用性_第10张图片
安装数据库
2019/04/27 MHA实现MYSQL主从复制的高可用性_第11张图片
启动数据库,创建账号
2019/04/27 MHA实现MYSQL主从复制的高可用性_第12张图片
在从服务器安装
2019/04/27 MHA实现MYSQL主从复制的高可用性_第13张图片
修改从服务器配置
read only,从服务器有可能变成主,所以可以不用加,加了也没事,MHA会自动的修改变量为不是只读的
relay_log_purge不让它自动清理日志
skip_name_resolve
二进制日志bin_log一定要加(将来可能成为主)

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

2019/04/27 MHA实现MYSQL主从复制的高可用性_第21张图片
这时候就生成了两个文件
把自己的公钥复制到自己机器上

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

修改静态ip
2019/04/27 MHA实现MYSQL主从复制的高可用性_第31张图片
生效
2019/04/27 MHA实现MYSQL主从复制的高可用性_第32张图片
路由成功加上
2019/04/27 MHA实现MYSQL主从复制的高可用性_第33张图片
装包
在这里插入图片描述
查看一下安装包括的文件列表
2019/04/27 MHA实现MYSQL主从复制的高可用性_第34张图片
这些程序都是perl语言写的
2019/04/27 MHA实现MYSQL主从复制的高可用性_第35张图片
2019/04/27 MHA实现MYSQL主从复制的高可用性_第36张图片
2019/04/27 MHA实现MYSQL主从复制的高可用性_第37张图片
2019/04/27 MHA实现MYSQL主从复制的高可用性_第38张图片
node包里含有的东西,也是perl语言写的
2019/04/27 MHA实现MYSQL主从复制的高可用性_第39张图片
mysql服务器装node包,把每个node包复制过去
在这里插入图片描述
在每台机器上安装node包
2019/04/27 MHA实现MYSQL主从复制的高可用性_第40张图片
安装好后,需要我们单独配置一个MHA的界面,要指定在集群里谁是master,谁是slave
manager可以管理多个集群,每个集群都需要单独的一个配置。这个集群在MHAmanager里叫应用程序

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

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

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

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

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

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

你可能感兴趣的:(2019/04/27 MHA实现MYSQL主从复制的高可用性)