day10-04-MHA高可用细节剖析

MHA 架构软件结构说明

MHA结构:

node: 所有数据库节点(一主多从)

manager:一个(可以是从节点的最后一个)

manager是无状态节点,MHA通过manager对所有的node 节点进行监测

2.1节点规划

数据库节点,必须至少是1主2从独立实例。

MHA管理节点,最好是独立一台机器

manager端: db03

node端:db01,db02,db03

1主2从,独立数据库实例

2.2 MHA软件的构成(perl语言)

Manager工具包主要包括以下几个工具:

mha4mysql-manager-0.58-0.el7.centos.noarch.rpm

masterha_manger             启动MHA 
masterha_check_ssh      检查MHA的SSH配置状况 
masterha_check_repl         检查MySQL复制状况 
masterha_master_monitor     检测master是否宕机 
masterha_check_status       检测当前MHA运行状态 
masterha_master_switch  控制故障转移(自动或者手动)
masterha_conf_host      添加或删除配置的server信息

####################
Node工具包主要包括以下几个工具:

mha4mysql-node-0.58-0.el7.centos.noarch.rpm


这些工具通常由MHA Manager的脚本触发,无需人为操作
save_binary_logs            保存和复制master的二进制日志 
apply_diff_relay_logs       识别差异的中继日志事件并将其差异的事件应用于其他的
purge_relay_logs            清除中继日志(不会阻塞SQL线程)
  1. MHA 配置过程细节说明

3.1 软连接(必须做)

ln -sv /application/mysql/bin/mysqlbinlog /usr/sbin/
ln -sv /application/mysql/bin/mysql /usr/bin/

MHA 调用命令时,只认绝对路径 /usr/bin/ 不会通过环境变量调用

3.2 互信

建立节点之间互信,是为了建立MHA节点之间数据补偿的网络通道

3.3 Manager软件安装(db03)

要是想节省资源,1主多从的环境,推荐安装在负载最少的slave节点,或者slave的最后一个节点。

因为如果master节点故障,那么mha根据算法要重选新的master,那么把manager安装在最后一个节点是可以规避压力的。

3.4配置文件说明

配置文件目录

mkdir -p /etc/mha

创建日志目录

mkdir -p /var/log/mha/app1/log

/etc/mha/app1.cnf 配置文件名字,可自定义,尽量靠近业务,具有辨识性。

MHA通过配置文件,同时管理多个主从复制,一个配置文件对应一个主从复制结构。

manager_log=/path/mha/log_name.log 这个才是真正的mha日志。

master_binlog_dir=/data/binlog 主节点的binlog日志目录,这个必须一一对应。在MHA环境中,所有节点必须打开binlog

ping_interval=2 探测心跳间隔时间,每两秒探测一次心跳,默认3次机会。

[server1]

[server2]

[server3]

MHA自动检测哪个节点是master,但写在server2的节点,会优先成为下一任master

开启MHA(db03):

nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover  < /dev/null> /var/log/mha/app1/manager.log 2>&1 &

--remove_dead_master_conf 节点发生故障后,会自动把故障节点从配置文件中移除。

--ignore_last_failover 忽略最后一次故障切换。有时需要进行手工切换时,MHA软件会限制切换间隔时间,这个参数可以取消限制。

posted @ 2022-11-24 20:28  oldSimon  阅读(15)  评论(0)    收藏  举报