Welcome 微信登录

首页 / 数据库 / MySQL / 利用Keepalived构建MySQL主主复制

概述:MySQL-HA有很多的实现方案,比较常见的是master+keepalived来实现MySQL-HA,来进行实现;两台MySQL互为主从关系,通过Keepalived配置虚拟IP,实现当其中的一台MySQL数据库宕机后,应用能够自动切换到另外一台MySQL数据库,保证系统的高可用;在实际的生产环境中,也是通过这个方案来部署的,相信应该有值得借鉴的地方;2.环境说明搭建MySQL的主主复制步骤(请看链接 http://www.linuxidc.com/Linux/2014-10/108699.htm )
主机名IP地址虚拟ip(VIP)
Mysql01192.168.47.149192.168.47.140
Mysql02192.168.47.148192.168.47.140
两台数据库上面设置相应的host文件vim /etc/hosts
127.0.0.1 Mysql01
localhost Mysql01
192.168.47.149 Mysql01
192.168.47.148 Mysql02Keepalived的安装3.1 #yum install keepalived –y3.2 Mysql01进行参数文件的修改cat /etc/keepalived/keepalived.conf#! Configuration File for keepalivedglobal_defs {router_id Mysql01 #修改为自己的主机名}##################第一部分###################vrrp_instance VI_1 {state BACKUP           #都修改成BACKUPinterface eth0virtual_router_id 60   #默认51 主从都修改为60priority 100           #优先级(1-254之间),另一台改为90,备用节点必须比主节点优先级低。advert_int 1nopreempt               #不抢占资源,意思就是它活了之后也不会再把主抢回来authentication {#设置验证信息,两个节点必须一致auth_type PASSauth_pass 1111}virtual_ipaddress {    192.168.47.140}}##################第二部分###################virtual_server 192.168.47.140 3306 {delay_loop 6lb_algo wrr           #LVS算法lb_kind DR                #LVS模式nat_mask 255.255.255.0persistence_timeout 50 #会话保持时间protocol TCPreal_server 192.168.47.149 3306 {weight 1notify_down /usr/local/script/mysql.sh #检测到服务down后执行的脚本TCP_CHECK {connect_timeout 10   #连接超时时间nb_get_retry   3    #重连次数connect_port 3306    #健康检查端口}}}3.3 Mysql02进行参数文件的修改cat /etc/keepalived/keepalived.conf#! Configuration File for keepalivedglobal_defs {router_id Mysql02 #修改为自己的主机名}##################第一部分###################vrrp_instance VI_1 {state BACKUP #都修改成BACKUPinterface eth0virtual_router_id 60 #默认51 主从都修改为60priority 80 #在mysql-ha1上LVS上修改成100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.47.140}}##################第二部分###################virtual_server 192.168.47.140 3306 {delay_loop 6lb_algo wrrlb_kind DRnat_mask 255.255.255.0persistence_timeout 50protocol TCPreal_server 192.168.47.140 3306 {weight 1notify_down /usr/local/script/mysql.sh #进行数据库状态的判断TCP_CHECK {connect_timeout 10nb_get_retry 3connect_port 3306}}}参数说明:virtual_ipaddress:虚拟IP地址(VIP)interface :网卡设备名称virtual_server VIP:及Mysql服务端口real_server :真实服务器地址3.4 分别走两台mysql数据库上面创建以下脚本,用于判断数据库的状态vim /usr/local/script/mysql.sh#!/bin/bash/etc/init.d/keepalived stop/etc/init.d/keepalived start3.5 keepalived的常用脚本启动keepalived服务:service keepalived start查看keepalived服务:service keepalived status停止keepalived服务:service keepalived stop3.6 进行测试a) 使用PS命令检测服务运行状态Ps -ef|grep keepalivedPs -ef|grep mysqlb) 查看系统日志,确定keepalived运行正确less /var/log/messagetail -f /var/log/messagesc) ip a查看keepalived的运行情况注意事项:先启动mysql后启动keepalived。Ubuntu下Nginx做负载实现高性能WEB服务器5---MySQL主主同步 http://www.linuxidc.com/Linux/2012-06/61687p5.htm生产环境MySQL主主同步主键冲突处理 http://www.linuxidc.com/Linux/2013-07/86890.htmMySQL主从失败 错误Got fatal error 1236 http://www.linuxidc.com/Linux/2012-02/54729.htmMySQL主从复制,单台服务器上实施 http://www.linuxidc.com/Linux/2013-03/81913.htm搭建MySQL代理服务器实现读写分离+主从同步 http://www.linuxidc.com/Linux/2014-05/102265.htmMySQL 5.5 主从双向同步 http://www.linuxidc.com/Linux/2012-12/75973.htmMySQL 5.5主从同步排错 http://www.linuxidc.com/Linux/2014-08/105416.htmMySQL主从复制异步半同步实例 http://www.linuxidc.com/Linux/2014-10/107608.htm本文永久更新链接地址