前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL MHA部署 Part 4 MHA部署前准备

MySQL MHA部署 Part 4 MHA部署前准备

作者头像
bsbforever
发布2020-08-18 15:57:05
3350
发布2020-08-18 15:57:05
举报

实验环境

此次实验的环境如下

  • 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

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

1. hosts文件

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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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数据库

代码语言:javascript
复制
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台

代码语言:javascript
复制
relay_log_purge=0

8. 从库开启只读

从库需要设置只读模式

2台从库

代码语言:javascript
复制
read_only=1

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

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

  • replicate-wild%
  • binlog-do-db

10. master节点绑定VIP

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

代码语言:javascript
复制
/sbin/ifconfig eth0:2 11.12.14.41  netmask 255.255.255.0 up

11. 准备自定义脚本

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

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

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

master_ip_failover

该文件只需要修改

代码语言:javascript
复制
my $vip = '11.12.14.41'

master_ip_online_change

该文件也是需要修改

代码语言:javascript
复制
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

觉得文章不错的欢迎关注,转发,收藏~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 宅必备 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实验环境
  • 1. hosts文件
  • 2. 配置免密码登录
  • 3. 搭建主从备份
  • 4. 时间同步
  • 5.创建监控账户
  • 6. 打开防火墙
  • 7.关闭relay日志自动清理
  • 8. 从库开启只读
  • 9. 二进制日志过滤参数一致
  • 10. master节点绑定VIP
  • 11. 准备自定义脚本
  • 11. 参考资料
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档