Keepalived+Mysql(2主2从架构)

利用keepalived构建高可用MySQL-HA,保证两台MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换。

 使用MySQL双master+keepalived是一种非常好的解决方案,在MySQL-HA环境中,MySQL互为主从关系,这样就保证了两台MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换。

  下面,我把即将上线的一个生产环境中的架构与大家分享一下,看一下这个架构中,MySQL-HA是如何实现的,环境拓扑如下

一、安装keepalived

(1)源码编译安装

wget http://www.keepalived.org/software/keepalived-1.1.17.tar.gz

uname -r  (查看内核版本,下面的要和查看到的内核版本一样)

ln -s/usr/src/kernels/2.6.32-358.23.2.el6.x86_64/ /usr/src/linux  (如果/usr/src/kernels下面没有内容,可使用yum-y install kernel-devel安装即可)

2)安装依赖包

yum -y  install  openssl-devel librarie*  popt-devel

3)安装主要软件

tar -zxvf ipvsadm-1.24.tar.gz

cd ipvsadm-1.24

make && make install

cd ..

tar -zxvf keepalived-1.1.17.tar.gz

cd keepalived-1.1.17

./configure

make && make install

编译的时候出现这个提示,说明keepalived和内核结合了,如果不是这样的,需要加上这个参数./configure --with-kernel-

dir=/kernel/path

Keepalived configuration

------------------------

Keepalived version       : 1.1.17

Compiler                 : gcc

Compiler flags           : -g -O2

Extra Lib                : -lpopt -lssl -lcrypto

UseIPVS Framework       : Yes

IPVS sync daemon support : Yes

Use VRRP Framework       : Yes

Use LinkWatch            : No

Use Debug flags          : No

(2)yum配置安装

yum -y install ipvsadm

yum -y install keepalived

进行安装即可,用yum安装完直接进行修改配置文件即可

keepalived-master配置

vi /etc/keepalived/keepalived.conf

!Configuration File for keepalived

global_defs {
router_id LVS_DEVEL
}
# VIP1
vrrp_instance VI_1 {
state MASTER
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 60
priority 100
advert_int 5

authentication {
auth_type PASS
auth_pass 1122
}

virtual_ipaddress {
192.168.40.170
}
}
virtual_server 192.168.40.170 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 60
protocol TCP

real_server 192.168.40.131 3306 {
 weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
eal_server 192.168.40.132 3306 {
# weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}

keepalived-backup配置

!Configuration File for keepalived

global_defs {
router_id LVS_DEVEL
}
# VIP1
vrrp_instance VI_1 {
state  BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 60
priority 90
advert_int 5

authentication {
auth_type PASS
auth_pass 1122
}

virtual_ipaddress {
192.168.40.170
}
}
virtual_server 192.168.40.170 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 60
protocol TCP

real_server 192.168.40.131 3306 {
# weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
real_server 192.168.40.132 3306 {
 weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}

二、mysql主从配置(可以参考我的博客)

# 主服务器上

[mysqld]

server-id = 10

log-bin = mysql-bin

relay-log = relay-mysql

relay-log-index = relay-mysql.index

auto-increment-increment = 2

auto-increment-offset = 1

# 从服务器上

[mysqld]

server-id = 20

log-bin = mysql-bin

relay-log = relay-mysql

relay-log-index = relay-mysql.index

auto-increment-increment = 2

auto-increment-offset = 2

3、如果此时两台服务器均为新建立,且无其它写入操作,各服务器只需记录当前自己二进制日志文件及事件位置,以之作为另外的服务器复制起始位置即可

server1|mysql> SHOW MASTER STATUS\G

************************** 1. row ***************************

File: mysql-bin.000001

Position: 710

Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.00 sec)

server2|mysql> SHOW MASTER STATUS\G

mysql> SHOW MASTER STATUS\G

*************************** 1. row ***************************

File: mysql-bin.000003

Position: 811

Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.00 sec)

4、各服务器接下来指定对另一台服务器为自己的主服务器即可:

server1|mysql> CHANGE MASTER TO ...,MASTER_LOG_FILE=‘mysql-bin.000003‘, MASTER_LOG_POS=811

server2|mysql> CHANGE MASTER TO ...,MASTER_LOG_FILE=‘mysql-bin.000001‘, MASTER_LOG_POS=710

测试myql集群故障

用vip 192.168.40.170 链接

停止启动一台mysql数据库测试

测试mysql 连接:

查看ipvsadm -L -n

以上就是k+M 高可用。结构需要用脚本调试。

时间: 2024-08-28 07:41:41

Keepalived+Mysql(2主2从架构)的相关文章

keepalived+mysql双主

       mysql高可用keepalived+mysql双主 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,PXC,MMM,Heartbeat+DRBD等,比较常用的是keepalived+双主,MHA和PXC. 本节主要介绍了利用 keepalived 实现 MySQL 数据库的高可用. Keepalived+mysql双主来实现MySQL-HA,我们必须保证两台MySQL数据库的数据完全一样,基本思路是两台MySQL互为主从关系,通过Keepalived配

MySQL 高可用性之keepalived+mysql双主

生产环境中一台mysql主机存在单点故障,所以我们要确保mysql的高可用性,即两台MySQL服务器如果其中有一台MySQL服务器挂掉后,另外一台能立马接替其进行工作. MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,PXC,MMM,Heartbeat+DRBD等,比较常用的是keepalived+双主,MHA和PXC. 这里将主要介绍了利用 keepalived 实现 MySQL数据库的高可用. Keepalived+mysql双主来实现MySQL-HA,我们必须保

MySQL 高可用性——keepalived+mysql双主(有详细步骤和全部配置项解释)

博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 前言:生产环境中一台mysql主机存在单点故障,所以我们要确保mysql的高可用性,即两台MySQL服务器如果其中有一台MySQL服务器挂掉后,另外一台能立马接替其进行工作. MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,PXC,MMM,Heartbeat+DRBD等,比较常用的是keepalived+双主,

MySQL 高可用之 keepalived+Mysql 双主双活。

环境描述:[[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) IP 规划:MySQL-M 192.168.10.10 MySQL-S 192.168.10.20 配置两服务服务器双主: MySQL 安装: [[ema

keepalived+mysql双主复制高可用方案

MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换.而Keepalived通过虚拟IP,实现了双主对外的统一接口以及自动检查.失败切换机制.联合使用,可以实现MySQL数据库的高可用方案. 实验环境:OS:centos 6.x x86_64系统MySQL版本: :mysql 5.6.22   64 位A: master :192.168.79.3 3306B: slave :192.168.

keepalived + mysql 双主多从

keepalived 的热备可以看文档:keepalived的配置使用 mysql 的主从 的文档讲解:mysql 主从复制 keepalived的双主,就是主从的一种, 大家看一眼就懂了,为了省力, 下面的双主配置我直接网上找了一篇,在下面,大家随便看下 keepalived的双子多从的整体结构 如下图: 1.配置两台Mysql主主同步[[email protected] ~]# yum install mysql-server mysql -y [[email protected] ~]#

keepalived+mysql双主高可用配置

具体架构图如下 两个节点一主一从(从库上面也可以再挂一个从库),或者是双主,再利用keepalived在出现容灾时进行高可用切换. Keepalived原理说明: 其实这个原理可以很简单的用一个故事说明. 以前有一个帮派,像其他所有的帮派一样,有老大.这个老大活的也很憋屈,不仅自己做所有的活,还要隔一段时间就要告诉所有小弟我是老大,你们老实点.所有的小弟也是很乖的,只要老大不死,他们肯定不会抢夺老大的地位,但是一旦他们都收不到老大的通信的话,他们就确信老大死了,他们就开始抢夺老大的地位了.不过他

Mysql 一主两从架构转换成级联复制

因为最近公司服务器要迁移;原来的数据库架构是一主一从的架构(主库A---从库C);增加多一台从库服务器B. 现在要把从库B替换主库A:从库C继续作为B的从库. 一主2从简单说一下步骤:具体步骤省略. 首先搭建好从库B,配置好my.cnf 的server_id 1,先停掉从库C.stop slave 2,记住从库C的同步状态. show slave status\G    记住Master_Log_File 和Read_Master_Log_Pos 的位置和点. 3,备份从库C,备份完成后导入从库

MySQL双主互备模式架构

MySql双主互备架构模式 操作系统 CentOS 6.3 MySql版本 mysql-5.0.56 keepalived keepalived-1.1.19.tar.gz Master DB1配置文件 修改MySql 配置文件  /etc/my.cnf 增加以下段落 [mysqld] server-id=1    节点标示 log-bin=mysql-bin   开启mysql的binlog日志功能 relay-log = mysql-relay-bin  用来定义日志文件命名格式 repli