MHA是一款开源的MySQL高可用程序,为MySQL主从复制架构提供了节点故障转移功能,当

master发生故障时MHA会自动提升拥有最新数据的slave节点成为新的主节点,还提供了master节

点的在线切换功能,即按需切换master/slave节点

Manager会时刻监视主节点,并把主节点的二进制日志保存在本地一份,一旦主节点宕机了,它会找一台拥有最新数据的slave节点,

并通过本地的二进制日志副本,将此slave节点还原到宕机前的一刻,如何找到拥有最新数据的slave节点是通过部署在每台MySQL上

的MHA node实现的(具体实现过程是通过MHA node自带的4个脚本)

MHA是建立在主从架构之上的,因此主从架构得事先配置好,当主节点宕机,任何一个从节点都有可能提升为主节点,因此每个从节点

都得开启二进制日志,而以前的主节点从新上线时,会成为新的从节点,所以在主节点之上也得配置中继日志

下载地址:

index.php?plugin=attach&pcmd=open&file=mha4mysql-manager-0.56-0.el6.noarch.rpm&refer=matsunobu

index.php?plugin=attach&pcmd=open&file=mha4mysql-node-0.56-0.el6.noarch.rpm&refer=matsunobu

一共使用4台虚拟机做测试,一台manager(192.168.238.223),一台主(192.168.238.224 ),两台从(192.168.238.225-

226),主从架构配置上篇博文有介绍这里就不说了,建议在每台mariadb的配置文件中设置skip_name_resolve=ON (禁用DNS主机名查找)

不过在两台从节点的配置文件中必须添加relay_log_purge=0(将中继日志重放完成自动删除中继日志的功能关闭),这是因为

manager要根据中继日志判断从节点的复制进度,从而在主节点宕机时提升拥有最新数据的从节点为主节点

以下操作在centos6上完成

1.在主节点授权一个用户,使manager能使用该用户在各主机上进行必要的管理操作:

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

flush privileges;

2.在MHA的架构中每个节点都必须要能同过ssh协议的密钥方式通信(即基于ssh协议通信无需手动输入密码)

(1)为了方便在某个主机上生成一对ssh密钥,将该对密钥通过scp命令放置在各节点的相应目录下

ssh-keygen -t rsa -P '' (-t 指使用rsa加密方式生成密钥对,-P ‘’ 指不对生成的私钥文件加密)

如果此命令是root用户运行的,则私钥默认保存在/root/.ssh/id_rsa文件中,公钥保存在/root/.ssh/id_rsa.pub文件中

(2)所有节点都是用相同的公钥和私钥,将公钥都追加到/root/.ssh/authorized_keys文件中

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

(3) 将id_rsa,id_rsa.pub文件和authorized_keys文件都复制到其他节点的对应目录下

例: scp -p .ssh/authorized_keys .ssh/id_rsa 192.168.238.225:/root/.ssh/

为了安全建议将authorized_keys文件权限改为600权限,使用scp命令复制时使用-p选项来保留文件权限

接下来在各节点安装好从上面地址下载下来的rpm包,manager只安装在一台单独的服务器上,安装manager,要先配置好epel源

而且要先安装node包(上面下载的包在centos7上也可用)

定义application配置文件:mkdir /etc/mha  vim /etc/mha/cluster1.cnf

[server default]

user=mha

password=mhapass

manager_workdir=/data/masterha/app1       (manager工作目录,这个目录要事先创建)

manager_log=/data/mastermha/app1/manager.log      (manager 日志)

remote_workdir=/data/mastermha/app1      (manager 远程工作目录)

master_binlog_dir=/mydata/data     (指定主节点上二进制日志放置的目录)

ssh_user=root

repl_user=repl

repl_password=replpass

ping_interval=1      (对主节点的检测时间间隔使用ping)

[server1]

hostname=192.168.238.224

[server2]

hostname=192.168.238.225

candidate_master=1(如果主节点宕机,此节点会被提升为主节点即使此节点的不拥有最新数据,建议此节点与主节点配置半同步模式)

[server3]

hostname=192.168.238.226

使用masterha_check_ssh --conf=/etc/mha/cluster1.cnf检测各节点间ssh通信是否ok

最后看到All SSH connection tests passed successfully.表示成功

使用masterha_check_repl --conf=/etc/mha/cluster1.cnf检测主从复制是否ok

最后看到MySQL Replication Health is OK.表示成功

启动MHA: masterha_manager --conf=/etc/mha/cluster1.cnf  (在前台启动测试的目的用)

关掉主节点,查看指定的从节点是否被提升为主节点

检测MHA状态命令masterha_check_status --conf=/etc/mha/cluster1.cnf

停止MHA:masterha_stop --conf=/etc/mha/cluster1.cnf

启动MHA:nohup masterha_manager --conf=/etc/mha/cluster1.cnf > /data/masterha/app1/manager.log 2>&1 &

nohup 表示与当前终端剥离,关闭当前终端MHA依然运行

MHA manager发现主节点宕机时会提升一个从节点为主,但自己也会自动下线,必须手动从新启动MHA,手动启动的过程要通过从节

点的数据备份和从新导入到新的从节点等就绪工作才能从新启动MHA

当从节点提升为主时,manager会自动关闭从节点read_only

问题:当主节点切换,ip地址也会跟着切换,前端的正在进行的写操作将无法进行,如何做到ip地址不会跟着转换

mha数据备份_MHA学习笔记相关推荐

  1. 大数据Hadoop教程-学习笔记01【大数据导论与Linux基础】

    视频教程:哔哩哔哩网站:黑马大数据Hadoop入门视频教程,总时长:14:22:04 教程资源:https://pan.baidu.com/s/1WYgyI3KgbzKzFD639lA-_g,提取码: ...

  2. hadoop大数据开发技术学习笔记第三天:(前序)MySQL数据库进阶

    hadoop大数据开发技术学习笔记第三天:(前序)MySQL数据库进阶 一.回顾知识 1.myschool数据库和数据表的创建 (1)创建数据库 (2)数据库模型图 (3)创建数据表grand (4) ...

  3. 《R数据科学》学习笔记|Note5:使用dplyr进行数据转换(下)

    点击蓝字 关注我! 写在前面 本系列为<R数据科学>(R for Data Science)的学习笔记.相较于其他R语言教程来说,本书一个很大的优势就是直接从实用的R包出发,来熟悉R及数据 ...

  4. 斯坦福大学数据可视化课程学习笔记:第一节 可视化的发展与目标

    <斯坦福大学数据可视化课程学习笔记>课程资源来自于斯坦福大学数据可视化课程,是我所在团队实习生提升计划的一部分.本系列是 "秉姝" 同学在学习过程中记录和整理的学习笔记 ...

  5. 斯坦福大学数据可视化课程学习笔记:第二节 从数据到图像

    <斯坦福大学数据可视化课程学习笔记>课程资源来自于斯坦福大学数据可视化课程,是我所在团队实习生提升计划的一部分.本系列是 "秉姝" 同学在学习过程中记录和整理的学习笔记 ...

  6. 《R数据科学》学习笔记|Note8:使用dplyr处理关系数据

    使用dplyr处理关系数据 往期文章 <R数据科学>学习笔记|Note1:绪论 <R数据科学>学习笔记|Note2:使用ggplot2进行数据可视化(上) <R数据科学& ...

  7. 大数据Hadoop教程-学习笔记02【Apache Hadoop、HDFS】

    视频教程:哔哩哔哩网站:黑马大数据Hadoop入门视频教程 教程资源:https://pan.baidu.com/s/1WYgyI3KgbzKzFD639lA-_g 提取码: 6666 [P001-P ...

  8. 数据流动控制学习笔记

    组合逻辑和时序逻辑学习笔记 服完上篇博文的知识,再服用此博文效果更佳!认真看下去,其实还挺有意思. 本文来自于<从算法设计到硬件逻辑的实现>,仅供学习交流使用! 我们知道,诸如加.减.乘. ...

  9. VHDL的数据对象(学习笔记1)

    VHDL语言数据对象 VHDL语言学习笔记(一):数据对象 内容:本文主要介绍VHDL语言的三种主要数据对象,即常量(constant).变量(variable)和信号(signal). 文章目录 V ...

最新文章

  1. mysql.net开发驱动_mysql数据库.net开发驱动(mysql connector net )
  2. 复制集配置文件linux,mongodb的复制集实现
  3. mac端addr2line的NDK位置和使用
  4. OPC DA通讯 KEP6.4 DCOM 配置脚本
  5. Linux 建立文件夹的链接
  6. 爬虫-芒果TV-弹幕评论
  7. 解决formview遍历控件的问题
  8. Android短信验证码-使用mob免费版
  9. RabbitMQ队列,直连队列,主题队列,扇形队列,死信队列,延迟
  10. 黎明前的黑夜如此漫长
  11. 软件测试与质量保障之间的关系
  12. Linux编程和windows编程的区别
  13. python适合做网站吗_零基础学python—做网站
  14. 计算机使用痕迹,彻底清除电脑使用痕迹的方法
  15. k8s(十二)、分布式存储Ceph RBD使用
  16. SQL注入Cookie注入
  17. 雅马哈笔试_汉英翻译
  18. Matlab中的snr
  19. Alessandro De Luca 大神级任务广义动量应用于动力学解决方案
  20. 富可视m310 android 4.4,富可视 M310 4.2.1 ROM刷机包 版本发布公告

热门文章

  1. python判断当前时间是否在两个时间之间_Python 判断时间是否在时间区间内的实例...
  2. 别人对程序员的印象都是加班?
  3. java观察者模式学习
  4. java schema 验证_java实现的XMLschema验证是什么?
  5. c语言学习-编写函数计算式子:S=2*1*1!+2*2*2!+……+2n*n!的值。要求编写自定义函数分别求解2n和n!,在编写求解S的函数。
  6. 【Playable API】不用Animator如何播放动画?
  7. 统一并发 IV——走向跨平台
  8. 在C#中从Keras.NET开始——训练您的第一个模型
  9. 边缘设备上的实时AI人员检测:使用预先训练的SSD模型检测人员
  10. 使用Entity Developer构建ASP.NET Core Web API应用程序