暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
Mysql的MGR搭建.pdf
873
9页
11次
2021-05-12
25墨值下载
Group Replication原理
1.
MySQL Group Replication有两种模式,单主模式single-primary mode和多主模式multi-primary mode,在同一个group
内,不允许两种模式同时存在,并且若要切换到不同模式,必须修改配置后重新启动集群
1)单主模式
在单主模式下只有一个节点可以读写,其他节点提供只读服务。单主模式下,该参数 _ 必须被设置为 FALSE ,当主节点宕
掉,自动会根据服务器的server_uuid变量和group_replication_member_weight变量值,选择下一个slave谁作为主节点,
group_replication_member_weight的值最高的成员被选为新的主节点,该参数默认为50,建议可以在节点上设置不同值;
在group_replication_member_weight值相同的情况下,group根据数据字典中 server_uuid排序,排序在最前的被选择为主
节点。
单主模式中发现当前的主服务器,该值VARIABLE_VALUE为实例节点的server_uuid:
select * from performance_schema.global_status WHERE VARIABLE_NAME like '%group_replication%';
2)多主模式
在mysql多主模式下,在组复制中通过Group Replication Protocol协议及Paxos协议,形成的整体高可用解决方案 同时增加
了certify的概念,负责检查事务是否允许提交,是否与其它事务存在冲突,Group Replication是由多个节点共同组成一个
数据库集群,每个节点都可以单独执行事务,但是read-write(rw)的操作只有在组内验证后才可以commit,Read-only
(RO)事务是不需要验证可以立即执行,当一个事务在一个节点上提交之前,会在组内自动进行原子性的广播,告知其他节点
变更了什么内容/执行了什么事务,然后为该事物建立一个全局的排序,最终,这意味着所有的服务器都以相同的顺序接收
相同的事务集。因此,所有服务器都按照相同的顺序应用相同的变更集,因此它们在组中保持一致。 在多主模式下,该组
的所有成员都设置为读写模式,在多主模式下,不支持SERIALIZABLE事务隔离级别,且不能完全支持级联外键约束
配置要求和限制
2.
每个表需要定义显式主键
隔离级别:官网建议read commit级别,不支持serializable隔离级别
不建议使用级联外键,如果旧库本身有外键,业务上无法去除并且使用的是多主模式,那么,请配置
group_replication_enforce_update_everywhere_check ,强制检查每个组成员的级联检查,避免多主模式下执行级联操作
造成的检测不到的冲突。
ipv4网络
auto_increment_increment,在GROUP中范围在1-9(因为一个GROUP最多只能有9个组成员),GROUP中安装的时候,默认为
7;
auto_increment_offset,增长步长,GROUP安装过程,是等于@@server_id的,但是注意有个规则是,当
auto_increment_offset > auto_increment_increment的时候,则是忽略 auto_increment_offset的设置,第一个insert的
从1开始,组内其他成员的初始值按照插入顺序 1+n*组员个数,若GROUP有3个成员,A,B,C,serverid分别为
2243310,2243320,3423340,A先insert,C再insert,B最后insert,则初始值 A是1,B是9,C是6 (测试结论,未找到实
际说明文档)
log-bin = ROW;
log_slave_updates = ON;
开启GTID;
安装引擎:group_replication.so;
目前一个MGR集群组最多支持9个节点;
搭建Mysql Group Replication
3.
基础环境:
ip
port
service_id
192.168.134.134
3306
1
192.168.134.145
3306
2
192.168.134.146
3306
3
设置hosts文件
[root@mgr2 ~]# vim /etc/hosts
192.168.134.134 mgr1
192.168.134.147 mgr2
192.168.134.148 mgr3
设置好后,最好重启一下主机。
MGR搭建
2020
11
23
9:58
分区 MGR搭建 的第 1
配置my.cnf文件:
[client]
port = 3306
socket = /mysql5.7/3306/tmp/mysql.sock
default-character-set = utf8
[mysqld]
user = mysql
basedir = /mysql5.7
datadir = /mysql5.7/3306/data
socket = /mysql5.7/3306/tmp/mysql.sock
pid-file = /mysql5.7/3306/data/mysql.pid
port = 3306
server_id = 1
log-error = /mysql5.7/3306/data/mysql.err
character-set-server = utf8
secure_file_priv=''
master_info_repository=TABLE
relay_log_info_repository=TABLE
#slow-query
slow_query_log=on
long_query_time=1
slow_query_log_file=/mysql5.7/3306/tmp/slow.log
log-queries-not-using-indexes=on
expire_logs_days=7
#GTID
gtid_mode = on
enforce-gtid-consistency = on
log-slave-updates=on
log-bin = /mysql5.7/3306/data/mysql-bin
binlog_format=row
binlog_checksum=none
#relay log
relay_log=/mysql5.7/3306/relay_log/mysql-relay-log
relay_log_purge=0
relay_log_recovery=1
#skip_name_resolve
event-scheduler=0
read_only=0
#group
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
loose-group_replication_start_on_boot=OFF
loose-group_replication_local_address= "192.168.134.134:33061"
loose-group_replication_group_seeds= "192.168.134.134:33061,192.168.134.147:33061,192.168.134.148:33061"
loose-group_replication_bootstrap_group=OFF
report_host=192.168.134.134
report_port=3306
备注3server_idloose-group_replication_local_addressreport_host 个参
组复
group_replication使loose-Server
transaction_write_set_extraction = XXHASH64
##Server使XXHASH64
分区 MGR搭建 的第 2
of 9
25墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文档被以下合辑收录

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜