ITPub博客

首页 > 数据库 > 数据库开发技术 > MySQL MHA部署 Part 5 MHA部署指南

MySQL MHA部署 Part 5 MHA部署指南

原创 数据库开发技术 作者:ibsbforever 时间:2019-07-11 21:27:00 0 删除 编辑

 

往期专题请查看
这是一个坚持Oracle,Python,MySQL原创内容的公众号


实验环境

此次实验的环境如下

  • 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. 管理节点配置

vim /etc/mha/mha.conf
[server default]
# mysql user and password
user=monitor
password=123456
ssh_user=root

# working directory on the manager
manager_workdir=/etc/mha/manager
masnager_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是否设置正确

管理节点

root>masterha_check_ssh --conf=/etc/mha/mha.conf

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

2.2 测试复制是否正常

管理节点

root>masterha_check_repl --conf=/etc/mha/mha.conf

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

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

3. 启动MHA

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

管理节点

root>masterha_check_status --conf=/etc/mha/mha.conf

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

管理节点

root> nohup masterha_manager    --conf=/etc/mha/mha.conf --remove_dead_master_conf &

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

4. 停止MHA

root> masterha_stop -conf=/etc/mha/mha.conf 

5. 设置relay log清理计划

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

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

主从库三台

export MYSQL_HOME=/usr/local/mysql
export PATH=$HOME/bin:$MYSQL_HOME/bin:$PATH
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


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



可点击阅读原文获得更好的阅读体验,推荐在PC端阅读

也可在公众站内搜索中回复 mha  搜索相关内容

或直接打开个人网页搜索


http://


往期专题包括:


  • Python 自动化运维

  • MySQL  安装

  • mysqldump命令详解

  • mysqlbinlog命令详解

  • xtrabackup工具详解

  • 打造属于自己的监控系统

  • Python爬虫基础

  • Oracle awr报告全解析

  • Oracle ASM全解析

  • Oracle Data Guard全解析

  • Oracle ClusterWare全解析

  • Oracle常见参数解析

  • Oracle常见故障处理

  • Oracle SQL优化案例


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

原文作者:宅必备;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
Oracle,MySQL DBA,Python自动化运维

注册时间:2019-01-29

  • 博文量
    245
  • 访问量
    243936