实现atlas的高可用

实现atlas的高可用_第1张图片
目的: 再此 MHA 架构中, Atlas 成为全局的 单点故障,一旦停止服务,数据库服务将变得不可用。
给Atlas 做一个冗余
1、 重新克隆一个 虚拟机,用于 Atlas 备机,起名为 192.168.10.87 proxy-87

2、 拷贝,并安装 相关软件
[root@proxy-87 ~]# yum install openssl openssl-devel
[root@proxy-87 ~]# yum install atlas-3.10.1-12.el7.x86_64.rpm
[root@proxy-87 ~]# yum install Atlas-sharding_1.0.1-el6.x86_64.rpm

3、从 当前Atlas 拷贝 配置文件, 双方的配置文件,保持一模一样。

参照atlas的读写分离里的相关配置 https://blog.csdn.net/ITCBD_l/article/details/89738767

proxy-address=0.0.0.0:3306
admin-address=0.0.0.0:2345

4、 两台主机各自 安装 keepalived

[root@proxy-87 ~]# yum install keepalived
[root@proxy-88 ~]# yum install keepalived

5、修改 keepalived 的配置文件,

在同一个交换机中,有 多个 keepalived 的组播存在,为了避免冲突,需要设置不同的 组播 ID

global_defs {
   router_id  proxy86
}

vrrp_instance   proxy1 {
    state BACKUP
    interface eth0
    virtual_router_id  60
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 2222
    }
    virtual_ipaddress {
        192.168.10.88
    }
}

实现atlas的高可用_第2张图片实现atlas的高可用_第3张图片
6、 192.168.10.86 先启动 keepalived VIP 就在 86 上, 87 后启动keeoalived

7、 86 87 都启动 atlas,观察 是否正常监控,和提供 服务。

    ## 可以直接让  PHP  直接连接   192.168.10.87 (备用 atlas),看他是否能与 主 atlas 一样提供服务。
    [root@php-23 ~]# mysql -uuplooking  -h192.168.10.87  -p123123 -e "select * from class.students where sid=89;"   

8、 此时的状态是
在这里插入图片描述
9、编写 altas 和 keepalive的 联动 脚本

## 监控 当前  atlas 的 3306 服务 ,如果 停止服务,就 停止 keepalived  IP,就漂移到 备用 atlas 

[root@proxy-87 ~]# cat /test/mon-atlas.sh

#!/bin/bash

log="/root/atlas.log"

while [ 1 -lt 2 ]
do
sleep 3
mysql -uuplooking -p123123 -h127.0.0.1 -P3306 -e "select user();" > /dev/null 2>&1

if [  $? -ne  0 ]
then
	echo "`date` [Atlas发生故障切换] ============== " >> $log
	systemctl stop keepalived

fi
done

10、 测试, 两边 都将 脚本运行起来。
在这里插入图片描述

停止 86 的 atlas 服务,脚本 SQL 语句执行失败,关闭 86 的keepalived ,VIP 就会漂移到 备机
完成一次切换。

修复时, 在 86 上,先启动 atlas , 再 启动 keepalived 他不会抢 当前 VIP, 为下一次 切换,做好准备工作。

你可能感兴趣的:(Linux运维,mysql,MHA,atlas)