实验环境

此次实验的环境如下

  • MySQL 5.7.25

  • Redhat 6.10

  • 操作系统账号:mysql

  • 数据库复制账号:repl

  • 复制格式:基于行的复制

  • MHA版本: 0.56

IP地址 主从关系 复制账号 复制格式
11.12.14.29 主库 repl Row-Based
11.12.14.30 从库(半同步/备master) repl Row-Based
11.12.14.39 从库(异步) repl Row-Based
11.12.14.40 管理节点
11.12.14.41 VIP
1.png

这节的内容为在正式部署MHA前需要做哪些准备

1. hosts文件

首先我们在四台服务器上添加其他服务器的hosts信息

11.12.14.29  shytest
11.12.14.30  shytest2
11.12.14.39  shytest3
11.12.14.40  shytest4

2. 配置免密码登录

接下来我们需要配置各服务请求间的免密码登录

ssh-kengen 命令后请一路下一步

11.12.14.29

ssh-keygen -t rsa

ssh-copy-id 11.12.14.30
ssh-copy-id 11.12.14.39
ssh-copy-id 11.12.14.40

ssh-copy-id shytest2
ssh-copy-id shytest3
ssh-copy-id shytest4

11.12.14.30

ssh-keygen -t rsa

ssh-copy-id 11.12.14.29
ssh-copy-id 11.12.14.39
ssh-copy-id 11.12.14.40

ssh-copy-id shytest
ssh-copy-id shytest3
ssh-copy-id shytest4

11.12.14.39

ssh-keygen -t rsa

ssh-copy-id 11.12.14.29
ssh-copy-id 11.12.14.30
ssh-copy-id 11.12.14.40

ssh-copy-id shytest
ssh-copy-id shytest2
ssh-copy-id shytest4

11.12.14.40

ssh-keygen -t rsa

ssh-copy-id 11.12.14.29
ssh-copy-id 11.12.14.30
ssh-copy-id 11.12.14.39


ssh-copy-id shytest
ssh-copy-id shytest2
ssh-copy-id shytest3

设置完之后记得测试登录

3. 搭建主从备份

我们根据上面的拓扑建立主从关系,11.12.14.30采用半同步,11.12.14.39采用异步

采用基于GTID的复制,否则建议关闭GTID功能

这里就不多做介绍了,具体见上一个专题

注意在做主从同步的时候建议清理下从库相关信息

  • reset master ;
  • reset slave all;

4. 时间同步

请确认四台服务器的时间是同步的,可使用ntp进行同步

5.创建监控账户

接下来我们创建用于MHA监控的数据库账户

master数据库

grant all privileges on *.* to 'monitor'@'11.12.14.%' identified by '123456';
grant all privileges on *.* to 'monitor'@'127.0.0.1' identified by '123456';
flush privileges;

6. 关闭防火墙

如果防火墙开始,需要开通服务器间3306端口的通信

7.关闭relay日志自动清理

由于默认情况下从库的relay logs会在SQL线程执行完毕后被自动删除,但是对于MHA场景下,对于某些滞后从库的恢复依赖于其他从库的relay log,因此采取禁用自动删除功能以及定期清理的办法

使用purge_relay_logs脚本这个后面说明

主从库3台

relay_log_purge=0

8. 从库开启只读

从库需要设置只读模式

2台从库

read_only=1

9. 二进制日志过滤参数一致

请保证一些二进制日志的过滤参数是一致的,如

  • replicate-wild%
  • binlog-do-db

10. master节点绑定VIP

刚开始需要手动将VIP绑定至master节点

/sbin/ifconfig eth0:2 11.12.14.41  netmask 255.255.255.0 up
2.png

11. 准备自定义脚本

这里我们通过网盘下载,放到/etc/mha/script下面并赋予可执行权限

链接: https://pan.baidu.com/s/18H12bTIYHi2H0dXs2DI7NA 提取码: mwkq

3.png

接下来我们修改相关的文件

master_ip_failover

该文件只需要修改

my $vip = '11.12.14.41'

master_ip_online_change

该文件也是需要修改

my $vip = '11.12.14.41'

send_report

该文件需要修改邮件配置,这个后面做介绍

11. 参考资料

https://www.percona.com/blog/2016/09/02/mha-quickstart-guide/

http://www.ttlsa.com/mysql/step-one-by-one-deploy-mysql-mha-cluster/

https://www.cnblogs.com/ivictor/p/5686275.html

https://andblog.cn/?p=974