MySQL运维实战之ProxySQL(9.5)proxysql和MySQL Group Replication配合使用

俊达1年前技术文章563

如果后端MySQL使用了Group Replication,可通过配置mysql_group_replication_hostgroups表来实现高可用

mysql_group_replication_hostgroups

字段

描述

writer_hostgroup

写hostgroup。read_only和super_read_only OFF的节点。

backup_writer_hostgroup

如果可写的节点数超过max_writers,将超出限制的节点的hostgroup设置为backup_writer_hostgroup

reader_hostgroup

读hostgroup。read_only或super_read_only ON的节点放入改hostgroup。

offline_hostgroup

如果后端mysql实例健康检查失败或group replication状态异常,则会被移入offline_hostgroup

active

是否启用。

max_writers

可写节点数上限。超过该限制数量的可写节点会放入backup_writer_hostgroup

writer_is_also_reader

如果设置为0,则只有只读节点加入reader_hostgroup。

如果设置成1,则writer_hostgroup中的节点会同时加入reader_hostgroup。

如果设置为2,则只会把backup_writer_hostgroup中的节点加入reader_hostgroup。(如果backup_writer_hostgroup中无节点,好像也会把writer_hostgroup中的节点加入到reader_hostgroup,疑似bug)。

max_transactions_behind


comment



配置集群节点

insert into mysql_servers (
  hostgroup_id, hostname, port, max_replication_lag)
values ( 200, '172.16.121.236', 3306, 3);

insert into mysql_servers (
  hostgroup_id, hostname, port, max_replication_lag)
values ( 210, '172.16.121.237', 3306, 3);


load mysql servers  to runtime; 
SAVE MYSQL servers  TO DISK;


配置集群信息

insert into mysql_group_replication_hostgroups
(writer_hostgroup, backup_writer_hostgroup, reader_hostgroup, 
offline_hostgroup, active, max_writers, writer_is_also_reader,
max_transactions_behind, comment)
values(200, 201, 210, 202, 1, 1, 0, 0, 'mysql mgr cluster 1');

load mysql servers to runtime;
save mysql servers to disk;

创建和配置用户信息

在后端创建用户

mysql> create user 'mgr'@'%' identified by 'mgr123';
Query OK, 0 rows affected (0.06 sec)

mysql> grant select,insert,update,delete,create,drop on *.* to 'mgr'@'%';
Query OK, 0 rows affected (0.02 sec)


在proxysql配置用户信息

insert into mysql_users
(username, password, transaction_persistent, backend, frontend, default_hostgroup, comment)
values ('mgr', 'mgr123', 1, 1, 1, 200, 'backend user for mgr cluster');

load mysql users  to runtime; 
save mysql users to disk;



按上面的步骤配置后,就实现了基于MySQL Group Replication和ProxySQL的高可用架构。

相关文章

MySQL运维实战(4.7) SQL_MODE之ANSI_QUOTES

默认情况下,mysql使用反引号(`)作为标识符的引号。使用mysql关键字作为表名、字段名会报语法错误,这时可以加上反引号( `),避免报错。设置ANSI_QUOTES后,使用双引号(")...

MySQL运维实战(4.3) SQL_MODE之ONLY_FULL_GROUP_BY

设置ONLY_FULL_GROUP_BY后,对有group by子句SQL,select的字段要么是group by中的字段,要么对字段进行聚合运算,否则sql执行报错。不设置ONLY_FULL_GR...

MySQL运维实战(4.9) SQL_MODE之NO_UNSIGNED_SUBTRACTION

在mysql数据库中,unsigned表示不存负数,如果unsigned类型的字段作运算,得到的结果为负数,SQL会报错。mysql> create table t...

MySQL运维实战之备份和恢复(8.5)xtrabackup恢复增量备份

恢复增量备份时,需要先对基础全量备份进行恢复,然后再依次按增量备份的时间进行恢复。这个例子中,相关备份文件的目录结构如下:/data/backup ├── full │ &nb...

MySQL运维实战之ProxySQL(9.2)ProxySQL安装和配置

proxysql安装proxysql提供了各个linux发行版的安装包,我们可以使用操作系统的包管理系统来安装proxysql。这里我们以CentOS 7为例:1、从github下载安装包根据OS版本...

MySQL优化器特性(三)表关联之BKA(Batched Key Access)优化

MySQL优化器特性(三)表关联之BKA(Batched Key Access)优化

单表range查询时,可以使用MRR优化,先对rowid进行排序,然后再回表查询数据。在表关联的时候,也可以使用类似的优化方法,先根据关联条件取出被关联表的rowid,将rowid缓存在join bu...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。