mysql高可用架构之MHA架构 - Go语言中文社区

mysql高可用架构之MHA架构


保证事务的一致性

达到真正意义上的高可用

 

MHA提供了什么功能

监控主数据库服务器是否可用

当主DB不可用时,从多个从服务器中选举出新的主数据库服务器

提供了主从切换和故障转移功能

MHA可以与半同步结合

提供主从切换和故障转移功能

 

MHA是如何进行主从切换的:

尝试从出现故障的主数据库保存二进制日志

从多个备选从服务器中选举出新的备选主服务器

可以人为设置一些服务器不参与选举

在备选主服务器和其它从服务器之间同步差异二进制数据

应用从原主DB服务器上保存的二进制日志

提升备选主DB服务器为新的主DB服务器

迁移集群中的其他从DB作为新的主DB的从服务器

 

MHA演示架构

使用GTID的复制模式

MHA配置步骤:

1、配置集群内所有主机的SSH免认证登陆,比如故障转移过程中保存

原主服务器二进制,配置虚拟IP地址等。

2、安装MHA-node软件包(在所有服务器)和MHA-manager软件包(在监控服务器)

yum -y install perl-Config-Tiny.noarch perl-Time-HiRes.x86_64 perl-Parallel-ForkManager perl-Log-Dispatch-Perl.noarch

perl-DBD-MySQL ncftp

3、建立主从复制集群

4、配置MHA管理节点

5、使用masterha_check_ssh和masterha_check_repl对配置进行检验

6、启动并测试MHA服务

 

具体配置:

1、建立基础复制架构

 

启用gtid_mode

建立复制用户

启动复制链路:3.201;3102都启动

 

配置MHA:

1、建立SSH的免认证登陆:ssh-keygen生成密钥

下面三个命令在每个节点(100,101,102)都需要执行

ssh -copy-id -i /root/.ssh/id_rsa '-p 22 root@192.168.3.100'

ssh -copy-id -i /root/.ssh/id_rsa '-p 22 root@192.168.3.101'

ssh -copy-id -i /root/.ssh/id_rsa '-p 22 root@192.168.3.102'

 

安装node软件包

安装支持软件包:yum -y install perl-DBD-MySQL ncftp perl-DBI.x86(所有节点都安装)

在监控服务器安装:

yum -y install perl-Config-Tiny.noarch perl-Time-HiRes.x86_64 perl-Parallel-ForkManager perl-Log-Dispatch-Perl.noarch

perl-DBD-MySQL ncftp

 

安装(监控服务器): rpm -ivh mha4mysql-manager-0.57-0.el7.noarch.rpm

 

安装好后配置:

建立MHA配置目录:mldir -p /etc/mha

从主服务器下载二进制目录(工作目录): mkdir -p /home/mysql_mha

[server default]

user=mha

password=123456  (在主服务器建立用户:grant all privileges on *.* to mha@'192.168.3.%' identified by '123456';)

manager_workdir=/home/mysql_mha  (工作目录)

manager_log=/home/mysql_mha/manager.log

remote_workdir=/home/mysql_mha   (远程服务器工作目录,需要在其 他节点建立这个目录mkdir -p /home/mysql_mha)

ssh_user=root

repl_user=repl  (复制用户)

repl_password=123456

ping_interval=1  (manage线程来检测主数据库是否可以正常连接的间隔)

master_binlog_dir=/home/mysql/sql_log (最好把bin-log都配置在同样的目录,在主从切换时不需要再配置)

master_ip_failover_script=/user/bin/master_ip_failover

secondary_check_script=/usr/bin/masterha_secondary_check -s 192.168.3.101 -s 192.168.3.102 -s 192.168.3.100

[server1]

hostname=192.168.3.100

candidate_master=1

[server2]

hostname=192.168.3.101

candidate_master=1

[server3]

hostname=192.168.3.102

no_master=1

 

切换虚拟IP的脚部/user/bin/master_ip_failover

 

检测是否ssh是否配置成功:masterha_check_ssh --conf=/etc/mha/mysql_mha.cnf

检测配置文件:masterha_check_repl --conf=/erc/mha/mysql_mha.cnf

启动mha:nohup masterha_manager --conf=/etc/mha/mysql_mha.cnf &

主动配置虚拟IP:ifconfig eth0:1 192.168.3.90/24

 

 

MHA 工具的优点:

Perl语言开发的开源软件

可以支持基于GTID的复制模式

MHA在进行故障转移时更不易产生数据丢失

同一台监控节点可以监控多个集群

 

MHA的缺点:

需要编写脚本或利用第三方工具来时间Vip的配置

MHA启动后只会对主数据库进行监控

需要基于SSH免认证配置,存在一定的安全隐患

没有提供从服务器负载均衡的功能

 

 

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_40876291/article/details/86608997
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-10-27 21:46:09
  • 阅读 ( 1698 )
  • 分类:架构

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢