怎么用KeepAlived搭建MySQL高可用环境
发布时间:2022-01-21 01:09:12 所属栏目:MySql教程 来源:互联网
导读:本篇内容介绍了怎么用KeepAlived搭建MySQL高可用环境的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 首先搭建MySQL的主从复制 在Master开启binlog,创
本篇内容介绍了“怎么用KeepAlived搭建MySQL高可用环境”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 首先搭建MySQL的主从复制 在Master开启binlog,创建复制帐号, 然后在Slave输入命令 change master to master_host='192.168.1.70', master_port=3306, master_user='xx', master_password='xx'; 然后使用start slave开启复制。 然后编译安装KeepAlived 进入keepalived-1.2.12目录 然后使用 ./configure make && make install 然后在Master服务器编辑KeepAlived的配置文件 vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { router_id HA_MySQL } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 100 advert_int 1 nopreempt authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.199 } } virtual_server 192.168.1.199 3306 { delay_loop 2 lb_algo wrr lb_kind DR persistence_timeout 60 protocol TCP real_server 192.168.1.70 3306 { weight 3 notify_down /root/shutdown.sh TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } } 然后编辑Slave的配置文件 vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { router_id HA_MySQL } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 90 advert_int 1 nopreempt authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.199 } } virtual_server 192.168.1.199 3306 { delay_loop 2 lb_algo wrr lb_kind DR persistence_timeout 60 protocol TCP real_server 192.168.1.80 3306 { weight 3 notify_down /root/shutdown.sh TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } } 其中 priority 表示优先级 virtual_ipaddress 虚拟的IP地址(VIP) delay_loop 每个2秒检查一次real_server状态 notify_down 检测到服务down后执行的脚本 connect_timeout 连接超时时间 nb_get_retry 重连次数 delay_before_retry 重连间隔时间 connect_port 健康检查端口 shutdown.sh 可以考虑加入邮件告警的功能。 #!/bin/bash pkill keepalived 在两个服务器上启动MySQL和KeepAlived服务 service mysql start service keepalived start Master的server_id为1 Slave的server_id为2 然后 连接VIP的MySQL,可以看到已经连接到了Master服务器(server_id为1) 怎么用KeepAlived搭建MySQL高可用环境 如果kill掉Master的MySQL,KeepAlived会自动转移到Slave 在Master服务器上执行 killall mysqld 然后再次查看server_id, 短暂的失去连接之后,再次连接上VIP,server_id已经变为2,说明VIP已经指向了Slave nopreempt参数表示Master恢复正常之后,是否将VIP继续指向Master 这样的话,会再次引发切换。 两台服务器的KeepAlived会有心跳检测, 如果Master的MySQL服务挂了(3306端口挂了),那么他会选择自杀. Slave的KeepAlived通过心跳检测发现这个情况,就会将VIP的请求接管。 KeepAlived还有很多参数没有明白是什么意思 生产环境的切换脚本,在Slave提升为Master之后,应该等待所有的中继日志应用完毕,否则可能丢失数据 “怎么用KeepAlived搭建MySQL高可用环境”的内容就介绍到这里了,感谢大家的阅读。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |