1.架构节点说明
MGR 单主模式 192.168.17.135(主) 192.168.17.136(从), 192.168.17.137(从)
Mysql router(主) 192.168.17.136:6446 为读写节点
Mysql router(主) 192.168.17.136:6447 为只读节点
Mysql router (备) 192.168.17.137:6446 为读写节点
Mysql router (备) 192.168.17.137:6447 为只读节点
Keepalive 192.168.17.150:6446为应用连接的读写节点
Keepalive 192.168.17.150:6447为应用连接的只读节点
2.安装mgr5.7
https://www.modb.pro/db/105831
3.Mysql-shell
上传mysql-shell 8.0,并运行mysql-shell,执行cluster = dba.createCluster(“myCluster”)
创建,执行cluster.status()查看集群状态

当看当前集群状态,可以看到mgrdb1:3306为读写节点

4.mysql-router
192.168.17.136为主的mysql-router,用bootstrap参数自动构建配置文件与启动脚本

修改或新增参数,修改mysqlrouter.conf文件

启动mysql-router
[root@mgrdb2 myrouter]# ./start.sh
[root@mgrdb2 myrouter]# PID 99090 written to ‘/tmp/myrouter/mysqlrouter.pid’
5.部署备mysql-router
scp 主的mysql-router配置文件到192.168.17.137
[root@mgrdb3 ~]# scp -r root@192.168.17.136:/root/mysql_router .
root@192.168.17.136’s password:
mysqlrouter.1 100% 42KB 16.3MB/s 00:00
…
6.keepalive
安装keepalive(136和137都需要安装)
[root@mgrdb2 myrouter]# yum install -y keepalived
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
- base: mirrors.aliyun.com
…
Dependency Updated:
ipset.x86_64 0:7.1-1.el7 ipset-libs.x86_64 0:7.1-1.el7
Complete!
6.1修改keepalive配置参数
[root@mgrdb2 keepalived]# cat keepalived.conf
global_defs {
router_id Myrouter-HA
}
vrrp_script check_run {
script “/etc/keepalived/Myrouter_check.sh”
interval 30
}
vrrp_sync_group VG1 {
group {
VI_1
}
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 100
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass 1234
}
track_script {
check_run
}
virtual_ipaddress {
192.168.17.150
}
}
[root@mgrdb2 keepalived]# cat Myrouter_check.sh
#!/bin/bash
#1 .检查myrouter进程是否异常
myrouter_cnt=netstat -tlnp|grep 6446 |grep mysqlrouter|wc -l
if [ $myrouter_cnt -lt 1 ]
then
systemctl stop keepalived
/sbin/arping -I ens33 -c 5 -s 192.168.17.150 192.168.17.2 &>/dev/null
exit 0
fi
6.2启动keepalive
systemctl start keepalived.service
7.验证测试
7.1验证down一个节点,故障转移
当前主节点是mgrdb1

通过vip 连接,查看当前连节点

关掉主节点mgrdb1
kill -9 pidof mysqld
mgr会自动重新选主。主变成了mgrdb2

通过vip 连接,查看当前连节点

节点自动转移到mgrdb2,说明故障转移成功。
7.2验证mysqlroter故障转移
VIP在主机mgrdb2上。

模拟mysqlrouter down机

查看备机VIP,备机VIP已启动成功

查看VIP连接,连接成功,并且连的是读写节点mgrdb2





