利用KEEPALIVED构建mysql主主复制

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 利用KEEPALIVED构建mysql主主复制概述: MYSQL-HA有很多的实现方案,比较常见的是master+keepalived来实现MySQL-HA,来进行实现;两台MYSQL互为主从关系,通过Keepalived配置虚拟IP,实现...

利用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/

请扫描加微信号!

 

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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
SQL 存储 关系型数据库
MySQL主从复制之原理&一主一从部署流程—2023.04
MySQL主从复制之原理&一主一从部署流程—2023.04
223 0
|
2月前
|
关系型数据库 MySQL Linux
docker构建mysql以及多实例
docker构建mysql以及多实例
26 0
|
3月前
|
关系型数据库 MySQL 数据安全/隐私保护
使用Docker构建本地Mysql容器及配置
使用Docker构建本地Mysql容器及配置
57 1
|
8月前
|
关系型数据库 MySQL Java
|
4月前
|
SQL 容灾 关系型数据库
MySQL 主从复制原理
MySQL 主从复制原理
45 1
MySQL 主从复制原理
|
5月前
|
SQL 算法 关系型数据库
微服务轮子项目(27) -MySQL 主从复制、主从切换、主主复制
微服务轮子项目(27) -MySQL 主从复制、主从切换、主主复制
53 0
|
5月前
|
负载均衡 网络协议 关系型数据库
rhel 8.7 部署 keepalived+haproxy 实现 mysql 双主高可用场景 2
rhel 8.7 部署 keepalived+haproxy 实现 mysql 双主高可用场景
94 2
|
5月前
|
关系型数据库 MySQL 网络安全
rhel 8.7 部署 keepalived+haproxy 实现 mysql 双主高可用场景 1
rhel 8.7 部署 keepalived+haproxy 实现 mysql 双主高可用场景
73 0
|
6月前
|
SQL 关系型数据库 MySQL
MySql主从复制原理及其搭建
MySql主从复制原理及其搭建
|
7月前
|
存储 分布式计算 关系型数据库
AnalyticDB MySQL — Spark 助力在OSS上构建低成本数据湖
阿里云对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高可靠的云存储服务。通过和OSS团队的深入合作,AnalyticDB MySQL 的Spark能力 更好发挥了云原生数据湖方案的优势,本文为你详细解读!