系统信息: mysql主库 192.168.1.152 CentOS 5.6 mysql 5.6.22 mysql从库 192.168.1.153 CentOS 5.6 mysql 5.6.22 VIP 192.168.1.150
mysql 主主同步都设置 auto-increment-offset,auto-increment-increment ,以免自增列冲突。
参考:MySQL 高可用:主主复制(双主复制)mysql
LVS 下载:
http://www.linuxvirtualserver.org/software/
http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
Keepalived 下载:
http://www.keepalived.org/software/linux
http://www.keepalived.org/software/keepalived-1.2.19.tar.gzc++
# LVS 安装配置:(yum -y install ipvsadm)算法
# Keepalived 安装配置sql
#编辑或者新建(主备除两地方,其余同样.备库改成 :state BACKUP ,priority 50)数据库
vi /etc/keepalived/keepalived.conf后端
! Configuration File for keepalived global_defs { #全局标识模块 notification_email { #定义邮件通知 test@163.com #目标邮箱 } notification_email_from test@163.com #发送邮箱 smtp_server 127.0.0.1 #发送邮箱的smtp服务器 smtp_connect_timeout 30 #smtp服务器链接超时时间 router_id LVS_DEVEL } vrrp_instance VI_1 { state MASTER #本实例启动状态:MASTER/BACKUP interface eth0 #监控的网络接口 virtual_router_id 51 #vrrp实例(同一个组主备服务器设置同样) priority 100 #优先级高的为master,不能超过255。(BACKUP可设置为50) advert_int 1 #均衡器检测间隔1秒(服务器设置都同样) authentication { #验证类型及密码(服务器设置都同样) auth_type PASS #认证方式,PASS或AH auth_pass 123456 #认证密码 } virtual_ipaddress { #虚拟ip地址virtual_ipaddress,能够定义多个 192.168.1.150 } } virtual_server 192.168.1.150 3306 { #定义虚拟服务器,与上面的virtual_server同样 delay_loop 6 #健康检查时间间隔,6秒 lb_algo rr #负载均衡调度算法:rr|wrr|lc|wlc|sh|dh|lblc lb_kind NAT #负载均衡转发规则:NAT|DR|TUN nat_mask 255.255.255.0 persistence_timeout 50 #回话保持时间50秒,动态服务建议开启 protocol TCP #转发协议protocol,通常有tcp和udp两种 #后端真实服务器,有几台就设置几个 real_server 192.168.1.152 3306 { weight 1 #权重越大负载分越大,0表示失效 SSL_GET { #健康检查方式:HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } real_server 192.168.1.153 3306 { weight 1 SSL_GET { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }
#152服务器IP [root@centos152 keepalived]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:0c:29:3b:c4:a5 brd ff:ff:ff:ff:ff:ff inet 192.168.1.152/24 brd 192.168.1.255 scope global eth0 inet 192.168.1.150/32 scope global eth0
#如今在第三台mysql服务器中链接VIP测试 #ping VIP 正常 ping 192.168.1.150 #链接到 VIP 正常 mysql -umysqlproxy -pmysqlproxy -h192.168.1.150 --port3306 #到 mysql 服务器 152 和 153 查看进程,查看用户 mysqlproxy 链接到哪台服务器 mysql> show processlist; #中止 mysqlproxy 所在的服务器keepalived 服务 /etc/rc.d/init.d/keepalived stop 此时在150 链接的mysql切换到另外一台服务器的mysql数据库了。 /etc/rc.d/init.d/keepalived start
末尾有些测试尚未规范,仅供参考。centos
更多参考:服务器