高可用高性能高扩展

高可用高性能高扩展,第1张

带你玩转MHA高可用集群

一.导言

MHA(MasterHighAvailability)是MySQL高可用性中比较成熟的解决方案。现在很多大型电子商务网站都采用这种解决方案,比如墨宝、陌动、陌汇。它是一套优秀的高可用性软件,用于MySQL高可用性环境中的故障转移和主从升级。在MySQL故障转移过程中,MHA可以在0~30秒内手动或自动完成数据库故障转移 *** 作(必要时需要用脚本实现),而在故障转移过程中,MHA可以最大程度地保证数据的一致性,从而达到真正的高可用。由于这一特点,MHA受到许多大型电子商务网站的青睐,并被重新研究。


软件由两部分组成:MHA管理器(管理节点)和MHA节点(数据节点)。MHA管理器可以部署在独立的机器上来管理多个主从集群,也可以部署在从节点上。MHA节点运行在每台MySQL服务器上,MHA管理器会定期探测集群中的主节点。当主设备出现故障时,它可以自动将最新数据的从设备升级到新的主设备,然后将所有其他从设备重定向到新的主设备。整个故障转移过程对应用程序是完全透明的。


在MHA自动故障转移的过程中,MHA试图从停机的主服务器上保存二进制日志,以最大程度地确保数据不丢失,但这并不总是可行的。例如,如果主服务器硬件出现故障或无法通过ssh访问,MHA无法保存二进制日志,而只能进行故障切换,并丢失最新数据。使用MySQL5.5半同步复制可以大大降低数据丢失的风险。MHA可以与半同步复制结合使用。如果只有一个从服务器收到了最新的二进制日志,MHA可以将最新的二进制日志应用到所有其他从服务器,从而确保所有节点的数据一致性。有时,它可以故意将从节点设置得比主节点慢,在数据库被意外删除但数据丢失时,从从节点的二进制日志中恢复。


目前,MHA主要支持一主多从的架构。要构建MHA,要求复制集群中必须至少有三台数据库服务,一台主服务器和两台从服务器,即一台作为主服务器,一台作为备用主服务器,另一台作为从服务器。因为至少需要三台服务器,淘宝出于机器成本的考虑,也在此基础上进行了改造。目前,淘宝TMHA已经支持一主一从。


MHA高可用性集群架构图:

二、实验配置及要求

IP地址规划:


配置要求:

①各个节点之间可以通过主机名进行通信(这个实现很简单自己找数据)。


②MHA上要安装MHA4MySQL-manager及其两个管理软件mha4mysql-node。


③创建配置文件目录,手动写入配置文件。


三。MHA实战配置

配置每个mysql并启动服务:

Node2:mysqlmaster的配置如下:

编辑/etc/my.cnf

innodb_file_per_table=1

跳过名称解决=1

log-bin=主箱

继电器记录=继电器箱

服务器id=1

启动该服务以执行以下 *** 作:

systemctl启动mariadb.service

授予帐户所有权限:

在*上授予全部权限。*致&apos姆豪泽&apos@&apos10.1.10.%&apos由&aposcncn&apos

授权一个具有复制功能的帐户:

授予复制从属服务器,在*上的复制客户端。*致&apos回复用户和。apos@&apos10.1.10.%&apos由&aposcncn&apos

刷新权限;

节点3:mysqlslave1

编辑/etc/my.cnf配置文件;

innodb_file_per_table=1

跳过名称解决=1

log-bin=主箱

继电器记录=继电器箱

服务器id=3

只读=1

中继-日志-清除=0

启动该服务以执行以下 *** 作:

systemctl启动mariadb.service

将master改为MASTER_HOST=&apos10月1日。apos,主用户=&apos回复用户和。aposMASTER_PASSWORD=&aposcncn&aposMASTER_LOG_FILE=&aposbin.000001&apos,MASTER_LOG_POS=245

启动从机

节点4:mysqlslave2

编辑/etc/my.cnf配置文件;

innodb_file_per_table=1

跳过名称解决=1

log-bin=主箱

继电器记录=继电器箱

服务器id=4

只读=1

中继-日志-清除=0

启动该服务以执行以下 *** 作:

systemctl启动mariadb.service

将master改为MASTER_HOST=&apos10月1日。apos,主用户=&apos回复用户和。aposMASTER_PASSWORD=&aposcncn&aposMASTER_LOG_FILE=&aposbin.000001&apos,MASTER_LOG_POS=245

启动从机;


手动创建mha目录及其配置文件

mkdir/etc/masterha

vim/etc/masterha/app1.conf

[服务器默认值]

用户=mhauser

密码=cncn

manager_workdir=/data/masterha/app1

manager_log=/data/masterha/app1/manager.log

remote_workdir=/data/masterha/app1

ssh_user=root

repl_user=repluser

repl_password=cncn

ping_interval=1

[服务器1]

主机名=10.1.10.66

candidate_master=1

[服务器2]

主机名=10.1.10.67

candidate_master=1

[服务器3]

主机名=10.1.10.68


检查每个节点是否可以相互通信,每个节点的健康状态信息是否正常。



启动集群管理让它在后台运行,调试阶段让它在前台运行。

[root@node1~]#masterha_manager-conf=/etc/masterha/app1.conf

Fri2016年11月25日22:15:37-[错误][/usr/share/perl5/vendor_perl/MHA/mastermonitor.pm,ln280]配置文件/etc/masterha/app1.conf找不到!

Fri2016年11月25日22:15:37-[错误][/usr/share/perl5/vendor_perl/MHA/mastermonitor.pm,ln424]检查配置时出错。at/usr/bin/masterha_manager第50行。

Fri2016年11月25日22:15:37-[错误][/usr/share/perl5/vendor_perl/MHA/mastermonitor.pm,ln523]监控服务器发生错误。

Fri2016年11月25日22时15分37秒-[信息]获得退出代码1(非主设备死亡)。

[root@node1~]#masterha_manager-conf=/etc/mastermha/app1.conf

Fri2016年11月25日22:16:40-[警告]未找到全局配置文件/etc/masterha_default.cnf。跳绳。

Fri2016年11月25日22:16:40-[info]从/etc/mastermha/app1.conf读取应用程序默认配置..

Fri2016年11月25日22:16:40-[info]从/etc/mastermha/app1.conf读取服务器配置..


总结:

可以模拟测试,模拟节点故障,检查主节点是否迁移,新节点上线,检查其运行状态信息是否正常。在实际生产中,高可用性MHA可以大大减少平均故障间隔时间,提高数据库的可用性。对于敏感数据,不建议通过结合脚本自动修复失效节点,手动 *** 作相对安全。


来源:马可教育

官方微信:马可linux运维


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/778021.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存