技术

Docker搭建MySQL主主模式+Keepalived实现高可用集群

1.环境准备:
系统版本 Centos7
IP:192.168.130.5 master
IP:192.168.130.6 backup

虚拟ip:10.10.11.82

Docker环境:
centos7离线安装docker,docker-compose

keepalived安装包:

点我下载

2.配置两台 MySQL 主主同步
制作Mysql容器
使用dokcer快速启动mysql容器,注意端口号有没有被占用,两台服务器都要启动,两台服务器端口号要一致,防火墙也看一下,对外能不能访问端口。

配置MySQL

MASTER:

BACKUP:

注:master和backup只有server-id不同和 auto-increment-offset不同。

修改好以后,重启mysql容器

查看下log bin日志和pos值位置
进入mysql docker容器内部,登录mysql环境:

配置主从
主主模式就是配置两个主从,先配置192.168.130.5(主1)->192.168.130.6(主2)的主从,然后再反过来配置192.168.130.6(主2)->192.168.130.5(主1)的主从,这样主主的模式就配置好了。

配置 master:

配置 backup:

这两个参数根据自己的服务器填对应的值,不要填错了。

3.测试主主同步
主主同步配置完毕,查看同步状态mysql> show slave status\G

Slave_IO和Slave_SQL是YES说明主主同步成功。可以使用工具链接一下试试,这一步略过。

建一张表,两个数据库里面分别插入数据,看看是否同步。

4.安装 keepalived

安装之后,在 /etc/keepalived目录下有个 keepalived.conf 配置文件:

编辑master服务器上的keepalived.conf:

编辑backup服务器上的keepalived.conf:

backup服务器只修改priority为90、nopreempt不设置、real_server设置本地IP。

5.编写检测服务down后所要执行的脚本

vim /etc/keepalived/chk_mysql.sh
跟keepalived.conf配置文件放同一个目录下面
内容如下:

chk_mysql.sh脚本:目的是检测mysqld进程是否存活,如果mysql进程挂掉了,就杀掉keepalived服务,从而实现了MySQL故障自动转移。

两台服务器这一步授权一定要执行不然脚本会失效:

chmod +x chk_mysql.sh

启动keeplived

systemctl enable keeplived –now

7.验证
1:如果验证主从是否可以自动切换实现热备效果可以把其中一台机器的keepalived服务stop掉,然后观察虚拟ip看是否实现了故障转移。

2:如果验证健康脚本是否生效,可以把mysql容器stop掉,过两秒再次查看一下mysql容器是否会自动启动。

来源参考Docker搭建MySQL主主模式+Keepalived实现高可用集群_51CTO博客_docker-compose mysql集群

Prev Next
No Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注