美文网首页
Mysql 高可用之MHA安装配置

Mysql 高可用之MHA安装配置

作者: later02 | 来源:发表于2020-04-19 07:48 被阅读0次

MHA基础架构规划和实施

主库宕机处理过程

1. 监控节点 (通过配置文件获取所有节点信息)

  系统,网络,SSH连接性

  主从状态,重点是主库

2. 选主

(1) 如果判断从库(position或者GTID),数据有差异,最接近于Master的slave,成为备选主

(2) 如果判断从库(position或者GTID),数据一致,按照配置文件顺序,选主.

(3) 如果设定有权重(candidate_master=1),按照权重强制指定备选主.

    1. 默认情况下如果一个slave落后master 100M的relay logs的话,即使有权重,也会失效.

    2. 如果check_repl_delay=0的化,即使落后很多日志,也强制选择其为备选主

3. 数据补偿

(1) 当SSH能连接,从库对比主库GTID 或者position号,立即将二进制日志保存至各个从节点并且应用(save_binary_logs )

(2) 当SSH不能连接, 对比从库之间的relaylog的差异(apply_diff_relay_logs)

4. Failover

将备选主进行身份切换,对外提供服务

其余从库和新主库确认新的主从关系

5. 应用透明(VIP)

6. 故障切换通知(send_reprt)

7. 二次数据补偿(binlog_server)

8. 自愈自治(待开发...)

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

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工具包主要包括以下几个工具:

这些工具通常由MHA Manager的脚本触发,无需人为操作

save_binary_logs            保存和复制master的二进制日志

apply_diff_relay_logs      识别差异的中继日志事件并将其差异的事件应用于其他的

purge_relay_logs            清除中继日志(不会阻塞SQL线程)

1.1规划

主库

db01  node 

从库

db02 node 

db03  node  manager

1.2 准备环境(1主2从GTID,详情见mysql GTID复制详情)

1.3 配置关键程序软连接(所有节点)

ln  -s /usr/local/database/mysql/bin/mysqlbinlog   /usr/bin/mysqlbinlog 

ln  -s /usr/local/database/mysql/bin/mysql  /usr/bin/mysql

1.4 配置各节点互信(密钥对)

later01:

rm -rf /root/.ssh

ssh-keygen 

cd  /root/.ssh/

mv id_rsa.pub authorized_keys

scp -r /root/.ssh/ 139.129.93.203:/root

scp -r /root/.ssh/ 39.101.204.8:/root

验证:

ssh 139.129.93.203 date 

ssh 39.101.204.8 date 

ssh 39.101.199.159 date 

later03:

rm -rf /root/.ssh/*

ssh-keygen 

cd  /root/.ssh/

mv id_rsa.pub authorized_keys

scp -r /root/.ssh/ 39.101.199.159:/root

scp -r /root/.ssh/ 139.129.93.203:/root

验证:

ssh 139.129.93.203 date 

ssh 39.101.204.8 date

ssh 39.101.199.159 date 

later02:

rm -rf /root/.ssh

ssh-keygen 

cd  /root/.ssh/

mv id_rsa.pub authorized_keys

scp -r /root/.ssh/ 39.101.199.159:/root

scp -r /root/.ssh/ 39.101.204.8:/root

验证:

ssh 139.129.93.203 date 

ssh 39.101.204.8 date

ssh 39.101.199.159 date 

1.5安装软件

yum install perl-DBD-MySQL -y 

rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm 

在db01主库中创建mha需要的用户

grant all privileges on *.* to mha@'%' identified  by 'mha';

1.6 Manage软件的安装(db03)

yum install -y perl-Config-Tiny  

yum install -y epel-release 

yum install -y perl-Log-Dispatch  

yum install -y perl-Parallel-ForkManager   

yum install -y perl-Time-HiRes

rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm

创建配置文件目录[db03]

 mkdir -p /etc/mha

创建日志目录

 mkdir -p /var/log/mha/app1

编辑mha配置文件vim /etc/mha/app1.cnf

cat >/etc/mha/app1.cnf <<EOF

[server default]

manager_log=/var/log/mha/app1/manager  #日志信息

 manager_workdir=/var/log/mha/app1  #工作目录

 master_binlog_dir=/binlog/3306   #主库binlog位置点信息

 user=mha 

 password=mha 

 ping_interval=2

repl_password=123

repl_user=repl

ssh_user=root

[server1]

hostname=39.101.199.159

port=3306

[server2]

hostname=139.129.93.203 

port=3306

[server3]

hostname=39.101.204.8

port=3306

EOF 

1.7 状态检查(db03)

masterha_check_ssh --conf=/etc/mha/app1.cnf  --ssh互信检查

masterha_check_repl --conf=/etc/mha/app1.cnf  --主从检查

出现报错?

[error][/usr/share/perl5/vendor_perl/MHA/ServerManager.pm, ln492]  Server 39.101.204.8(39.101.204.8:3306) is dead, but must be alive! Check server settings.

解决?

检查该从库是否启动? 已启动

检查该从库状态是否正常?正常

难道是因为从库和manage节点是一台服务器引起的?

查资料:检查防火墙是否关闭

1.  systemctl status firewalld   为关闭状态

2.检查selinux  

getenforce   为永久关闭状态 

因为这个是买的阿里云服务器:所以需要检查阿里云云服务安全组:

发现没有对外开放3306端口  

通过设置开放3306端口解决此问题.

1.8 开启MHA

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 &

1.9 查看MHA的状态 

masterha_check_status --conf=/etc/mha/app1.cnf

[root@later03/usr/local/bin]# masterha_check_status --conf=/etc/mha/app1.cnf

app1 (pid:26779) is running(0:PING_OK), master:39.101.199.159

相关文章

网友评论

      本文标题:Mysql 高可用之MHA安装配置

      本文链接:https://www.haomeiwen.com/subject/wvocmhtx.html