点击上方“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状态。可以在任意一个节点进行插入数据测试,都可以同步给其他节点。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129567.html
摘要:第一次接触集群,感谢官方的指导文档和许多网友提供的教程,糊糊涂涂算是把集群部署起来了。应该为每个运行的机器添加一个,否则集群处于状态。至此的集群搭建算是完成了,下一步会进行块设备的搭建。参考分布式存储部署手册如何在中安装存储集群部署版 第一次接触ceph集群,感谢官方的指导文档和许多网友提供的教程,糊糊涂涂算是把集群部署起来了。由于Luminous12.2刚发布不久,部署起来跟旧版本还...
摘要:月日,助力在北京举办全球最盛大的年度聚会,国内外顶尖的工程师做了很精彩的分享和互动,现场多名爱好者参与了此次技术主题盛宴。后续会有更多现场照片持续更新 11月15日,SegmentFault 助力PyCon China 在北京举办全球 Pythoneer 最盛大的年度聚会,国内外顶尖的Python 工程师做了很精彩的分享和互动,现场300多名python爱好者参与了此次技术主题盛宴。 ...
阅读 1346·2023-01-11 13:20
阅读 1684·2023-01-11 13:20
阅读 1132·2023-01-11 13:20
阅读 1858·2023-01-11 13:20
阅读 4100·2023-01-11 13:20
阅读 2704·2023-01-11 13:20
阅读 1385·2023-01-11 13:20
阅读 3597·2023-01-11 13:20