MHA-Atlas-MySQL高可用(下)

链接:https://pan.baidu.com/s/17Av92KQnJ81Gc0EmxSO7gA

提取码:a8mq

复制这段内容后打开百度网盘手机App,操作更方便哦

6. 配置VIP漂移

主机名 IP地址 网卡模式 漂移VIP 描述
Mysql-Master 192.168.200.123 NAT8 VIP:192.168.200.111 系统:CentOS6.5(6.x都可以)安装:mysql5.6
Mysql-Slave01 192.168.200.124 NAT8 VIP:192.168.200.111 系统:CentOS6.5(6.x都可以)安装:mysql5.6
Mysql-Slave02 192.168.200.125 NAT8 VIP:192.168.200.111 系统:CentOS6.5(6.x都可以)安装:mysql5.6

6.1 IP漂移的两种方式

  • 通过keepalived的方式,管理虚拟IP的漂移
  • 通过MHA自带脚本方式,管理虚拟IP的漂移

6.2 MHA脚本管理方式

6.2.1 获取管理脚本master_ip_failover

提示:yum安装的manager是没有这个脚本的。

我们需要从manager的源码包里复制一个。

[root@Mysql-Slave02 yuanmabao]# pwd
/root/yuanmabao
[root@Mysql-Slave02 yuanmabao]# ll mha4mysql-manager-0.56.tar.gz
-rw-r--r--. 1 root root 113914 Oct 5 20:57 mha4mysql-manager-0.56.tar.gz
[root@Mysql-Slave02 yuanmabao]# tar xf mha4mysql-manager-0.56.tar.gz [root@Mysql-Slave02 yuanmabao]# cd mha4mysql-manager-0.56/samples/scripts/
[root@Mysql-Slave02 scripts]# ll
total 32
-rwxr-xr-x. 1 4984 users 3648 Apr 1 2014 master_ip_failover #这就是管理虚拟IP的脚本
-rwxr-xr-x. 1 4984 users 9870 Apr 1 2014 master_ip_online_change
-rwxr-xr-x. 1 4984 users 11867 Apr 1 2014 power_manager
-rwxr-xr-x. 1 4984 users 1360 Apr 1 2014 send_report [root@Mysql-Slave02 scripts]# cp master_ip_failover /usr/local/bin/
#复制到/usr/local/bin目录下
[root@Mysql-Slave02 scripts]# which master_ip_failover
/usr/local/bin/master_ip_failover

6.2.2 修改mha配置文件

[root@Mysql-Slave02 ~]# cat /etc/mha/mha1.cnf
[server default]
manager_log=/var/log/mha/mha1/manager
manager_workdir=/var/log/mha/mha1
master_binlog_dir=/usr/local/mysql/data
master_ip_failover_script=/usr/local/bin/master_ip_failover #添加脚本位置
user=mha
password=971108
ping_interval=2
repl_user=rep
repl_password=971108
ssh_user=root #candidate_master=1 #留着备用的注释项
#check_repl_delay=0 #留着备用的注释项 [server1]
hostname=192.168.200.123
port=3306 [server2]
hostname=192.168.200.124
port=3306 [server3]
hostname=192.168.200.125
port=3306

6.2.3 修改源程序自带VIP漂移脚本

#在下边的脚本里添加如下4行代码:
[root@Mysql-Slave02 ~]# sed -n '34,37p' /usr/local/bin/master_ip_failover
my $vip = '192.168.200.111/24'; #定义VIP
my $key = '0'; #定义网卡后缀数值,如果eth0就是0,eth1就是1
my $ssh_start_vip = "/sbin/ifconfig eth0:$key $vip"; #绑定VIP的命令
my $ssh_stop_vip = "/sbin/ifconfig eth0:$key down"; #关闭VIP的命令

特别提示:由于自带的模板脚本特别的坑,需要修改的地方太多,因此,咱们可以直接拷贝脚本文件放到/usr/local/bin目录下,并赋予x权限。

6.2.4 修改后的master_ip_failover脚本的内容如下:

[root@Mysql-Slave02 ~]# cat  /usr/local/bin/master_ip_failover
#!/usr/bin/env perl use strict;
use warnings FATAL => 'all'; use Getopt::Long; my (
$command, $ssh_user, $orig_master_host,
$orig_master_ip, $orig_master_port, $new_master_host,
$new_master_ip, $new_master_port
); my $vip = '192.168.200.111/24';
my $key = '0';
my $ssh_start_vip = "/sbin/ifconfig eth0:$key $vip";
my $ssh_stop_vip = "/sbin/ifconfig eth0:$key down"; GetOptions(
'command=s' => \$command,
'ssh_user=s' => \$ssh_user,
'orig_master_host=s' => \$orig_master_host,
'orig_master_ip=s' => \$orig_master_ip,
'orig_master_port=i' => \$orig_master_port,
'new_master_host=s' => \$new_master_host,
'new_master_ip=s' => \$new_master_ip,
'new_master_port=i' => \$new_master_port,
); exit &main(); sub main {
if ( $command eq "stop" || $command eq "stopssh" ) {
my $exit_code = 1;
eval {
print "Disabling the VIP on old master:$orig_master_host \n";
&stop_vip();
$exit_code = 0;
};
if ($@) {
warn "Got Error: $@\n";
exit $exit_code;
}
exit $exit_code;
}
elsif ( $command eq "start" ) {
my $exit_code = 10;
eval {
print "Enabling the VIP - $vip on the new master - $new_master_host \n";
&start_vip();
$exit_code = 0;
};
if ($@) {
warn $@;
exit $exit_code;
}
exit $exit_code;
}
elsif ( $command eq "status" ) {
print "Checking the Status of the script..OK \n";
`ssh $ssh_user\@$orig_master_host \" $ssh_start_vip \"`;
exit 0;
}
else {
&usage();
exit 1;
}
}
sub start_vip() {
`ssh $ssh_user\@$new_master_host \" $ssh_start_vip \"`;
}
sub stop_vip() {
`ssh $ssh_user\@$orig_master_host \" $ssh_stop_vip \"`;
}
sub usage {
print
"Usage: master_ip_failover --command=start|stop|stopssh|status --orig_master_host=host --orig_master_ip=ip --orig_master_port=port --new_master_host=host --new_master_ip=ip --new_master_port=port\n";
}

6.2.5 重启动mha管理端

[root@Mysql-Slave02 ~]# ps -ef | grep mha | grep -v grep   #查看mha进程
root 14138 13211 0 19:22 pts/3 00:00:00 perl /usr/bin/masterha_manager --conf=/etc/mha/mha1.cnf --remove_dead_master_conf --ignore_last_failover
[root@Mysql-Slave02 ~]# pkill perl #杀掉perl进程
[1]+ Exit 1 nohup masterha_manager --conf=/etc/mha/mha1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/mha1/manager.log 2>&1
[root@Mysql-Slave02 ~]# ps -ef | grep mha | grep -v grep #查看mha进程 [root@Mysql-Slave02 ~]# nohup masterha_manager --conf=/etc/mha/mha1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/mha1/manager.log 2>&1 & #启动mha进程
[1] 1574
[root@Mysql-Slave02 ~]# ps -ef | grep mha | grep -v grep
root 1574 1520 17 02:08 pts/0 00:00:00 perl /usr/bin/masterha_manager --conf=/etc/mha/mha1.cnf --remove_dead_master_conf --ignore_last_failover

提示:如果启动mha进程失败,需要进行mha的连接检测


  • masterha_check_ssh --conf=/etc/mha/mha1.cnf ssh #连接检测
  • masterha_check_repl --conf=/etc/mha/mha1.cnf #主从复制检测

6.3 VIP漂移脚本验证测试。

架构初始状态:

MHA-Atlas-MySQL高可用(下)的更多相关文章

  1. 魅族资深DBA:利用MHA构建MySQL高可用平台

    龙启东 魅族资深DBA 负责MySQL.Redis.MongoDB以及自动化平台建设 .擅长MySQL高可用方案.SQL性能优化.故障诊断等. 本次分享主要包括以下几方面: 如何利用MHA 改造MHA ...

  2. 构建MHA实现MySQL高可用集群架构

    一.MHA简介 MHA(Master HighAvailability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开 ...

  3. MHA实现mysql高可用复制集群

    MHA简述 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件.在My ...

  4. 基于MHA的MYSQL高可用方案

    一.MHA 简介 MHA (Master High Availability )目前在 MySQL 高可用方面是一个相对成熟的解决方案,它由日本 DeNA 公司的 youshimaton 员工(现就职 ...

  5. MHA的MySQL高可用方案实战

    功能: 1)master的故障切换(keepalived VIP的飘移) 2)主从复制角色的提升和重新转向 其中master 对外提供写服务,备选master2(实际的slave提供读服务,slave ...

  6. 使用mha 构建mysql高可用碰到几个问题

    根据网上配置,安装好mha ,建议到https://code.google.com/archive/p/mysql-master-ha/downloads  下载0.56版本 1.首先先确定各个主机之 ...

  7. Mysql 高可用(MHA)-读写分离(Atlas)-分布式架构(Mycat)

    Mysql 高可用(MHA)-读写分离(Atlas) 1. 搭建主从复制(一主两从) 1.1 准备环境 1 主库:10.0.0.51/db01 2 从库:10.0.0.52/db02,10.0.0.5 ...

  8. 转一下大师兄的"MySQL高可用架构之MHA"

    简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是 ...

  9. (转)MySQL高可用架构之MHA

    MySQL高可用架构之MHA  原文:http://www.cnblogs.com/gomysql/p/3675429.html 简介: MHA(Master High Availability)目前 ...

  10. MySQL高可用架构之MHA

    简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是 ...

随机推荐

  1. Supervisor 在ubuntu系统下添加自启动

    最近在使用frp内网穿透,以便自己的工具能在外网访问.自己内网主机有时需要重启,为了工具能正常访问,所以使用supervisor工具进行进程管理,supervisor的自启动成个很必要的需求.下面简单 ...

  2. PROXY——代理模式

    代理,说白了就是中介.假设有俩对象A和B,A想访问B,但是根据迪米特法则,我们不能喝陌生人说话,简而言之就是A要减少知道B的相关情况,要降低A与B的耦合度.这时我们使用中介C,而C拥有B的相关情况,A ...

  3. Java Exception异常介绍

     一:介绍java异常       异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwab ...

  4. HDU-4126 Genghis Khan the Conqueror 树形DP+MST (好题)

    题意:给出一个n个点m条边的无向边,q次询问每次询问把一条边权值增大后问新的MST是多少,输出Sum(MST)/q. 解法:一开始想的是破圈法,后来想了想应该不行,破圈法应该只能用于加边的情况而不是修 ...

  5. java中数据库和VO的一一对应关系

    如图所示,数据库中数据如果有下划线,则JavaVO中删除,除第一个单词外,其他单词首字母大写

  6. HttpClient类详解

    文章链接:https://blog.csdn.net/justry_deng/article/details/81042379 HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了 ...

  7. boost库:函数对象

    函数对象是指那些可以被传入到其它函数或是从其它函数返回的一类函数. 1. boost::bind bind提供了一个机制,是函数与几乎不限数量的参数一起使用,就可以得到指定签名的函数.bind会复制传 ...

  8. Nacos 常见问题及解决方法

    Nacos 开源至今已有一年,在这一年里,得到了很多用户的支持和反馈.在与社区的交流中,我们发现有一些问题出现的频率比较高,为了能够让用户更快的解决问题,我们总结了这篇常见问题及解决方法,这篇文章后续 ...

  9. Codeforces #55D (数位dp+离散化)

    Description Volodya is an odd boy and his taste is strange as well. It seems to him that a positive ...

  10. Mysql学习-安装与启动

    安装mysqlrpm -ivh Mysql-server....rpm安装完成后,会提示/usr/bin/mysqladmin -u root password 'new-password'也可以用m ...