atlas代理mysql_Mysql中间件代理 Atlas

本文详细介绍了如何配置MySQL Atlas代理实现高可用性,包括主从服务器环境、Atlas安装、Keepalived的部署以及故障切换测试,确保数据库服务在Atlas故障时不会中断。
摘要由CSDN通过智能技术生成

本文接上文介绍atlas的安装配置,以及借助keepalive软件实现altas的ha,避免由于atlas故障,导致数据库服务中断的情况出现:

一:环境介绍

Atlas 主:192.168.1.12/24

Atlas 从:192.168.1.81/24

Atlas vip:  192.168.1.230/24

Atlas write:

master:192.168.1.225/24

Slave1:192.168.1.226/24

Slave2:192.168.1.227/24

管理节点:192.168.1.12/24

Mha vip:  192.168.1.231/24

Atlas  read:

Slave2:192.168.1.227/24

Slave3:192.168.1.228/24

二:安装atlas,12服务器及81服务器执行同样的操作

# yum -y install openssl openssl-devel

# wget https://github.com/Qihoo360/Atlas/releases/download/2.1/Atlas-2.1.el6.x86_64.rpm

# rpm -ivh Atlas-2.1.el6.x86_64.rpm

# cd /usr/local/mysql-proxy/conf/

# /usr/local/mysql-proxy/bin/encrypt 123456

/iZxz+0GRoA=

# grep -v '^#' /usr/local/mysql-proxy/conf/test.cnf  |grep -v '^$'

[mysql-proxy]

admin-username = admin

admin-password = admin

proxy-backend-addresses = 192.168.1.231:3306

proxy-read-only-backend-addresses = 192.168.1.227:3306,192.168.1.228:3306

pwds = root:/iZxz+0GRoA=

daemon = true

keepalive = true

event-threads = 8

log-level = message

log-path = /usr/local/mysql-proxy/log

proxy-address = 0.0.0.0:1234

admin-address = 0.0.0.0:2345

# /usr/local/mysql-proxy/bin/mysql-proxyd test start

OK: MySQL-Proxy of test is started

# netstat -ntpl |grep mysql-proxy

tcp        0      0 0.0.0.0:2345                0.0.0.0:*                   LISTEN      29643/mysql-proxy

tcp        0      0 0.0.0.0:1234                0.0.0.0:*                   LISTEN      29643/mysql-proxy

# tail -f /usr/local/mysql-proxy/log/test.log

2014-10-29 11:12:11: (message) mysql-proxy 0.8.2 started - instance: test

2014-10-29 11:12:11: (message) proxy listening on port 0.0.0.0:1234

2014-10-29 11:12:11: (message) added read/write backend: 192.168.1.231:3306

2014-10-29 11:12:11: (message) added read-only backend: 192.168.1.227:3306

2014-10-29 11:12:11: (message) chassis-unix-daemon.c:138: [angel] we try to keep PID=29643 alive2014-10-29 11:12:11: (message) added read-only backend: 192.168.1.228:3306

2014-10-29 11:12:11: (message) chassis-event-thread.c:235: starting 8 threads

# /usr/local/mysql/bin/mysql -h 192.168.1.12 -P 1234 -u root -p123456

0818b9ca8b590ca3270a3433284dd417.png

# /usr/local/mysql/bin/mysql -h 192.168.1.12-P 2345 -uadmin -padmin

0818b9ca8b590ca3270a3433284dd417.png

三:安装keepalived

此处以12服务器为例,81服务器执行同样的操作

# cd /usr/local/src/

# wget http://www.keepalived.org/software/keepalived-1.2.13.tar.gz

# tar -zxvpf keepalived-1.2.13.tar.gz

# cd keepalived-1.2.13

# ./configure --prefix=/usr/local/keepalived  && make && make install

四:配置12服务器keepalive

1:keepalive主配置文件

# cat /usr/local/keepalived/etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

router_id  LVS_DEVEL

}

vrrp_script Monitor_Atlas {

script "/usr/local/scripts/monitor_atlas.sh"

interval 2

weight 2

}

vrrp_instance VI_1{

state MASTER

interface eth0

virtual_router_id 51

mcast_src_ip 192.168.1.12

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass password_123

}

track_script {

Monitor_Atlas

}

virtual_ipaddress {

192.168.1.230

}

}

2:监控atlas脚本

# cat /usr/local/scripts/monitor_atlas.sh

#!/bin/bash

if  [ $(ps -ef |grep 'mysql-proxy' |grep -v 'grep' |wc -l) -eq "0" ];then

/usr/local/mysql-proxy/bin/mysql-proxyd test start

sleep 5

if [ $(ps -ef |grep 'mysql-proxy' |grep -v 'grep' |wc -l) -eq "0"  ];then

killall -9 keepalived

service network restart

fi

fi

# chmod +x /usr/local/scripts/monitor_atlas.sh

五:配置81服务器keepalive

1:keepalive主配置文件

# cat /usr/local/keepalived/etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

router_id  LVS_DEVEL

}

vrrp_script Monitor_Atlas {

script "/usr/local/scripts/monitor_atlas.sh"

interval 2

weight 2

}

vrrp_instance VI_1{

state BACKUP

interface eth0

virtual_router_id 51

mcast_src_ip 192.168.1.81

priority 90

advert_int 1

authentication {

auth_type PASS

auth_pass password_123

}

track_script {

Monitor_Atlas

}

virtual_ipaddress {

192.168.1.230

}

}

2:监控atlas脚本

# cat /usr/local/scripts/monitor_atlas.sh

#!/bin/bash

if  [ $(ps -ef |grep 'mysql-proxy' |grep -v 'grep' |wc -l) -eq "0" ];then

/usr/local/mysql-proxy/bin/mysql-proxyd test start

sleep 5

if [ $(ps -ef |grep 'mysql-proxy' |grep -v 'grep' |wc -l) -eq "0"  ];then

killall -9 keepalived

service network restart

fi

fi

# chmod +x /usr/local/scripts/monitor_atlas.sh

六:启动keepalive服务及测试

1:12服务器

# /usr/local/keepalived/sbin/keepalived -D -f /usr/local/keepalived/etc/keepalived/keepalived.conf

# tail -f /var/log/messages

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

2: 81服务器

# /usr/local/keepalived/sbin/keepalived -D -f /usr/local/keepalived/etc/keepalived/keepalived.conf

# tail -f /var/log/messages

0818b9ca8b590ca3270a3433284dd417.png

3:连接atlas测试

# /usr/local/mysql/bin/mysql -h 192.168.1.230 -P 1234 -uroot -p123456

mysql> select user,host,password from mysql.user;

0818b9ca8b590ca3270a3433284dd417.png

# /usr/local/mysql/bin/mysql -h 192.168.1.230 -P 2345 -uadmin -padmin

mysql>  SELECT * FROM backends;

0818b9ca8b590ca3270a3433284dd417.png

4:故障测试

12服务器上关闭keepalive服务

0818b9ca8b590ca3270a3433284dd417.png

81服务器的keepalive会自动接管vip服务

# tail -f /var/log/messages

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值