利用KEEPALIVED构建mysql主主复制

  1. 云栖社区>
  2. 博客>
  3. 正文

利用KEEPALIVED构建mysql主主复制

猎人笔记 2014-11-03 11:37:29 浏览899
展开阅读全文

利用KEEPALIVED构建mysql主主复制

  1. 概述:

    MYSQL-HA有很多的实现方案,比较常见的是master+keepalived来实现MySQL-HA,来进行实现;两台MYSQL互为主从关系,通过Keepalived配置虚拟IP,实现当其中的一台MYSQL数据库宕机后,应用能够自动切换到另外一台MYSQL数据库,保证系统的高可用;在实际的生产环境中,也是通过这个方案来部署的,相信应该有值得借鉴的地方;

     

  2. 环境说明

    搭建mysql的主主复制步骤(请看链接http://blog.itpub.net/12679300/viewspace-1313645/)

主机名

IP地址

虚拟ipVIP

Mysql01

192.168.47.149

192.168.47.140

Mysql02

192.168.47.148

192.168.47.140

 

两台数据库上面设置相应的host文件

vim /etc/hosts

127.0.0.1 Mysql01

localhost Mysql01

192.168.47.149 Mysql01

192.168.47.148 Mysql02

 

  1. Keepalived的安装

    3.1 #yum install keepalived –y

 

3.2 Mysql01进行参数文件的修改

cat /etc/keepalived/keepalived.conf

#! Configuration File for keepalived

global_defs {

router_id Mysql01 #修改为自己的主机名

}

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

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.47.140

}

}

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

virtual_server 192.168.47.140 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.47.149 3306 {

weight 1

notify_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 keepalived

global_defs {

router_id Mysql02 #修改为自己的主机名

}

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

vrrp_instance VI_1 {

state BACKUP #都修改成BACKUP

interface eth0

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

priority 80 #在mysql-ha1上LVS上修改成100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.47.140

}

}

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

virtual_server 192.168.47.140 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.47.140 3306 {

weight 1

notify_down /usr/local/script/mysql.sh #进行数据库状态的判断

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

connect_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 start

 

3.5 keepalived的常用脚本

启动keepalived服务:service keepalived start

查看keepalived服务:service keepalived status

停止keepalived服务:service keepalived stop

 

3.6 进行测试

a) 使用PS命令检测服务运行状态

Ps -ef|grep keepalived

Ps -ef|grep mysql

b) 查看系统日志,确定keepalived运行正确

less /var/log/message

tail -f /var/log/messages

 

c) ip a查看keepalived的运行情况

注意事项:先启动mysql后启动keepalived。

********************************************************************************************************本文作者:JOHN QQ:1916066696 (请备注数据库)

ORACLE技术博客:ORACLE 猎人笔记 http://blog.itpub.net/12679300/

请扫描加微信号!

 

******************************************************************************************

网友评论

登录后评论
0/500
评论
猎人笔记
+ 关注