MGR部署

场景描述:

使用三台服务器搭建一个简单MGR集群,使用MySQL 5.7.24版本,服务器列表为:

192.168.1.147
192.168.1.148
192.168.1.149

1、使用普通配置文件启动MySQL服务,安装MGR插件(所有节点执行)

INSTALL PLUGIN group_replication SONAME 'group_replication.so';

2、调整MySQL各节点的配置文件并重启MySQL服务(所有节点执行)

## config master
server-id = 17218228149
log-bin = mysql-bin
master_info_repository = TABLE
binlog_format = ROW
expire_logs_days = 7
sync_binlog = 1
gtid_mode = on
enforce-gtid-consistency = true
binlog_rows_query_log_events = on
binlog_checksum                         = NONE ## config slave
skip-slave-start
slave-parallel-workers = 8
slave-parallel-type = LOGICAL_CLOCK
slave_preserve_commit_order = 1
log_slave_updates = 1
report_host = 192.168.1.149 ## config relay log
relay-log = relay-log
relay_log_recovery = ON
sync_relay_log = 0
relay_log_info_repository = TABLE ## config group replication
transaction_write_set_extraction    = XXHASH64
loose-group_replication_group_name    = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaa01"
loose-group_replication_start_on_boot         = OFF
loose-group_replication_bootstrap_group         = OFF
loose-group_replication_local_address         = "192.168.1.149:33581"
loose-group_replication_group_seeds    = "192.168.1.147:33581,192.168.1.148:33581,192.168.1.149:33581"
loose-group_replication_ip_whitelist         = "192.168.1.147,192.168.1.148,192.168.1.149"

未安装MGR插件前在配置文件加入MGR配置会报错。

MGR配置说明:上面黄色部分参数在很多配置文件中都没提到,但很可能会导致部署失败,尤其是loose-group_replication_ip_whitelist参数。

3、配置MGR通信账号,并清理MASTER(所有节点执行)

CREATE USER repl@'%' IDENTIFIED BY 'repl';
GRANT REPLICATION SLAVE ON *.* TO repl@'%';
RESET MASTER;

4、创建MGR依赖的复制环境(所有节点执行)

CHANGE MASTER TO MASTER_USER='repl',
MASTER_PASSWORD='repl'
FOR CHANNEL 'group_replication_recovery';

5、在主节点上启动MGR(在节点192.168.1.147上执行)

SET GLOBAL group_replication_bootstrap_group=ON;
START group_replication;
SET GLOBAL group_replication_bootstrap_group=off;

6、在辅助节点上启动MGR(在节点192.168.1.148和在节点192.168.1.149上执行)

START group_replication;

7、搭建完成后,可以使用下面语句查看状态:

## 查看各节点状态
SELECT *
FROM performance_schema.replication_group_members; ## 查看当前MGR模式(单主还是多主)
SELECT @@group_replication_single_primary_mode;

8、判断节点状态

## 查看当前节点状态
SELECT member_state
FROM performance_schema.replication_group_members
WHERE member_id=@@server_uuid; ## 通过节点是否可写来判断群集是否为主节点
SELECT *
FROM performance_schema.global_variables
WHERE variable_name IN ('read_only', 'super_read_only');

MGR成员的五种状态:

ONLINE: The member is in a fully functioning state.

RECOVERING: The server has joined a group from which it is retrieving data.

OFFLINE: The group replication plugin is installed but has not been started.

ERROR: The member has encountered an error, either during applying transactions or during the recovery phase, and is not participating in the group's transactions.

UNREACHABLE: The failure detection process suspects that this member cannot be contacted, because the group messages have timed out.

新增MGR节点

目前MySQL不支持自动扩展新节点并将全量数据同步到新节点,因此需要:

1、备份任一节点数据(MySQLDump或Xtrabackup)至新节点并还原

2、在新节点上设置与备份数据对应的Executed_Gtid_Set

3、在新节点上执行下面命令直接启动MGR复制即可。

CHANGE MASTER TO MASTER_USER='repl',
MASTER_PASSWORD='repl'
FOR CHANNEL 'group_replication_recovery'; START GROUP_REPLICATION;

MySQL MGR--MGR部署的更多相关文章

  1. mysql 的mgr集群

    mysql 的mgr集群 http://wubx.net/mgr%E7%9B%91%E6%8E%A7%E5%8F%8A%E4%BC%98%E5%8C%96%E7%82%B9/ MGR调优参数因为基本复 ...

  2. mysql数据库主从复制部署笔记

    主从复制是mysql中数据库实时同步的一个常用做法了,今天我来给各位介绍一下关于mysql数据库主从复制部署一个过程,希望此例子对各位同学参考参考. 数据库主从复制原理: 数据库的主从复制就是从mas ...

  3. 多IDC数据分布--MySQL多机房部署 - 学习笔记 - 51CTO技术博客

    多IDC数据分布--MySQL多机房部署 - 学习笔记 - 51CTO技术博客 多IDC数据分布--MySQL多机房部署

  4. Mysql读写分离方案-MySQL Proxy环境部署记录

    Mysql的读写分离可以使用MySQL Proxy和Amoeba实现,其实也可以使用MySQL-MMM实现读写分离的自动切换.MySQL Proxy有一项强大功能是实现"读写分离" ...

  5. shell脚本实例-mysql多机部署

    今天我给大家分享shell 安装mysql 多机部署的实例,本次实验是基于各个主机的公钥已经配置好了,如果还不会推送公钥的同学,可以看看我以前写的文章,那里面有写推公钥的实例,mysql 多机部署一般 ...

  6. CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境, 记坑篇

    CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境 CentOS7 + Python3 + D ...

  7. 基于MySQL+MHA+Haproxy部署高可用负载均衡集群

    一.MHA 概述 MHA(Master High Availability)是可以在MySQL上使用的一套高可用方案.所编写的语言为Perl 从名字上我们可以看到.MHA的目的就是为了维护Master ...

  8. 01 . Mysql简介及部署

    Mysql数据库简介 什么是数据? ​ 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材,数据是信息的表现形式和载体,可以是符号,文字,数字,语音,图 ...

  9. MGR(MySQL Group Replication)部署测试

    1. 环境说明 192.168.11.131 mgr1 主节点 192.168.11.132 mgr2 从节点 192.168.11.133 mgr3 从节点 2. 在mgr1.mgr2.mgr3上安 ...

  10. 4. 利用MySQL Shell安装部署MGR集群 | 深入浅出MGR

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 1. 安装准备 2. 利用MySQL Shell构建MGR集群 3. MySQL Shell接管现存的MGR集群 4 ...

随机推荐

  1. npm 加速之 yarn cnpm pnpm

    npm 加速之 yarn cnpm pnpm 有没有感觉到使用 npm 的时候很慢? 安装速度 几Kb/s 不说, 还装着装着出错了, 奇奇怪怪的问题.这种情况大多数还是因为网络的原因, 很多时候虽然 ...

  2. SpringMVC基本

    SpringMVC和Struts2的区别 SpringMVC与Struts2区别 对比项目 SrpingMVC Struts2 优势 国内市场情况 有大量用户,一般新项目启动都会选用springmvc ...

  3. js:对象之间的复制

    1.:复制obj1,不管obj2是否有这个属性,但是ojb2中的特有属性会保留 var obj1={id:1,name:'zhangsan'} var obj2={}; for (var prop i ...

  4. Google Adsense(谷歌网站联盟)广告申请指南

    Google AdSense 是一种获取收入的快速简便的方法,适合于各种规模的网站发布商.它可以在网站的内容网页上展示相关性较高的 Google 广告,并且这些广告不会过分夸张醒目.由于所展示的广告同 ...

  5. 【问题】Could not locate PropertySource and the fail fast property is set, failing

    这是我遇到的问题 Could not locate PropertySource and the fail fast property is set, failing springcloud的其他服务 ...

  6. ThinkPHP3(添加,修改,删除)

    实现商品的添加 1.在add.html页面中更改表单元素的名称 Goods控制器的add()方法中获取商品分类 在add.html中循环获取 2.设置提交的位置 3.添加商品代码参见GoodsCont ...

  7. 《ucore lab1 exercise5》实验报告

    资源 ucore在线实验指导书 我的ucore实验代码 题目:实现函数调用堆栈跟踪函数 我们需要在lab1中完成kdebug.c中函数print_stackframe的实现,可以通过函数print_s ...

  8. XML中的XPATH和DTD

    大家好,乐字节小乐又来了,上次给大家说道的是XML解析,这次接着讲述XML文档中的语言:XPATH.DTD 一.先来说说XPATH 1.XPATH 概念 XPath 是一门在 XML 文档中查找信息的 ...

  9. 【Tyvj2046】掷骰子

    好水一道题 掷骰子Description Rainbow和Freda通过一次偶然的机会来到了魔界.魔界的大门上赫然写着:小盆友们,欢迎来到魔界~!乃们需要解决这样一个问题才能进入哦lala~有N枚骰子 ...

  10. C++实现base64编解码

    Base64是常见的加密算法,代码实现了基于C++的对于base64的编码和解码. 其中注释掉的部分为编码部分,取消注释将解码部分注释掉即可实现编码,反之可以实现解码. #include <st ...