设为首页 收藏本站
查看: 717|回复: 0

[经验分享] MySQL高可用之MHA-12470612

[复制链接]

尚未签到

发表于 2018-9-27 07:39:27 | 显示全部楼层 |阅读模式
  MHA,MySQL的高可用架构,在基于主从架构的模式下,当主服务器挂掉之后,由MHA中manager来决定从哪台slave从服务器当中选择一台作为master主服务器,通常是比较从服务器中的数据,哪个最全,最新,更新时间的长短来判断,当决定使用哪台从服务器作为新的主服务器后,MHA会从其他节点处获取额外信息,避免数据不一致的情况发生,使数据一致。
  MHA有两种角色:
  1.MHA manager
  用于统筹管理一个主从架构集群的master转换,数据复制权限,以及数据库操作权限等设置,通常作为单台服务器进行配置。每一个master/slave集群都作为一个application。
  2.MHA node
  MySQL集群当中的节点,所有在该集群中的服务器都是一个节点,如manager,master,slave1,slave2四台服务器,则有四个node节点。它通过监控具备解析和清理 logs 功能的脚本来加快故障转移。
  MHA架构集群:
  manager 172.16.25.104
  master     172.16.25.101  server_id=11
  slave1      172.16.25.102  server_id=22
  slave2      172.16.25.103  server_id=33
  ①首先配置好一主两从的数据库架构,这一块就不详细描述了,需要注意的是,因为MHA高可用架构的关系,任何一台MySQL服务器都有可能成为主服务器,所以不能像普通主从架构一般,给主服务器开启binlog,给从服务器开启relay_log,需要在主从服务器上都开启binlog与relay_log。
  如该/etc/my.cnf配置
DSC0000.jpg

  ②MHA高可用的实现首先需要构建主从集群,其次,需要将各个节点之间的ssh通信无障碍。
  设置密钥通信
  如master172.16.25.101需要向其余三个节点传送密钥,使之能够无密码访问
  #ssh-keygen -t rsa -P ""
  #ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.25.102
  #ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.25.103
  #ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.25.104
  其余三个节点如是。
  ③安装MHA
  MHA manager
  #yum install -y mha4mysql-manager-0.56-0.el6.noarch.rpm
  该manager安装需要依赖于许多epel源中的插件,联网安装
  MHA node
  #yum install -y mha4mysql-node-0.56-0.el6.noarch.rpm
  四个节点都需要安装
  ④配置manager,使manager能够管理主从集群,手动设置一个配置文件
  在/etc/masterha/app1.cnf(自定义)
DSC0001.jpg

  server default针对于所有MySQL服务器的设置。
  user,password用于对数据库进行管理的账号密码,这个是需要在MySQL集群中,即master,slave1,slave2中授权。
  如
DSC0002.jpg

  ssh_user则是通信时使用的用户,为root。
  repl_user,repl_password用于主从数据库之间复制转移的账户密码,当主服务器down后,从服务器起来,需要在从服务器中进行的change master授权。
  manager_workdir,manager_log则是用于设置manager的工作目录以及日志存放路径。
  master_binlog_dir用于告诉managermaster的binlog日志放置路径。
  ping_interval用于设置访问的间隔,使用ping方式访问。
  server1,server2,server3则是三台MySQL服务器,指定其hostname,可用IP地址代替,若要使用主机名,则需要将主机名写入/etc/hosts中。
  candidate_master=1,用于设置该服务器是否有资格成为主服务器,若为0则无资格。
  MHA manager的安装,会提供诸多工具程序,其常见的如下所示。
  Manager 节点:
  - masterha_check_ssh:MHA 依赖的 SSH 环境检测工具;
  - masterha_check_repl:MySQL 复制环境检测工具;
  - masterha_manager:MHA 服务主程序;
  - masterha_check_status:MHA 运行状态探测工具;
  - masterha_master_monitor:MySQL master 节点可用性监测工具;
  - masterha_master_switch:master 节点切换工具;
  - masterha_conf_host:添加或删除配置的节点;
  - masterha_stop:关闭 MHA 服务的工具;
  Node 节点:
  - save_binary_logs:保存和复制 master 的二进制日志;
  - apply_diff_relay_logs:识别差异的中继日志事件并应用于其它 slave;
  - filter_mysqlbinlog:去除不必要的 ROLLBACK 事件(MHA 已不再使用这个工具);
  - purge_relay_logs:清除中继日志(不会阻塞 SQL 线程);
  使用masterha_check_ssh测试通信环境是否正常
DSC0003.jpg

DSC0004.jpg

  通信环境正常
  使用masterha_check_repl测试数据库之间复制是否正常
DSC0005.jpg

DSC0006.jpg

  复制环境正常
  开启manager,放入后台,并将输出结果放置在manager.log中
DSC0007.jpg

  将master 172.16.25.101mysqld,mysqld_safe服务停掉,查看主服务器是否变更
DSC0008.jpg

  172.16.25.101 is down
  经manager比较,172.16.25.102的数据最为接近,选定172.16.25.102即slave1作为新的master,并将数据与172.16.25.103同步
  若172.16.25.101服务重新启动,则需要将其与现任主服务器中的数据进行同步,授权后即可加入到该MySQL集群当中。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-602522-1-1.html 上篇帖子: 一个参数引起的mysql从库宕机血案 下篇帖子: MySQL+Keepalived实现双机热备
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表