资讯专栏INFORMATION COLUMN

MGR搭建

IT那活儿 / 1690人阅读
MGR搭建

点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!




单主模式

1. 环境说明

192.168.77.11 linux-node1.example.com

192.168.77.12 linux-node2.example.com

192.168.77.13 linux-node3.example.com

mysql 5.7.25

server_id=1001

server_id=1002

server_id=1003

2. MGR参数配置

注意:每个节点都要填写这些参数项。

server_id=1001

#MYSQL实例在集群中的ID,必须唯一。

gtid_mode=ON

#开启GTID,即全局事务ID,一个事务在集群中的唯一标识。

enforce_gtid_consistency=ON

#任何事务不允许违反GITD安全性与一致性,必须开启。开启之后create table ... select这种数据不会记录binlog的语句就不能被执行。不会导致集群节点间的数据不一致。

master_info_repository=TABLE

#将master_info信息记录到数据库的系统表当中。

relay_log_info_repository=TABLE

#将relay_log_info信息记录到数据库的系统表当中。

log_slave_updates=ON

#将同步过来的数据变更,记录到从库的binlog当中。

log_bin=binlog

#开启binlog用于数据同步。

binlog_format=ROW

#binlog的记录格式。

binlog_checksum=NONE

#binlog的完整性校验方式,NONE是为了兼容低版本实例。

transaction_write_set_extraction=XXHASH64

#server必须为每个事务收集写集合,并使用XXHASH64哈希算法将其编码为散列。

loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"

#告知插件加入或创建组名,必须是UUID,可用工具创建,组的名字可以随便起,但不能用主机的GTID。

loose-group_replication_start_on_boot=off

#server启动时不自启组复制,为了避免每次启动自动引导具有相同名称的第二个组,所以设置为OFF。

loose-group_replication_local_address="192.168.77.11:13306"

#告诉插件当前主机的主机名或IP,自定义端口13306用于接收组中其他成员转入连接,端口可改。

loose-group_replication_group_seeds="192.168.77.11:13306,192.168.77.12:13306,192.168.77.13:13306"

#启动组server,种子server,加入组应该连接这些主机和端口;其他server要加入组得由组成员同意。

loose-group_replication_ip_whitelist=192.168.77.11,192.168.77.12,192.168.77.13

#添加允许加入成员的白名单,可以不写。

loose-group_replication_bootstrap_group=off

#表示是否启动MySQL分组,在一个分组中,只应当允许一个成员启动MySQL分组。

#loose-group_replication_single_primary_mode=off

#多主模式须为off ,单主模式为on 。

#loose-group_replication_enforce_update_everywhere_checks=true

#多主模式须为true,单主模式为false。

注意:

  • 每个节点server_id、loose-group_replication_local_address的值不能一样。

  • loose-group_replication_group_seeds的值就是你计划有几个MGR节点,这个就填写MGR所有节点的IP,每一个MGR节点的这个值是一样的。

重启所有Mysql节点使得参数配置生效。

show variables like %server_id%;


检查每个节点的配置是否生效,以及server_id是否唯一。

3. 启动MGR

所有节点执行:

install plugin group_replication soname group_replication.so;

上:如果你没有让之前配置的参数生效,这一步会报错,ERROR 1123。

192.168.77.11执行:

SET SQL_LOG_BIN=0;

#创建授权用户不写入bin_log。

CREATE USER sync@192.168.% identified by sync;

GRANT REPLICATION SLAVE ON *.* TO sync@192.168.%;

flush privileges;

SET SQL_LOG_BIN=1;

#创建数据同步账户。

SET GLOBAL group_replication_bootstrap_group=ON;

CHANGE MASTER TO MASTER_USER=sync,MASTER_PASSWORD=sync FOR CHANNEL group_replication_recovery;

#第1台服务器启动组复制,复制组只须启动一次,第1台服务器和其他服务器在此次之后都无需再做以下操作。

START GROUP_REPLICATION;

SET GLOBAL group_replication_bootstrap_group=OFF;

#启动第个MGR组,组中只有一个master成员。

SELECT * FROM performance_schema.replication_group_members;

#判断第一个MGR成员是否成功,member_state状态必须是ONLINE。

192.168.77.12,192.168.77.13执行:

SET SQL_LOG_BIN=0;

#创建授权用户不写入bin_log。

CREATE USER sync@192.168.% identified by sync;

GRANT REPLICATION SLAVE ON *.* TO sync@192.168.%;

flush privileges;

SET SQL_LOG_BIN=1;

#创建数据同步账户。

CHANGE MASTER TO MASTER_USER=sync,MASTER_PASSWORD=sync FOR CHANNEL group_replication_recovery;

START GROUP_REPLICATION;

验证是否搭建成功:

SELECT * FROM performance_schema.replication_group_members;

#查看集群状态,三个都要ONLINE。

SELECT

MEMBER_ID,

MEMBER_HOST,

MEMBER_PORT,

MEMBER_STATE,

IF(global_status.VARIABLE_NAME IS NOT NULL,

PRIMARY,

SECONDARY) AS MEMBER_ROLE

FROM

performance_schema.replication_group_members

LEFT JOIN

performance_schema.global_status ON global_status.VARIABLE_NAME = group_replication_primary_member

AND global_status.VARIABLE_VALUE = replication_group_members.MEMBER_ID;

上:查看MGR集群主节点是谁。



切换到多主模式

所有节点执行:

stop group_replication;

set global group_replication_single_primary_mode=OFF; set global group_replication_enforce_update_everywhere_checks=ON;

192.168.77.11执行:

SET GLOBAL group_replication_bootstrap_group=ON; START GROUP_REPLICATION; SET GLOBAL group_replication_bootstrap_group=OFF;

192.168.77.12,192.168.77.13执行:

START GROUP_REPLICATION;

验证是否搭建成功:

SELECT

MEMBER_ID,

MEMBER_HOST,

MEMBER_PORT,

MEMBER_STATE,

IF(global_status.VARIABLE_NAME IS NOT NULL,

PRIMARY,

SECONDARY) AS MEMBER_ROLE

FROM

performance_schema.replication_group_members

LEFT JOIN

performance_schema.global_status ON global_status.VARIABLE_NAME = group_replication_primary_member

AND global_status.VARIABLE_VALUE = replication_group_members.MEMBER_ID;

上:可以看到三个节点都是ONLINE,并且是SECONDARY状态。可以在任意一个节点进行插入数据测试,都可以同步给其他节点。



本文作者:许智发

本文来源:IT那活儿(上海新炬王翦团队)

​​

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129567.html

相关文章

  • Ceph v12.2 Luminous基于ubuntu16.04集群部署

    摘要:第一次接触集群,感谢官方的指导文档和许多网友提供的教程,糊糊涂涂算是把集群部署起来了。应该为每个运行的机器添加一个,否则集群处于状态。至此的集群搭建算是完成了,下一步会进行块设备的搭建。参考分布式存储部署手册如何在中安装存储集群部署版 第一次接触ceph集群,感谢官方的指导文档和许多网友提供的教程,糊糊涂涂算是把集群部署起来了。由于Luminous12.2刚发布不久,部署起来跟旧版本还...

    MiracleWong 评论0 收藏0
  • 常用的CSS框架

    摘要:常用的框架之前在写自己的个人网站的时候,由于自己前端不是特别好,于是就去找相关的框架来搭建页面了。找到以下这么一篇文章列出了很多常用的框架本篇主要是记录我用过的框架,并把之前写过的笔记进行整合一下。 常用的CSS框架 之前在写自己的个人网站的时候,由于自己Web前端不是特别好,于是就去找相关的CSS框架来搭建页面了。 找到以下这么一篇文章(列出了很多常用的CSS框架): http://...

    Alfred 评论0 收藏0
  • 常用的CSS框架

    摘要:常用的框架之前在写自己的个人网站的时候,由于自己前端不是特别好,于是就去找相关的框架来搭建页面了。找到以下这么一篇文章列出了很多常用的框架本篇主要是记录我用过的框架,并把之前写过的笔记进行整合一下。 常用的CSS框架 之前在写自己的个人网站的时候,由于自己Web前端不是特别好,于是就去找相关的CSS框架来搭建页面了。 找到以下这么一篇文章(列出了很多常用的CSS框架): http://...

    kk_miles 评论0 收藏0
  • SegmentFault 助力 PyCon2014 China

    摘要:月日,助力在北京举办全球最盛大的年度聚会,国内外顶尖的工程师做了很精彩的分享和互动,现场多名爱好者参与了此次技术主题盛宴。后续会有更多现场照片持续更新 11月15日,SegmentFault 助力PyCon China 在北京举办全球 Pythoneer 最盛大的年度聚会,国内外顶尖的Python 工程师做了很精彩的分享和互动,现场300多名python爱好者参与了此次技术主题盛宴。 ...

    junbaor 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<