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

MySQL MHA部署 Part 5 MHA部署指南

作者头像
bsbforever
发布2020-08-19 16:22:09
7230
发布2020-08-19 16:22:09
举报

实验环境

此次实验的环境如下

  • 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
1.png

1. 管理节点配置

代码语言:javascript
复制
vim /etc/mha/mha.conf
代码语言:javascript
复制
[server default]
# mysql user and password
user=monitor
password=123456
ssh_user=root

# working directory on the manager
manager_workdir=/etc/mha/manager
manager_log=/etc/mha/manager/mha.log
ping_interval=1

# working directory on MySQL servers
remote_workdir=/etc/mha/node

# replication user
repl_user=repl
repl_password=rpl
master_binlog_dir=/oradata/datalog/mysql/binlog

## customized script
master_ip_failover_script=/etc/mha/script/master_ip_failover
master_ip_online_change_script=/etc/mha/script/master_ip_online_change
secondary_check_script=/usr/bin/masterha_secondary_check -s 11.12.14.30  -s 11.12.14.39 --user=root  --master_host=11.12.14.29 --master_ip=11.12.14.29  --master_port=3306

[server1]
hostname=shytest
candidate_master=1

[server2]
hostname=shytest2
candidate_master=1

[server3]
hostname=shytest3
no_master=1

接下来我们来解释每个参数的意义

  • manager_workdir 管理节点工作目录,mha运行时会有状态文件生成
  • masnager_log 管理节点生成的日志
  • ping_interval 管理节点检测主库状态的间隔,默认为3s
  • remote_workdir MHA node工作目录,不存在会自动建立,如果不允许创建,MHA Node自动异常退出
  • master_binlog_dir 指定主库的二进制日志位置,防止管理节点无法连接主库获取日志位置
  • master_ip_failover_script 发生切换时VIP漂移脚本
  • master_ip_online_change_script 用于手动切换时VIP的漂移
  • secondary_check_script 若管理节点无法连接主库,则调用该脚本从从库检测主库状态
  • candidate_master 指定如果主库发生故障,优先提升该节点为主库
  • no_master 指定该节点不会成为主库

2. 测试连接

2.1 测试ssh是否设置正确

管理节点

代码语言:javascript
复制
root>masterha_check_ssh --conf=/etc/mha/mha.conf
2.png
2.png

测试通过会有成功字样打印出来

2.2 测试复制是否正常

管理节点

代码语言:javascript
复制
root>masterha_check_repl --conf=/etc/mha/mha.conf

测试通过会有成功字样打印出来

通过输出我们可以看到相关架构信息

4.png
4.png

3. 启动MHA

首先我们可以检测MHA是否已启动

管理节点

代码语言:javascript
复制
root>masterha_check_status --conf=/etc/mha/mha.conf
5.png
5.png

我们在manager上执行如下命令开启MHA

管理节点

代码语言:javascript
复制
root> nohup masterha_manager    --conf=/etc/mha/mha.conf --remove_dead_master_conf &

--remove_dead_master_conf意思为当发生切换后,老的主库信息会从配置文件删除

6.png
6.png

4. 停止MHA

代码语言:javascript
复制
root> masterha_stop -conf=/etc/mha/mha.conf 
7.png
7.png

5. 设置relay log清理计划

前面我们说到我们已经取消了relay log的自动清理,这里需要在主从库3台上设置定时任务手动清理

这里首先需要在root用户环境变量中增加mysql相关路径

主从库三台

代码语言:javascript
复制
export MYSQL_HOME=/usr/local/mysql
export PATH=$HOME/bin:$MYSQL_HOME/bin:$PATH
代码语言:javascript
复制
0 4 1 * * /usr/bin/purge_relay_logs --user=monitor --password=123456 -disable_relay_log_purge --workdir=/tmp/ >> /tmp/purge_relay_logs.log 2>&1
8.png
8.png

6. 参考资料

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实验环境
  • 1. 管理节点配置
  • 2. 测试连接
    • 2.1 测试ssh是否设置正确
      • 2.2 测试复制是否正常
      • 3. 启动MHA
      • 4. 停止MHA
      • 5. 设置relay log清理计划
      • 6. 参考资料
      相关产品与服务
      云数据库 SQL Server
      腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档