Mysql5.7.22+Keepalived双主互备高可用集群

DB1:192.168.254.128
DB2:192.168.254.129
配置前进行校时操作
#安装ntpdate工具
yum install ntpdate -y
#使用ntpdate校时(后面的是ntp服务器)
ntpdate pool.ntp.org

配置mysql双主备

安装数据库链接(在主页数据库里面可以看到)
http://blog.51cto.com/10158955/1926574

DB1修改配置文件(需重启)
vi /etc/my.cnf
#在[mysqld]添加
server-id=166
#开启mysql日志功能
log-bin=mysql-bin
#定义日志命名格式
relay-log=mysql-relay-bin
#以下table复制过滤
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table=performance_schema.%

DB2修改配置文件(需重启)
vi /etc/my.cnf
#在[mysqld]添加
server-id=168
#开启mysql日志功能
log-bin=mysql-bin
#定义日志命名格式
relay-log=mysql-relay-bin

DB1,DB2分别创建复制帐号
mysql -u root -p
#创建用户slave_up允许从192.168.254网段登录
create user ‘slave_cp‘@‘192.168.254.%‘ identified by ‘pass‘;
grant replication slave on . to ‘slave_cp‘@‘192.168.254.%‘;
exit
DB1,DB2分别获取二进制日志信息
mysql -u root -p
#对数据库进行只读锁定(防止查看二进制日志同时有人对数据库修改操作)
flush tables with read lock;
#查询主机二进制文件信息
show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000005 | 154 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
#解除只读锁定
unlock tables;

数据库里面的数据一定要相同!!!如果不同就要先做同步数据!

在DB1和DB2上分别设置对方为主服务器!

change master to
master_host=‘192.168.254.128‘ ,
master_user=‘slave_cp‘,
master_password=‘pass‘,
master_log_file=‘mysql-bin.000001‘,
master_log_pos=154;

change master to
master_host=‘192.168.254.129‘ ,
master_user=‘slave_cp‘,
master_password=‘pass‘,
master_log_file=‘mysql-bin.000001‘,
master_log_pos=154;

#启动slave
start slave;
#分别查看DB1,DB2是否正常工作
DB1:192.168.254.128服务器
show slave status\G
1. row
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.254.129
Master_User: slave_cp
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 154
Relay_Log_File: mysql-relay-bin.000002
Relay_Log_Pos: 320
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

DB2:192.168.254.129服务器
mysql> show slave status\G
1. row
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.254.128
Master_User: slave_cp
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000005
Read_Master_Log_Pos: 154
Relay_Log_File: mysql-relay-bin.000011
Relay_Log_Pos: 367
Relay_Master_Log_File: mysql-bin.000005
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

检验双主互备
①通过分别在两台服务器上使用show slave status\G,查询主库信息以及IO进程、SQL进程工作状态。若两台服务器的查询结果都为Slave_IO_Running: Yes,Slave_SQL_Running: Yes;则表示当前双主互备状态正常。
②在Mysql248数据库上建库建表,检查Mysql249上是否同步正常;然后在Mysql249上建库建表,检查Mysql248上是否同步正常。
成功之后退出MySQL
exit

配置keepalived实现MySQL双主高可用
128服务器上配置
! Configuration File for keepalived
global_defs {
#设置报警通知邮件地址,可以设置多个
notification_email { br/>[email protected]
}
#设置邮件的发送地址
notification_email_from [email protected]
#设置smtp server的地址,该地址必须是存在的
smtp_server 127.0.0.1
#设置连接smtp server的超时时间
smtp_connect_timeout 30
#运行Keepalived服务器的标识,发邮件时显示在邮件标题中的信息
router_id mysql_msun
}

检测haproxy脚本

vrrp_script chk_mysql {
script "/etc/keepalived/check_slave.sh"
interval 2
weight 2
}
#定义VRRP实例,实例名自定义
vrrp_instance mysql_msun {
#指定Keepalived的角色,MASTER主机 BACKUP备份
state BACKUP #此处两个都设置为BACKUP
#指定HA监测的接口
interface ens32
#虚拟路由标识,这个标识是一个数字(1-255),在一个VRRP实例中主备服务器ID必须一样
virtual_router_id 68
#优先级,数字越大优先级越高,在一个实例中主服务器优先级要高于备服务器
priority 100 #从服务器99
#设置主备之间同步检查的时间间隔单位秒
advert_int 1
#设置不抢占模式(DB1设置即可)
nopreempt
#设置验证类型和密码
authentication {
#验证类型有两种{PASS|HA}
auth_type PASS
#设置验证密码,在一个实例中主备密码保持一样
auth_pass 1689
}
track_script {
chk_mysql # 执行监控的服务
}
#定义虚拟IP地址,可以有多个,每行一个
virtual_ipaddress {
192.168.254.160
}
}

129服务器上配置
! Configuration File for keepalived
global_defs {
#设置报警通知邮件地址,可以设置多个
notification_email {br/>[email protected]
}
#设置邮件的发送地址
notification_email_from [email protected]
#设置smtp server的地址,该地址必须是存在的
smtp_server 127.0.0.1
#设置连接smtp server的超时时间
smtp_connect_timeout 30
#运行Keepalived服务器的标识,发邮件时显示在邮件标题中的信息
router_id mysql_msun
}

检测haproxy脚本

vrrp_script chk_mysql {
script "/etc/keepalived/check_slave.sh"
interval 2
weight 2
}
#定义VRRP实例,实例名自定义
vrrp_instance mysql_msun {
#指定Keepalived的角色,MASTER主机 BACKUP备份
state BACKUP #此处两个都设置为BACKUP
#指定HA监测的接口
interface ens32
#虚拟路由标识,这个标识是一个数字(1-255),在一个VRRP实例中主备服务器ID必须一样
virtual_router_id 68
#优先级,数字越大优先级越高,在一个实例中主服务器优先级要高于备服务器
priority 99 #从服务器99
#设置主备之间同步检查的时间间隔单位秒
advert_int 1
#设置不抢占模式(DB1设置即可)
#nopreempt
#设置验证类型和密码
authentication {
#验证类型有两种{PASS|HA}
auth_type PASS
#设置验证密码,在一个实例中主备密码保持一样
auth_pass 1689
}
track_script {
chk_mysql # 执行监控的服务
}
#定义虚拟IP地址,可以有多个,每行一个
virtual_ipaddress {
192.168.254.160
}
}

创建监控脚本
分别在两台服务器上面创建脚本,
chmod +x /etc/keepalived/check_slave.sh
要根据自己的情况修改

/etc/keepalived/check_slave.sh
#!/bin/bash
#This scripts is check for Mysql Slave status

Mysqlbin=/usr/bin/mysql
user=root
pw=‘a123456‘
port=3306
host=127.0.0.1
#最大延时
sbm=120

#Check for $Mysqlbin
if [ ! -f $Mysqlbin ];then
echo ‘Mysqlbin not found,check the variable Mysqlbin‘
exit 99
fi

#Get Mysql Slave Status
IOThread=$Mysqlbin -h $host -P $port -u$user -p$pw -e ‘show slave status\G‘ 2>/dev/null|grep ‘Slave_IO_Running:‘|awk ‘{print $NF}‘
SQLThread=$Mysqlbin -h $host -P $port -u$user -p$pw -e ‘show slave status\G‘ 2>/dev/null|grep ‘Slave_SQL_Running:‘|awk ‘{print $NF}‘
SBM=$Mysqlbin -h $host -P $port -u$user -p$pw -e ‘show slave status\G‘ 2>/dev/null|grep ‘Seconds_Behind_Master:‘|awk ‘{print $NF}‘

#Check if the mysql run
if [[ -z "$IOThread" ]];then
exit 1
fi

#Check if the thread run
if [[ "$IOThread" == "No" || "$SQLThread" == "No" ]];then
exit 1
elif [[ $SBM -ge $sbm ]];then
exit 1
else
exit 0
fi

Mysql5.7.22+Keepalived双主互备高可用集群

原文地址:http://blog.51cto.com/10158955/2129878

时间: 2024-10-11 17:34:08

Mysql5.7.22+Keepalived双主互备高可用集群的相关文章

Mysql+Keepalived双主热备高可用操作记录

环境: ubuntu18.04.2 mysql5.7.21 1 #1)安装keepalived并将其配置成系统服务.master1和master2两台机器上同样进行如下操作: 2 apt-get install libssl-dev 3 apt-get install openssl 4 apt-get install libpopt-dev 5 [[email protected] ~]# cd /usr/local/src/ 6 [[email protected] src]# wget h

Mysql+Keepalived双主热备高可用操作步骤详细解析

mysql+keepalived双主热备高可用的介绍: 我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换.使用Keepalived,可以通过虚拟IP,实现双主对外的统一接口以及自动检查.失败切换机制,从而实现MySQL数据库的

通过KeepAlived搭建MySQL双主模式的高可用集群系统

企业级MySQL集群具备高可用.可扩展.易管理.低成本的特点.下面将介绍企业环境中经常应用的一个解决方案,即MySQL的双主互备架构,主要设计思路是通过MySQL Replication技术将两台MySQL Server互相将对方作为自己的Master,自己又同时作为对方的Slave来进行复制.这样就实现了高可用构架中的数据同步功能,同时,将采用KeepAlived来实现Mysql的自动failover.在这个构架中,虽然两台MySQL Server互为主从,但同一时刻只有一个MySQL Ser

mysql+keepalived 双主热备高可用

理论介绍:我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换.使用Keepalived,可以通过虚拟IP,实现双主对外的统一接口以及自动检查.失败切换机制,从而实现MySQL数据库的高可用方案. 环境说明:版本 version

企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)

前言: 原理与思想 这里选用GTID主从复制模式Mysql主从复制模式,是为了更加确保主从复制的正确性.健康性与易配性.这里做的是两服务器A,B各有Mysql实例3310,两个实例间互为主从 主从复制模式采用GTID主从复制模式,在服务器A,B上配置keepalived负载均衡,通过VIP连接数据库,目的是一旦有某数据库宕机,keepalived 就会立即建VIP执行另外一台 健康的数据库实例上,实现快速切换,避免单点故障,从而保证业务的正常运行. 这里只做了 双主+keepalived  ,

Haproxy+keepalived实现双主负载均衡高可用集群

项目说明 1.         使用LVS负载均衡用户请求到后端web服务器,并且实现健康状态检查 2.         使用keepalived高可用LVS,避免LVS单点故障 3.         集群中分别在LK-01和LK-02运行一个VIP地址,实现LVS双主 4.         用户通过DNS轮训的方式实现访问集群的负载均衡(不演示) 实验拓扑 环境介绍: IP地址 功能描述 HK-01 172.16.4.100 调度用户请求到后端web服务器,并且和LK-02互为备份 HK-02

keepalived双主互备和自定义日志

自定义日志: keepalived的日志默认存储在/var/log/messages 有时我们会有需要将keepalived日志拿出来单独分析,那么这就需要我做自己去定义 /etc/sysconfig/keepalived #编辑keepalived的环境配置文件 KEEPALIVED_OPTIONS="-D -d -S 0" #修改内容 # --dump-conf -d  导出配置数据 # --log-detail -D  详细日志信息 # --log-facility -S  设置

Mysql+keeoalived双主热备高可用操作记录

我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.之前梳理了Mysql主从同步,下面说下Mysql+keeoalived双主热备高可用方案的实施. 1)Keepalived的工作原理是VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议.在VRRP中有两组重要的概念:VRRP路由器和虚拟路由器,主控路由器和备份路由器. 2)VRRP路由器

MM(主主数据库)+keepalived主备高可用集群

博客分享的第一篇技术文章: 项目主要搭建:主主数据库高可用集群搭建. 数据库互为主备,应用技术:MM+keepalived 使用的是虚拟机搭建的实验向大家展示: 数据库1:192.168.4.7 数据库2:192.168.4.77 VIP:192.168.4.68 web1:192.168.4.69 web2:192.168.4.70 一.安装mysql,部署主主同步结构. 直接yum安装 配置主主同步: 由于主数据库192.168.4.7里面存放着数据,所以需要先导出数据,方法很多,我们采取m