MySQL MGR+ Consul之数据库高可用方案最佳实践


MySQL MGR+ Consul之数据库高可用方案最佳实践

背景说明:

基于目前存在很多MySQL数据库单点故障,传统的MHA,PXC等方案用VIP或者DNS切换的方式可以实现、基于数据库的数据强一致性考虑,采用MGR集群,采用consul服务注册发现实现应用端通过动态DNS 访问MGR集群,实现数据库高可用,自动化切换的方案

MGR简介

MySQL Group Replication(MGR)是MySQL官方在5.7.17版本引进的一个数据库高可用与高扩展的解决方案,以插件形式提供,实现了分布式下数据的最终一致性,总结MGR特点如下:

高一致性:基于分布式paxos协议实现组复制,保证数据一致性;

高容错性:自动检测机制,只要不是大多数节点都宕机就可以继续工作,内置防脑裂保护机制;

高扩展性:节点的增加与移除会自动更新组成员信息,新节点加入后,自动从其他节点同步增量数据,直到与其他节点数据一致;

高灵活性:提供单主模式和多主模式,单主模式在主库宕机后能够自动选主,所有写入都在主节点进行,多主模式支持多节点写入。

MGR原理说明:

组复制是一种可用于实现容错系统的技术。 复制组是一个通过消息传递相互交互的 server 集群。通信层提供了原子消息(atomic message)和完全有序信息交互等保障机制

实现了基于复制协议的多主更新

复制组由多个 server成员构成,并且组中的每个 server 成员可以独立地执行事务。但所有读写(RW)事务只有在冲突检测成功后才会提交。只读(RO)事务不需要在冲突检测,可以立即提交。句话说,对于任何 RW 事务,提交操作并不是由始发 server 单向决定的,而是由组来决定是否提交。准确地说,在始发 server 上,当事务准备好提交时,该 server 会广播写入值(已改变的行)和对应的写入集(已更新的行的唯一标识符)。然后会为该事务建立一个全局的顺序。最终,这意味着所有 server 成员以相同的顺序接收同一组事务。因此,所有 server 成员以相同的顺序应用相同的更改,以确保组内一致。组复制是一种 share-nothing 复制方案,其中每个 server 成员都有自己的完整数据副本。

MGR的局限性:

仅支持InnodDB存储引擎的表,并且每个表必须有主键ID, 用做wirte set的冲突检测

必须启用GTID特性,binlog日志格式必须为row模式

目前一个MGR集群最多支持9个节点

不支持外健的save point特性,无法做全局间的约束检测和部分回滚

二进制日志不支持binlog event checksum

sonsul简介

微服务架构中非常重的一个模块,提供服务注册、服务发现等,常用的服务发现模块有,zookeeper、enreka、etcd、cunsul等。

cousul是分布式、高可用、可横向发展的中间键,其特性如下:

1、service discovery:通过dns或者http接口提供服务注册和发现

2、health checking:自带健康检查,可提供服务故障时的转移

3、key/value storage:可存储动态配置的系统,提供http接口,

4、multi-datacenter:可以支持多数据中心

环境说明:

10.88.128.163 consul server 目前只部署了一个server,可部署集群模式

10.88.6.251 mysql server mnode1、consul client

10.88.6.252 mysql server mnode2、consul client

10.88.6.253 mysql server mnode3、consul client

系统版本:centos 7.4

Mysql version:5.7.25

consul version:1.2.3

MGR集群环境搭建

mysql的安装这里就做详细说明(有需要的话,我把自动化安装脚本放在博客上)

三台mysql server 主机都安装mysql服务并初始化密码

修改配置文件,保证三台mysql server的配置一样(serverid、IP不一致)

vim /etc/my.cnf

##gtid配置

server_id = 1 ## 保证三台主机的serverid 不一致,这里配置为1,11,111

gtid_mode=ON

enforce_gtid_consistency=ON

master_info_repository=TABLE

relay_log_info_repository=TABLE

binlog_checksum=NONE

log_slave_updates=ON

log_bin=binlog

binlog_format=ROW

innodb_buffer_pool_instances=4

innodb_buffer_pool_size=1G

innodb_flush_log_at_trx_commit=2

sync_binlog=0

#for parallel apply binlog

slave-parallel-type=LOGICAL_CLOCK

slave-parallel-workers=4

slave_preserve_commit_order=on

##mgr配置

transaction_write_set_extraction=XXHASH64

##表示将加入或者创建的复制组命名为8053c671-0622-11e8-a300-525400b9c5e8,可以自己指定

loose-group_replication_group_name=“8053c671-0622-11e8-a300-525400b9c5e8”

#设置server启动时不自动启动组复制

loose-group_replication_start_on_boot=off

#设置组复制的端口,并保证其集群可以正常访问

loose-group_replication_local_address= “10.88.6.251:33091″

#当加入组时应该连接到这些服务器上进行配置

loose-group_replication_group_seeds=“10.88.6.251:33091,10.88.6.252:33091,10.88.6.253:33091″

loose-group_replication_bootstrap_group= off

loose-group_replication_single_primary_mode=ON ##开启单主模式

#关闭多主模式

loose-group_replication_enforce_update_everywhere_checks=FALSE

#配置集群白名单

loose-group_replication_ip_whitelist=”10.88.6.0/24″

mnode1:

登陆mysql

创建mysql账号,执行如下命令,创建账号关闭binglog

mysql> SET SQL_LOG_BIN=0;

Query OK, 0 rows affected (0.00 sec)

mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@’%’ IDENTIFIED BY ‘pan@345′;

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> SET SQL_LOG_BIN=1;

Query OK, 0 rows affected (0.00 sec)

mysql> CHANGE MASTER TO MASTER_USER=’rpl_user’, MASTER_PASSWORD=’pan@345′ FOR CHANNEL ‘group_replication_recovery’;

mysql> INSTALL PLUGIN group_replication SONAME ‘group_replication.so’;

Query OK, 0 rows affected (0.16 sec)

#此引导应仅由单个 sever 独立完成,该 server 启动组并且只启动一次。 这就是为什么引导配置选项的值不保存在配置文件中的原因。 如果将其保存在配置文件中,则在重新启动时,server 会自动引导具有相同名称的第二

个组。 这将导致两个不同的组具有相同的名称

mysql> SET GLOBAL group_replication_bootstrap_group=ON; Query OK, 0 rows affected (0.00 sec)

mysql> START GROUP_REPLICATION;

Query OK, 0 rows affected (1.78 sec)

mysql> SET GLOBAL group_replication_bootstrap_group=OFF;

Query OK, 0 rows affected (0.00 sec)

mysql>SELECT * FROM performance_schema.replication_group_membersG;

CHANNEL_NAME: group_replication_applier

MEMBER_ID: a7495a32-398b-11e9-bec1-080027857522

MEMBER_HOST: mnode1

MEMBER_PORT: 3309

MEMBER_STATE: ONLINE

Server mnode2、server mnode3

mysql> SET SQL_LOG_BIN=0;

Query OK, 0 rows affected (0.00 sec)

mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@’%’ IDENTIFIED BY ‘Workhard@345’;

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> SET SQL_LOG_BIN=1;

Query OK, 0 rows affected (0.00 sec)

mysql> CHANGE MASTER TO MASTER_USER=’rpl_user’, MASTER_PASSWORD=’pan@345′ FOR CHANNEL ‘group_replication_recovery’;

mysql> INSTALL PLUGIN group_replication SONAME ‘group_replication.so’;

Query OK, 0 rows affected (0.16 sec)

set global group_replication_allow_local_disjoint_gtids_join=ON;

Query OK, 0 rows affected (0.00 sec)

mysql> START GROUP_REPLICATION;

Query OK, 0 rows affected (44,88 sec)

mysql> SELECT * FROM performance_schema.replication_group_membersG;

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

CHANNEL_NAME: group_replication_applier

MEMBER_ID: 3c68303c-391b-11e9-b5b5-08002788ba6b

MEMBER_HOST: mnode3

MEMBER_PORT: 3309

MEMBER_STATE: ONLINE

*************************** 2. row ***************************

CHANNEL_NAME: group_replication_applier

MEMBER_ID: a7495a32-398b-11e9-bec1-080027857522

MEMBER_HOST: mnode1

MEMBER_PORT: 3309

MEMBER_STATE: ONLINE

*************************** 3. row ***************************

CHANNEL_NAME: group_replication_applier

MEMBER_ID: b8ff481f-39d6-11e9-9208-0800278c8292

MEMBER_HOST: mnode2

MEMBER_PORT: 3309

MEMBER_STATE: ONLINE

3 rows in set (0.00 sec)

到此为止MGR集群已经搭建完毕、在启动集群的同时可以同时观察其成员的加入的整个过程

说几点注意事项:

1、保证集群的端口互通

2、保证performance_schema = 1 否则库里查不动成员

Check MGR集群

在primary上,创建库、表、以及增删改查信息,其集群内其它的节点都会有相应的操作,确认其集群可以正常提供服务

搭建consul 使其mysql-primary和mysql-slave 注册到服务发现上

consul-server:10.88.128.163

consul-client:10.88.6.251、10.88.6.252、10.88.6.253

consul安装so easy

在官网:https://www.consul.io/downloads.html下载对应的版本,解压后copy consul 到/usr/local/bin/下即可

分别在4台机器上安装然后运行

mkdir -pv /etc/consul.d/ && mkdir -pv /data/consul/

mkdir -pv /data/consul/shell

在consul server 10.88.128.163上 编写配置文件

vim /etc/consul.d/server.json

{

“data_dir”: “/data/consul”,

“datacenter”: “dc1”,

“log_level”: “INFO”,

“server”: true,

“advertise_addr”:”10.88.128.163″,

“bootstrap_expect”: 3,

“bind_addr”: “10.88.128.163”,

“client_addr”: “10.88.128.163”,

“ui”:true

}

在consul client 10.88.6.251、10.88.6.252、10.88.6.253上编写配置文件,三台服务器的上bind_addr 修改为响应IP即可

vim cat /etc/consul.d/client.json

{

“data_dir”: “/data/consul”,

“enable_script_checks”: true,

“bind_addr”: “10.88.6.252”,

“retry_join”: [“10.88.128.163”],

“retry_interval”: “30s”,

“rejoin_after_leave”: true,

“start_join”: [“10.88.128.163”]

}

启动consul server 在10.88.128.163上

nohup consul agent -config-dir=/etc/consul.d > /data/consul/consul.log &

启动consul client 在10.88.6.251、10.88.6.252、10.88.6.253

nohup consul agent -config-dir=/etc/consul.d > /data/consul/consul.log &

观察consul server的log日志3个client自动注册到了consul上了

查看consul成员

访问consulserver的web页面

http://10.88.128.163:8500/ui/

到此为止consul 集群已经搭建成功了

下面我们继续为实现mysql的高可用集群

MGR+Consul高可用实现

检测MGR集群状态

查看那个是主节点

分别在三台mysql server的主机上

检测primay 脚本

vim /data/consul/shell/check_mysql_mgr_master.sh

#!/bin/bash

port=3309

user=”root”

passwod=”123″

comm=”/usr/local/mysql/bin/mysql -u$user -h 127.0.0.1 -P $port -p$passwod”

value=`$comm -Nse “select 1″`

primary_member=`$comm -Nse “select variable_value from performance_schema.global_status WHERE VARIABLE_NAME= ‘group_replication_primary_member'”`

server_uuid=`$comm -Nse “select variable_value from performance_schema.global_variables where VARIABLE_NAME=’server_uuid’;”`

# 判断mysql是否存活

if [ -z $value ]

then

echo “mysql $port is down…..”

exit 2

fi

# 判断节点状态

node_state=`$comm -Nse “select MEMBER_STATE from performance_schema.replication_group_members where MEMBER_ID=’$server_uuid'”`

if [ $node_state != “ONLINE” ]

then

echo “MySQL $port state is not online….”

exit 2

fi

# 判断是不是主节点

if [[ $server_uuid == $primary_member ]]

then

echo “MySQL $port Instance is master ……..”

exit 0

else

echo “MySQL $port Instance is slave ……..”

exit 2

fi

检测slave脚本

vim /data/consul/shell/check_mysql_mgr_slave.sh

#!/bin/bash

port=3309

user=”root”

passwod=”123″

comm=”/usr/local/mysql/bin/mysql -u$user -h 127.0.0.1 -P $port -p$passwod”

value=`$comm -Nse “select 1″`

primary_member=`$comm -Nse “select variable_value from performance_schema.global_status WHERE VARIABLE_NAME= ‘group_replication_primary_member'”`

server_uuid=`$comm -Nse “select variable_value from performance_schema.global_variables where VARIABLE_NAME=’server_uuid’;”`

# 判断mysql是否存活

if [ -z $value ]

then

echo “mysql $port is down…..”

exit 2

fi

# 判断节点状态

node_state=`$comm -Nse “select MEMBER_STATE from performance_schema.replication_group_members where MEMBER_ID=’$server_uuid'”`

if [ $node_state != “ONLINE” ]

then

echo “MySQL $port state is not online….”

exit 2

fi

# 判断是不是主节点

if [[ $server_uuid != $primary_member ]]

then

echo “MySQL $port Instance is slave ……..”

exit 0

else

node_num=`$comm -Nse “select count(*) from performance_schema.replication_group_members”`

# 判断如果没有任何从节点,主节点也注册从角色服务。

if [ $node_num -eq 1 ]

then

echo “MySQL $port Instance is slave ……..”

exit 0

else

echo “MySQL $port Instance is master ……..”

exit 2

fi

fi

consul client端接服务发现的json脚本

检测master

[root@mnode1 consul.d]# cat /etc/consul.d/master.json

{

“services”: [

{

“name”: “write-mysql-primary”,

“tags”: [

“master-write”

],

“address”: “10.88.6.251”,

“port”: 3309,

“checks”: [

{

“Args”:[“/data/consul/shell/check_mysql_mgr_master.sh”],

“Shell”: “/bin/bash”,

“interval”: “15s”

}

]

}

]

}

检测slave

cat /etc/consul.d/slave.json

{

“services”: [

{

“name”: “read-mysql-slave”,

“tags”: [

“slave-read”

],

“address”: “10.88.6.251”,

“port”: 3309,

“checks”: [

{

“Args”:[“/data/consul/shell/check_mysql_mgr_slave.sh”],

“Shell”: “/bin/bash”,

“interval”: “15s”

}

]

}

]

基于不同consul版本配置可能不太一样,三台机器都需要相应的json脚本检测mysql是否为主或从,配置文件修改相应的IP即可使用

查看consul server ui界面即可看到三台mysql的mgr集群已经注册到consul服务上了

注意:由于每台mysql server 上都有master、slave 检测脚本、而mysql server 只能是master 或者slave、所以存在失败的检测,master检测只有一个成功,slave检测只有一个失败

consul dns配置

查看dns信息

App端配置域名服务器IP来解析consul后缀的域名,DNS解析及跳转, 有三个方案:
1. 原内网dns服务器,做域名转发,consul后缀的,都转到consul server上,目前采用的这种方式

2. dns全部跳到consul DNS服务器上,非consul后缀的,使用 recursors 属性跳转到原DNS服务器上
3. dnsmaq 转: server=/consul/10.16.X.X#8600 解析consul后缀的

我们内网dns是用的bind,对于bind的如何做域名转发consul官网也有栗子:https://www.consul.io/docs/guides/forwarding.html

check下MGR 切换master 解析的IP是否转换

切换mgr primary

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开发云主机域名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”>

到此为止:mysql mgr集群+consul实现高可用集群方案已尽全部完成

另:有很多公司服务的注册会到指定的consul client上,用consul client 方式启动容易其他服务注册上去,可以改用API的方式注册到client上

如下:

参考:https://www.consul.io

https://www.jianshu.com/p/ca1af156f656

https://blog.csdn.net/sinat_36888624/article/details/79215233

https://www.cnblogs.com/gomysql/p/8985774.html

http://www.cnblogs.com/gomysql/p/8010552.html

相关推荐: 【Mysql】闪回–mysqlbinlog flashback 5.6版本

DBA或者开发人员,有时会误删除或者误更新数据。传统的数据库恢复方法是利用之前的备份再加上误操作之前的binlog,来恢复数据。该方法需要耗费较长时间来恢复备份,甚至需要停机维护,严重降低系统的可用性。 MySQL的flashback功能是由淘宝的彭立勋,在M…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/05 12:50
下一篇 06/05 12:50

相关推荐