keepalive实现mysql高可用

说明:需要3个节点,主节点(202.207.178.6),从节点(202.207.178.7),测试节点(202.207.178.8),虚拟地址:202.207.178.4。配置实现mysql数据库主从复制,并使用keepalive实现高可用,可以实现主数据库机下降时,从数据库可用!

mysql主从复制详见本人博客http://10927734.blog.51cto.com/10917734/1868323

前提:

由于是高可用服务,首先配置高可用服务实现的一些基本条件

1)节点名称必须跟uname - n命令的执行结果一致

node1: #主机名node1

# vim/etc/sysconfig/network

主机名=node1

node2: #主机名node2

# vim/etc/sysconfig/network

主机名=node2

2)节点之间必须通过ssh互信通信

[root@node1 ~] # ssh - keygen - t rsa - f ~/sh/id_rsa - p”

# ssh-copy-id - i . ssh/id_rsa (root@node1 ~)。酒吧root@202.207.178.7

[root@node2 ~] # ssh - keygen - t rsa - f ~/sh/id_rsa - p”

# ssh-copy-id - i . ssh/id_rsa (root@node2 ~)。酒吧root@202.207.178.6

3)集群各节点之间时间必须同步

使用国家结核控制规划服务器同步时间

ntpdate ip(配置了国家结核控制规划服务的主机地址)

4)配置本地解析:

[root@node1 ~] #

的/etc/hosts vim 202.207.178.6 node1

202.207.178.7 node2

[root@node1 ~] # scp/etc/hosts node2:/etc/

一、安装keepalive,实现高可用

在主节点上:

1,安装keepalive

# tar xf keepalived-1.2.1.tar。广州

# cd keepalived-1.2.1

# ./configure——with-kernel-dir=/usr/src/内核/2.6.32-642.11.1.el6。i686/

#做,,使安装

注意:

可能需要安装此包:

# yum安装popt-devel

发现/usr/src/内核/为空,需要安装内核源码

# yum安装kernel-devel

2,配置keepalive

1)设置一个变量

# DIR=/usr/地方/

2)执行如下语句,将keepalive的配置文件放置在/etc下相关目录中

# cp DIR美元到/etc/init。d/keepalive,到/etc/init。d/

# cp DIR/etc/sysconfig/美元keepalive/etc/sysconfig/,,mkdir -p 

,,,,,,,,,,,,,/etc/keepalive

# cp $ DIR/sbin/keepalive/usr/sbin/

3)为keepalive提供配置文件

# cd/etc/keepalived/

# vim keepalived.conf(添加以下内容)

!配置文件keepalive

global_defs {

,notification_email {

, 2663154088 @qq.com

,}

,notification_email_from wgkgood@139.com

,smtp_server 127.0.0.1

,smtp_connect_timeout 30

,router_id LVS_DEVEL

} # VIP1

vrrp_instance VI_1 {

国家主人

接口eth0

lvs_sync_daemon_inteface eth0

virtual_router_id 151优先

100

advert_int 5

,#非抢占nopreempt

认证{

auth_type通过

auth_pass 2222}

virtual_ipaddress {

202.207.178.4

}

}

virtual_server 202.207.178.4 3306 {

delay_loop 6

wrr

lb_kind lb_algo到博士

60 persistence_timeout协议TCP

real_server 202.207.178.6 3306 {

100

notify_down重量/数据/sh/mysql。sh

TCP_CHECK {

nb_get_retry connect_timeout 10 3

connect_port delay_before_retry 3 3306

}

}

}

4)启动服务

#/etc/init.d/keepalive重启

# ps ef | grep keepalive

此时发现服务已经启动!

#尾fn 100/var/log/messages

此时发下一直滚屏,是缺少一个模块、下面加载此模块# modprobe ip_vs

#/etc/init.d/keepalive重启

#尾fn 100/var/log/messages

此时一切正常

在从节点上:

配置同主节点,只是在配置文件中修改以下几项即可:

状态备份

90

real_server优先202.207.178.7 3306

二,配置相关操作,并测试

1,在主从节点上分别添加如下两个文件并授权,实现在一方的数据库机下降时停止keepalive,主从角色实现切换

# vim/数据/sh/mysql.sh

/etc/init。d/keepalive停止

# chmod + x/数据/sh/nginx.sh

2,在主从节点上分别对数据库授权

mysql>格兰特> 3,此时就可以开始测试了

1)再启动一台虚拟机,用此虚拟机连接数据库

# mysql -uroot -h302.207.178.4 - p

2)在主节点停止mysql数据库,此时会发现测试节点的数据库依然连接正常!


,,,,,,,,,,,,,,,,,,,,,,,,,,


keepalive实现mysql高可用