MySQL MHA部署 Part 5 MHA部署指南
时间:2022-07-23
本文章向大家介绍MySQL MHA部署 Part 5 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 |
无 |
无 |
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
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是否设置正确
管理节点
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
- 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 实例讲解