1.准备MHA集群环境
准备6台虚拟机,并按照本节规划配置好IP参数
在这些虚拟机之间实现SSH免密登录
在相应节点上安装好MHA相关的软件包
使用6台RHEL 7虚拟机,如图-1所示。准备集群环境,安装依赖包,授权用户,配置ssh密钥对认证登陆,所有节点之间互相以root秘钥对认证登录,管理主机以root密钥对认证登录所有数据节点主机,配置mha集群。
1.1 修改主机名,配置IP
msyql{50..57}
192.168.4.{50..57}
1.2 安装包(51-55)
]# mkdir mha-soft-student
]# tar -xvf mha.tar.gz -C mha-soft-student
]# cd mha-soft-student
]# yum -y install perl-*.rpm
1.3 在管理主机上安装mha_node 和 mha-manager包(56操作)
mha-soft-student]# yum -y install perl-DBD-mysql perl-DBI
mha-soft-student]# rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm
1.4 配置ssh密钥对认证登陆
所有节点之间可以互相以ssh密钥对方式认证登陆(以51为例)
]# ssh-keygen
]# for i in {50..57}
> do 
> ssh-copy-id 192.168.4.$i
> done
2. 配置MHA集群环境
配置主节点 master51
配置两个备用主节点 master52、master53
配置两个从节点 slave54、slave55
配置管理节点 mgm56
2.1 配置mha集群环境
2.1.1 安装数据库(51-55同样操作,以51为例)
]# mkdir mysql
]# tar -xvf mysql-5.7.17.tar -C mysql
]# cd mysql/
]# yum -y install perl-JSON
]# rpm -Uvh mysql-community-*.rpm
]# rpm -qa | grep -i mysql
]# systemctl start mysqld
]# grep 'temporary password' /var/log/mysqld.log 
]# mysql -uroot -p''
mysql> alter user user() identified by "123456"; //修改登陆密码
2.1.2 master51 数据库服务器配置文件
]# vim /etc/my.cnf(52.53都配置,修改id)
relay_log_purge=off(不自动删除本机的中继日志文件)
plugin-load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
rpl-semi-sync-master-enabled = 1
rpl-semi-sync-slave-enabled = 1
server_id=51
log-bin=master51
binlog-format="mixed"
validate_password_policy=0
validate_password_length=6
添加主从同步授权用户(51)
mysql> grant replication slave on  *.*  to repluser@"%" identified by "123456";
mysql> RESET MASTER;
mysql> show master status;
mysql> SHOW MASTER STATUS\G
*************************** 1. row ***************************
File: master51.000001
Position: 154
Binlog_Do_DB: 
Binlog_Ignore_DB: 
Executed_Gtid_Set: 
2.1.3 master52数据库服务器配置文件(53同样配置)
mysql> RESET MASTER;
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.4.51',
-> MASTER_USER='repluser',
-> MASTER_PASSWORD='123456',
-> MASTER_LOG_FILE='master51.000001',
-> MASTER_LOG_POS=154;
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS\G
...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...
2.1.4 slave54 数据库服务器配置文件(55一样)
]# vim /etc/my.cnf
[mysqld]
server_id=54
log-bin=mysql54
binlog-format="mixed"
validate_password_policy=0
validate_password_length=6
mysql> RESET MASTER;
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.4.51',
-> MASTER_USER='repluser',
-> MASTER_PASSWORD='123456',
-> MASTER_LOG_FILE='master51.000001',
-> MASTER_LOG_POS=154;
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS\G
...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...
2.2 配置管理主机4.56
# yum -y install perl*(root下)
]# cd mha-soft-student/
]# yum -y install *.rpm
]# tar -xvf mha4mysql-manager-0.56.tar.gz 
]# cd mha4mysql-manager-0.56/
]# prel Makefile.PL 
]# make && make install
]# cd mha-soft-student/mha4mysql-manager-0.56/
]# cp bin/* /usr/local/bin/ 
创建工作目录
]# mkdir /etc/mha_manager
建立样板文件 
]# cp samples/conf/app1.cnf /etc/mha_manager/
]# vim /etc/mha_manager/app1.cnf 
//编辑主配置文件app1.cnf
[server default]
manager_workdir=/etc/mha_manager
manager_log=/etc/mha_manager/manager.log
master_ip_failover_script=/usr/local/bin/master_ip_failover
ssh_user=root
ssh_port=22
repl_user=repluser
repl_password=123456
user=root
password=123456
[server1]
hostname=192.168.4.51    
port=3306
[server2]
hostname=192.168.4.52
port=3306            
candidate_master=1
[server3]
hostname=192.168.4.53
port=3306
candidate_master=1
[server4]
hostname=192.168.4.54
no_master=1
[server5]
hostname=192.168.4.55
no_master=1
创建故障切换的脚本
]# vim samples/scripts/master_ip_failover
35 my $vip='192.168.4.100/24';
36 my $key='1';
37 my $ssh_start_vip = '/sbin/ifconfig eth0:$key $vip';
38 my $ssh_stop_vip = '/sbin/ifconfig eth0:$key down';
39 
40 GetOptions(在这上面添加上面几行)
]# cp samples/scripts/master_ip_failover /usr/local/bin/
]# chmod +x /usr/local/bin/master_ip_failover
51上部署eth0
51 ~]# ifconfig eth0:1 192.168.4.100/24
]# ifconfig eth0:1
eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 192.168.4.100  netmask 255.255.255.0  broadcast 192.168.4.255
ether 52:54:00:d6:46:46  txqueuelen 1000  (Ethernet)
3.测试MHA集群
查看MHA集群状态
测试节点之间的SSH登录
测试集群VIP的故障切换功能
3.1 验证配置
检查配置环境,在主机 52-55 检查是否有同步数据的用户repluser
mysql> select user,host from mysql.user where user="repluser";
mysql> show grants for repluser@"%";
在51的主机上做root的授权,其他的会同步(如果不做,在验证数据节点的主从同步配置时会出错)
mysql> grant all on *.* to root@"%" identified by "123456";
(50-55查看)
mysql> select user,host from mysql.user where user="root";
+------+-----------+
| user | host      |
+------+-----------+
| root | %         |
| root | localhost |
+------+-----------+
验证ssh 免密登陆数据节点主机(56)
-0.56]# cd /usr/local/bin/
bin]# masterha_check_ssh --conf=/etc/mha_manager/app1.cnf
...
MySQL Replication Health is  OK!
3.2 启动管理服务MHA_Manager
--remove_dead_master_conf //删除宕机主库配置
--ignore_last_failover //忽略xxx.health文件
bin]# masterha_manager --conf=/etc/mha_manager/app1.cnf \  
--remove_dead_master_conf --ignore_last_failover 
查看状态(另开一个终端)
]# masterha_check_status --conf=/etc/mha_manager/app1.cnf
停止服务
]# masterha_stop --conf=/etc/mha_manager/app1.cnf
3.3 测试故障转移
启动服务
bin]# masterha_manager --conf=/etc/mha_manager/app1.cnf \ 
--remove_dead_master_conf --ignore_last_failover
查看状态
]# masterha_check_status --conf=/etc/mha_manager/app1.cnf
...master:192.168.4.52
验证数据节点的主从同步配置
bin]# masterha_check_repl --conf=/etc/mha_manager/app1.cnf

转载于:https://www.cnblogs.com/luwei0915/p/10491666.html

三十六.MHA集群概述 、 部署MHA集群 测试配置相关推荐

  1. spring boot 与 iview 前后端分离架构之开发环境基于docker的部署的实现(三十六)

    spring boot 与 iview 前后端分离架构之开发环境基于docker的后端的部署的实现(三十六) 公众号 基于docker的后端的部署 安装mysql数据库 创建数据库 安装redis 安 ...

  2. 嵌入式实时操作系统ucos-ii_「正点原子NANO STM32开发板资料连载」第三十六章 UCOSII 实验 1任务调度...

    1)实验平台:alientek NANO STM32F411 V1开发板2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第三十六章 ...

  3. 避暑山庄消失的三十六景,曾经那么美!

    来源: 老家热河 过去 老家热河曾先后推出了几篇 承德人李树介绍避暑山庄的文章 图文并茂,知识性强 受到很多读者朋友的欢迎 今天 李树又为我们带来了 避暑山庄遗存三十六景 一起看看都是哪里吧 避暑山庄 ...

  4. 【正点原子FPGA连载】第三十六章 基于OV5640的PL以太网视频传输实验-摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0

    1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...

  5. 推荐系统三十六式——学习笔记(三)

    由于工作需要,开始学习推荐算法,参考[极客时间]->[刑无刀大牛]的[推荐系统三十六式],学习并整理. 3 原理篇之紧邻推荐 3.1 协同过滤 要说提到推荐系统中,什么算法最名满天下,我想一定是 ...

  6. 《快速掌握PyQt5》第三十六章 用PyQtGraph绘制可视化数据图表

    第三十六章 用PyQtGraph绘制可视化数据图表 36.1 下载PyQtGraph 36.2 基础知识与用法 36.3 将PyQtGraph嵌入到PyQt5中 36.4 小结 <快速掌握PyQ ...

  7. Python编程基础:第三十六节 模块Modules

    第三十六节 模块Modules 前言 实践 前言 我们目前所有的代码都写在一个文档里面.如果你的项目比较大,那么把所有功能写在一个文件里就非常不便于后期维护.为了提高我们代码的可读性,降低后期维护的成 ...

  8. OpenCV学习笔记(三十六)——Kalman滤波做运动目标跟踪 OpenCV学习笔记(三十七)——实用函数、系统函数、宏core OpenCV学习笔记(三十八)——显示当前FPS OpenC

    OpenCV学习笔记(三十六)--Kalman滤波做运动目标跟踪 kalman滤波大家都很熟悉,其基本思想就是先不考虑输入信号和观测噪声的影响,得到状态变量和输出信号的估计值,再用输出信号的估计误差加 ...

  9. NeHe OpenGL教程 第三十六课:从渲染到纹理

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  10. 三十六、Java集合中的HashMap

    @Author:Runsen @Date:2020/6/3 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

最新文章

  1. 雅虎向阿里巴巴示好原因有二
  2. Android应用程序目录结构框架搭建
  3. 注册DirectShow filter时应该注意中文路径
  4. 一个字稳,云原生产品家族支撑冬奥会九大业务场景,打造云上奥运新体验
  5. linux 消息队列_Linux进程间通信第六讲 标准IPC之消息队列
  6. 【图像处理】透视变换 Perspective Transformation(含续加部分)
  7. python中文叫什么-python中文叫什么
  8. 地震数据爬取——Scrapy爬虫框架应用
  9. 云优CMS火车头数据采集教程-自动采集发布教程
  10. 各种泵的图形符号_水泵cad画法
  11. 10款最佳Python开发工具推荐,每一款都是神器!
  12. 圣丹斯电影节2019:讲故事,不断发展。
  13. AUTOSAR OTA升级
  14. STM32F4端口复用
  15. 音频特效生成与算法 3
  16. windows10访问Ubuntu ext3文件
  17. TextClock不管是24小时还是12小时都显示24小时时间
  18. PyTorch的生态和模型部署
  19. B端与C端产品有何不同?
  20. matlab有限元工具箱计算+python绘图

热门文章

  1. python3编译器不同版本差别大吗_python3.9的转义符使用和其他版本不一样吗?
  2. 因果推断笔记——因果图建模之微软开源的EconML(五)
  3. python实现logistic增长模型
  4. 第六章_循环神经网络(RNN)
  5. 【JZOJ6227】【20190621】ichi
  6. Hadoop之MapReduce理论篇01
  7. 【算法导论】简单哈希表的除法实现
  8. 几道Java基础面试题
  9. (面试必知)必知必会的冒泡排序和快速排序
  10. 让你此生难成大器的七宗罪