问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

keepalived mysql主从自动切换必须是主主吗

发布网友 发布时间:2022-04-08 04:08

我来回答

2个回答

懂视网 时间:2022-04-08 08:29

keepalived构建高可用MySQL-HA,保证两台MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换。


 使用MySQL双master+keepalived是一种非常好的解决方案,在MySQL-HA环境中,MySQL互为主从关系,这样就保证了两台MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换。

  下面,我把即将上线的一个生产环境中的架构与大家分享一下,看一下这个架构中,MySQL-HA是如何实现的,环境拓扑如下


技术分享

一、安装keepalived


(1)源码编译安装

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

uname -r  (查看内核版本,下面的要和查看到的内核版本一样)

ln -s/usr/src/kernels/2.6.32-358.23.2.el6.x86_64/ /usr/src/linux  (如果/usr/src/kernels下面没有内容,可使用yum-y install kernel-devel安装即可)

2)安装依赖包

yum -y  install  openssl-devel librarie*  popt-devel

3)安装主要软件

tar -zxvf ipvsadm-1.24.tar.gz

cd ipvsadm-1.24

make && make install

cd ..

tar -zxvf keepalived-1.1.17.tar.gz

cd keepalived-1.1.17

./configure

make && make install

编译的时候出现这个提示,说明keepalived和内核结合了,如果不是这样的,需要加上这个参数./configure --with-kernel-

dir=/kernel/path

Keepalived configuration

------------------------

Keepalived version       : 1.1.17

Compiler                 : gcc

Compiler flags           : -g -O2

Extra Lib                : -lpopt -lssl -lcrypto

 UseIPVS Framework       : Yes

IPVS sync daemon support : Yes

Use VRRP Framework       : Yes

Use LinkWatch            : No

Use Debug flags          : No

 

(2)yum配置安装

yum -y install ipvsadm

yum -y install keepalived

进行安装即可,用yum安装完直接进行修改配置文件即可


keepalived-master配置  

vi /etc/keepalived/keepalived.conf

!Configuration File for keepalived


global_defs {
router_id LVS_DEVEL
}
# VIP1
vrrp_instance VI_1 {
state MASTER
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 60
priority 100
advert_int 5

authentication {
auth_type PASS
auth_pass 1122
}

virtual_ipaddress {
192.168.40.170
}
}
virtual_server 192.168.40.170 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 60
protocol TCP

real_server 192.168.40.131 3306 {
 weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
eal_server 192.168.40.132 3306 {
# weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}


keepalived-backup配置 

!Configuration File for keepalived


global_defs {
router_id LVS_DEVEL
}
# VIP1
vrrp_instance VI_1 {
state  BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 60
priority 90
advert_int 5

authentication {
auth_type PASS
auth_pass 1122
}

virtual_ipaddress {
192.168.40.170
}
}
virtual_server 192.168.40.170 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 60
protocol TCP

real_server 192.168.40.131 3306 {
# weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
real_server 192.168.40.132 3306 {
 weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}



二、mysql主从配置(可以参考我的博客)


# 主服务器上

[mysqld]

server-id = 10

log-bin = mysql-bin

relay-log = relay-mysql

relay-log-index = relay-mysql.index

auto-increment-increment = 2

auto-increment-offset = 1


# 从服务器上

[mysqld]

server-id = 20

log-bin = mysql-bin

relay-log = relay-mysql

relay-log-index = relay-mysql.index

auto-increment-increment = 2

auto-increment-offset = 2


3、如果此时两台服务器均为新建立,且无其它写入操作,各服务器只需记录当前自己二进制日志文件及事件位置,以之作为另外的服务器复制起始位置即可


server1|mysql> SHOW MASTER STATUSG

************************** 1. row ***************************

            File: mysql-bin.000001

        Position: 710

    Binlog_Do_DB: 

Binlog_Ignore_DB: 

1 row in set (0.00 sec)


server2|mysql> SHOW MASTER STATUSG

mysql> SHOW MASTER STATUSG

*************************** 1. row ***************************

            File: mysql-bin.000003

        Position: 811

    Binlog_Do_DB: 

Binlog_Ignore_DB: 

1 row in set (0.00 sec)


4、各服务器接下来指定对另一台服务器为自己的主服务器即可:

server1|mysql> CHANGE MASTER TO ...,MASTER_LOG_FILE=‘mysql-bin.000003‘, MASTER_LOG_POS=811


server2|mysql> CHANGE MASTER TO ...,MASTER_LOG_FILE=‘mysql-bin.000001‘, MASTER_LOG_POS=710


技术分享





测试myql集群故障

用vip 192.168.40.170 链接

技术分享


停止启动一台mysql数据库测试

技术分享

测试mysql 连接:

技术分享


查看ipvsadm -L -n

技术分享



热心网友 时间:2022-04-08 05:37

keepalived与主从、主主的架构是没有什么关系的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
可以提前退出“三支一扶”计划吗 能提前退出“三支一扶”计划吗 绒沙金礼品制作工艺 什么叫绒沙金 榖皮巾的意思是什么 IPOD新版本安装会不会影响内存 我的是ipod 4 8G的,我下载了东西以后发现内存是占了,但是显示不出来东西... 为什么我的IPOD下载程序只用了4G却显示用了6.4G 间谍过家家阿尼亚表情包汇总(间谍过家家阿尼亚次子) 关于"化物语"中的女主 战场原黑仪(戦场ヶ原ひたぎ)的1440*900宽屏壁纸... 想知道110值班*把警务通给不相干的人用来查情人的具体位置这样做合适吗? 要写征文,题为“我们未来的能源”,大家帮帮忙。 刻祠堂芳名有讲究吗? 节约能源从我做起(征文) 老公在值班期间与情人开房,三年开了30多次房,怎么处理? 举世混浊士乃清,千秋万古留芳名什么意思 上海机场隔离政策有哪些规定? 开水泡饭能吃吗?2小时血糖不高。 作文网 节约能源,从我做起,绿色侨乡,携手共创 夹道花香衬马蹄 蓝袍改换锦衣归 满街红粉皆争羡 翘首芳名雁塔题。 求解签 畅想未来新能源 新能源为我们提供便利400字文章 上海办劳动手册需要的材料都有哪些? 窦氏丹桂五枝香 富贵荣华姓名芳 爵禄皆由积德至 芳名万古世传扬这签对婚姻方面解释为什麼 黑板右下角值日名单写上两人的名字有什么含义吗? 关于节约能源的作文1000字(急) 本命年戴什么好 用开水泡米饭吃了对身体有伤害吗 杭州黄龙洞里面有什么景色 我要写一篇《开发新能源》的作文。要一千字多,帮忙找一下。 Q:本命年戴什么金最好 节约能源的作文一千字以上 结婚订日子还需要看夫妻双方的生辰八字吗 写一篇<我们未来的能源>的想象作文 远距离危成适合做夫妻么关系 求一篇关于 节能技术 的作文,1200字。。。谢啦~ 关于我们未来的能源的作文 我想在黑龙江肇东市宋站镇开一个天然气加气站需要死吗手续大概多少钱 保护环境的作文1200字 东北哪家代理好一点的国产的流量计液位计质量流量计 用JAVA做一个图书馆管理系统,不需要用到数据库 Java酒店管理系统(无数据库)要有登陆界面和入住信息记录界面 登录界面要能转到入住界面 你好可以做一个用java管理系统吗。不用数据库 “糜”和“靡”有什么区别?对应的词语是什么? 縻、靡、糜三个字的区别?分别组词 本人做一个java酒店管理系统,没有数据库,所有房间数据通过io流存储到txt文本中,我现在想做个 “靡”“糜”两个字的用法如何? 荼蘼和荼靡的区别? 用Java编写的图书管理系统,不要数据库 靡 的两个读音 请大神用Java写一个简单仓储管理系统,用到继承,多态,接口,对象流即可,不需要用到数据库,谢谢。