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

俊达2年前技术文章747

如果后端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运维实战之ProxySQL(9.3)使用ProxySQL实现读写分离

proxysql读写分离主要通过mysql_query_rules表中的规则来实现。下面是具体的配置步骤:hostgroup配置insert into mysql_servers&...

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

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

MySQL运维实战之ProxySQL(9.1)ProxySQL介绍

MySQL运维实战之ProxySQL(9.1)ProxySQL介绍

mysql通过复制技术实现了数据库高层面的可用,但是对于应用来说,当后端MySQL发生高可用切换时,应该怎么处理?我们考虑几种方案:1、使用域名绑定。应用通过dns连接后端实例,当后端发生切换后,将d...

MySQL运维实战之ProxySQL(9.4)proxysql和后端MySQL自动切换

MySQL运维实战之ProxySQL(9.4)proxysql和后端MySQL自动切换

如上图架构,当后端MySQL主库出现问题,发生主备切换后,如何自动将ProxySQL的读写切换到新的主库上?可以通过mysql_replication_hostgroups表配置实现:insert&n...

发表评论    

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