Mysql-HMA 管理

核能气质少年 提交于 2020-08-10 21:47:37

1.简介

      在 mysql 主从复制 基础上 集成。请先查询之前内容。

      https://my.oschina.net/u/943316/blog/4335125

 

2.软件下载

MHA  下载页面:https://github.com/yoshinorim/mha4mysql-manager/wiki/Downloads

EPEL  补充下载:https://centos.pkgs.org/7/centos-extras-x86_64/epel-release-7-6.noarch.rpm.html

3. 免密登录

1.主从服务器相互之间免密登录

2.Mha服务器--->主从服务器  免密登录

#生成秘钥
ssh-keygen
#复制秘钥到其他主机 多台主机依次复制
for i in 192.168.202.{128,129}; do ssh-copy-id $i; done

检测秘钥是否生效

ssh root@192.168.1.20 'ifconfig'

3. 主从服务安装

#安装 node 服务
yum localinstall -y mha4mysql-node-0.56-0.el6.noarch.rpm

4.Hma服务安装

1.按照相关软件

#添加 所需额外 依赖
yum install epel-release
#安装 node 服务
yum localinstall -y mha4mysql-node-0.56-0.el6.noarch.rpm
#安装 manage服务
yum localinstall -y mha4mysql-manager-0.56-0.el6.noarch.rpm

如果出现如下错误

运行 --如果有问题,在 https://centos.pkgs.org/7/centos-extras-x86_64/epel-release-7-6.noarch.rpm.html 自行下载安装

#添加 所需额外 依赖
yum install epel-release

如果出现如下错误

请求下载对应依赖包,地址 https://pkgs.org/download/epel-release  或者 http://rpm.pbone.net/

 

2.编辑 Mange 配置文件

vi /etc/masterha_default.cnf 
[server default]
#授权的mysql管理用戶名
user=root
password=root

#ssh免密钥登录的帐号名
ssh_user=root

#mysql复制帐号,用来在主从机之间同步二进制日志等
repl_user=root
repl_password=root

#ping间隔,用来检测master是否正常
ping_interval= 1

#文件配置
manager_workdir=/mha
manager_log=/mha/manager.log
remote_workdir=/mha
#binlog路径--可忽略
master_binlog_dir=/var/lib/mysql

[server1]
hostname=192.168.202.128
#候选人,master挂掉时候优先让它顶
candidate_master=1
#用防止master故障时,切换时slave有延迟,卡在那里切不过来
check_repl_delay = 0

[server2]
hostname=192.168.202.129
candidate_master=1
check_repl_delay = 0

[server3]
hostname=192.168.202.131
#不能成为master
no_master=1
check_repl_delay = 0

3.检测 ssh 通讯

masterha_check_ssh --conf=/etc/masterha_default.cnf

4.检测 主从 节点

masterha_check_repl --conf=/etc/masterha_default.cnf

错误 一 ,未关闭 防火墙 (未给外部访问 mysql开启防火墙)

错误二  master配置了 忽略数据库,但是 主机备份 未 设置

出现为检测正常

5.启动 MHA

masterha_manager --conf=/etc/masterha_default.cnf --ignore_last_failover &

6.检测 MHA 状态

masterha_check_status --conf=/etc/masterha_default.cnf

5.检验MHA服务

1.关闭 master 数据库

systemctl stop mysqld

2.异常时  Master 切换日志

问题:

删除  /mysqlData/mha/etc/app/app.failover.complete   或者  启动命令添加  --ignore_last_failover &

3.其他手动切换

masterha_master_switch --conf=/etc/masterha_default.cnf --master_state=alive --new_master_host=新master的IP --new_master_port=3306 --orig_master_is_new_slave --running_updates_limit=10000

masterha_master_switch --master_state=dead --conf=/etc/masterha_default.cnf --dead_master_host=旧master --new_master_host=新master

#参数说明

--master_state=dead
    强制的参数,参数值为"dead" 或者 "alive" . 如果 设置为 alive 模式,masterha_master_switch 开始在线主库切换操作。
 
--dead_master_host=(hostname)
    强制参数,宕机的主库所在的主机名称。--dead_master_ip 和 --dead_master_port 是可选参数,如果这些参数没有设置,--dead_master_ip 就是 --dead_master_host 解析的IP地址。--dead_master_port 为 3306
 
--new_master_host=(hostname)
    新主机地址,可选参数,这个参数在你明确新的主库的主机,非常有用。(这就意味着你不需要让MHA来决定新的主库)。如果不设置此参数,MHA 将会利用自动failover的规则来选择新的主库。如果设置--new_master_host,MHA选择此主机为新的主库,如果不能成为主库,MHA将会退出
 
--skip_change_master
    如果设置此参数,当发生failover的时候,MAH 在应用完不同的relay log退出,忽略CHANGE MASTER 和 START SLAVE 操作。所以 slaves 不会指向 新的master. 开启此参数,有利于手动的二次检查slave 恢复是否成功
 
--skip_disable_read_only
    设置此参数,MHA 将不会在新的主库上执行 SET GLOBAL read_only =0 操作,有利于手动操作

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!