MySQL MHA部署 Part 4 MHA部署前准备
实验环境
此次实验的环境如下
- 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信息
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
11. 准备自定义脚本
这里我们通过网盘下载,放到/etc/mha/script下面并赋予可执行权限
链接: https://pan.baidu.com/s/18H12bTIYHi2H0dXs2DI7NA 提取码: mwkq
接下来我们修改相关的文件
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
觉得文章不错的欢迎关注,转发,收藏~
- 树莓派与arduino通信
- process information unavailable 的解决办法
- JS魔法堂:再识IE的内存泄露
- 给树莓派安装中文字库
- Hadoop(十七)之MapReduce作业配置与Mapper和Reducer类
- Design Pattern: Observer Pattern
- Hadoop(十六)之使用Combiner优化MapReduce
- ActiveMQ笔记(6):消息延时投递
- CentOS 安装 Maven
- Architecture Pattern: Publish-subscribe Pattern
- OOAD-设计模式(三)之创建型设计模式(5种)
- ActiveMQ笔记(5):JMX监控
- session失效时间设置
- ActiveMQ笔记(4):搭建Broker集群(cluster)
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- 牛逼!Intellij IDEA竟然有个功能可自动生成代码,你用过没?
- 导出mysql表结构生成grpc需要的proto文件工具
- 尤大 3 天前发在 GitHub 上的 vue-lit 是啥?
- 微信小程序客服消息功能 php
- CVPR 2020 在频域中学习的DCTNet
- 微信小程序发送模板消息
- Golang 下载文件
- layui省市区三级联动插件
- GO 依赖管理工具go Modules(官方推荐)
- Go 之 interface接口理解
- Go 三个点(...)用法
- Go操作Elasticsearch
- Golang 跨域
- 使用AB对Nginx压测和并发预估
- gin集成swagger构建api文档