Mysql+keepalived主主切换

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

Mysql+keepalived主切换

一,环境介绍

网络结构:

VIP :192.168.1.30

MYSQL A:192.168.1.21

MYSQL B:192.168.1.22

mysql同步

要实现mysql+keepalived切换,首先要实现的就是两台mysql服务器的主同步,查http://smalldeng.blog.51cto.com/1038075/1151900

三,配置keepalived

1,安装yum -y install keepalived

master A配置文件

[root@master ~]# cat /etc/keepalived/keepalived.conf

#! Configuration File for keepalived

global_defs {

router_id mysql-cluster #修改为自己的主机名

}

##################第一部分###################

vrrp_instance VI_1 {

state BACKUP #都修改成BACKUP

interface eth0

virtual_router_id 60 #默认51 主从都修改为60

priority 100 #优先级(1-254之间),另一台改为90备用节点必须比主节点优先级低。

advert_int 1

nopreempt #不抢占资源,意思就是它活了之后也不会再把主抢回来

authentication {

#设置验证信息,两个节点必须一致

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.1.30

}

}

##################第二部分###################

virtual_server 192.168.1.30 3306 {

delay_loop 6

lb_algo wrr #LVS算法

lb_kind DR#LVS模式

nat_mask 255.255.255.0

persistence_timeout 50 #会话保持时间

protocol TCP

real_server 192.168.1.21 3306 {

weight 1

notify_down /root/mysql.sh #检测到服务down后执行的脚本

TCP_CHECK {

connect_timeout 10 #连接超时时间

nb_get_retry 3#重连次数

connect_port 3306#健康检查端口

}

}

}

master B配置文件,去掉nopreempt,设置优先级,真实IP

[root@slave1 ~]# cat /etc/keepalived/keepalived.conf

#! Configuration File for keepalived

global_defs {

router_id mysql-cluster #修改为自己的主机名

}

##################第一部分###################

vrrp_instance VI_1 {

state BACKUP #都修改成BACKUP

interface eth0

virtual_router_id 60 #默认51 主从都修改为60

priority 80 #mysql-ha1LVS上修改成100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.1.30

}

}

##################第二部分###################

virtual_server 192.168.1.30 3306 {

delay_loop 6

lb_algo wrr

lb_kind DR

nat_mask 255.255.255.0

persistence_timeout 50

protocol TCP

real_server 192.168.1.22 3306 {

weight 1

notify_down /root/mysql.sh

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

connect_port 3306

}

}

}

3,建立mysql.sh脚本

vim /root/mysql.sh

#/bin/bash

pkill keepalived

#chmod +x /root/mysql.sh

4,需要安装ipvsadm与设置arp协议的响应,在两台机器都操作

# vim /etc/sysctl.conf 在最后添加,也可以直接修改cat /proc/sys/net/ipv4/conf/eth0/

############arp##############

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

#sysctl -p

四,查看虚拟ip在哪,哪台优先级高,虚拟IP就会在哪

[root@master ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:0c:29:af:00:a6 brd ff:ff:ff:ff:ff:ff

inet 192.168.1.21/24 brd 192.168.1.255 scope global eth0

inet 192.168.1.30/32 scope global eth0

inet6 fe80::20c:29ff:feaf:a6/64 scope link

valid_lft forever preferred_lft forever

[root@slave1 ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:0c:29:3d:8b:c7 brd ff:ff:ff:ff:ff:ff

inet 192.168.1.22/24 brd 192.168.1.255 scope global eth0

inet6 fe80::20c:29ff:fe3d:8bc7/64 scope link

valid_lft forever preferred_lft forever

五,验证:通过window远程连接虚拟IP,在两台mysql上都需要存储相同的一个用户和密码用于远程连接,如果能连接表示成功,将master A上的mysql停止,测试是否还能连接。中间如果有错误可以查看/var/log/message日志。










本文转自 deng304749970 51CTO博客,原文链接:http://blog.51cto.com/damondeng/1314549,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
关系型数据库 MySQL Shell
MySQL高可用之双主+Keepalived,轻松实现单点故障VIP转移
MySQL高可用之双主+Keepalived,轻松实现单点故障VIP转移
1170 0
MySQL高可用之双主+Keepalived,轻松实现单点故障VIP转移
|
SQL 关系型数据库 MySQL
Ruoyi从mysql切换到postgresql的几个坑
本文详细介绍基于ruoyi的数据库从mysql切换到postgresql详细步骤。
836 0
Ruoyi从mysql切换到postgresql的几个坑
|
9月前
|
关系型数据库 MySQL Java
|
6月前
|
SQL 算法 关系型数据库
微服务轮子项目(27) -MySQL 主从复制、主从切换、主主复制
微服务轮子项目(27) -MySQL 主从复制、主从切换、主主复制
55 0
|
6月前
|
负载均衡 网络协议 关系型数据库
rhel 8.7 部署 keepalived+haproxy 实现 mysql 双主高可用场景 2
rhel 8.7 部署 keepalived+haproxy 实现 mysql 双主高可用场景
98 2
|
6月前
|
关系型数据库 MySQL 网络安全
rhel 8.7 部署 keepalived+haproxy 实现 mysql 双主高可用场景 1
rhel 8.7 部署 keepalived+haproxy 实现 mysql 双主高可用场景
83 0
|
12月前
|
SQL 关系型数据库 MySQL
MySQL主主SQL线程异常修复大作战,一失足成千古恨啊!
MySQL主主SQL线程异常修复大作战,一失足成千古恨啊!
324 0
|
关系型数据库 MySQL 数据库
MySQL的延迟复制、半同步复制,主主复制,异步复制有什么区别?底层原理是什么?
MySQL的延迟复制、半同步复制,主主复制,异步复制有什么区别?底层原理是什么?
256 0
|
关系型数据库 MySQL
MySQL的主主复制是什么意思?底层原理是什么?
MySQL的主主复制是什么意思?底层原理是什么?
106 0
|
关系型数据库 MySQL Linux
Mysql主从复制与高可用主备切换搭建完整详细版
Mysql主从复制与高可用主备切换搭建完整详细版