注意:第4、第5两步的操作可以在mysql group replication主节点上先行执行。
1、下载安装ProxySQL
wget https://github.com/sysown/proxysql/releases/download/v1.3.3/proxysql-1.3.3-1-centos67.x86_64.rpm rpm –ivh proxysql-1.3.3-1-centos67.x86_64.rpm
2、启动ProxySQL
service proxysql start
3、登录ProxySQL
mysql -h127.0.0.1 -P6032 -uadmin -padmin
4、MGR集群创建相关用户并授权
#在集群的主节点执行如下脚本 #添加监控用户并授权 grant all privileges on *.* to 'proxysql'@'172.16.90.%' identified by 'proxysql'; #添加代理业务用户并授权 CREATE USER 'proxyuser'@'%' IDENTIFIED BY 'proxypass'; GRANT INSERT,UPDATE,DELETE,SELECT ON * . * TO 'proxyuser'@'%'; flush privileges;
5、创建检查MGR节点状态的函数和视图
参照前面的博客,在MGR主节点上执行下面链接中的SQL
https://github.com/lefred/mysql_gr_routing_check/blob/master/addition_to_sys.sql
source /root/addition_to_sys.sql
6、配置proxysql
添加MGR成员节点到proxysql mysql_servers表
insert into mysql_servers (hostgroup_id, hostname, port) values(1, '172.16.90.39', 3306); insert into mysql_servers (hostgroup_id, hostname, port) values(2, '172.16.90.39', 3306); insert into mysql_servers (hostgroup_id, hostname, port) values(2, '172.16.90.40', 3306); insert into mysql_servers (hostgroup_id, hostname, port) values(2, '172.16.90.41', 3306);
hostgroup_id = 1代表write group,针对我们提出的限制,这个地方只配置了一个节点;hostgroup_id = 2代表read group,包含了MGR的所有节点。
proxysql还可以配置读写分离,本文不考虑这个特性的配置。对于上面的hostgroup配置,所有的读写操作,默认会发送到hostgroup_id为1的hostgroup,也就是发送到写节点上。
修改proxysql监控的用户及密码
UPDATE global_variables SET variable_value='proxysql' WHERE variable_name='mysql-monitor_username'; UPDATE global_variables SET variable_value='proxysql' WHERE variable_name='mysql-monitor_password';
添加应用通过proxyuser访问后端MGR节点的用户
INSERT INTO MySQL_users(username,password,default_hostgroup) VALUES ('proxyuser','proxypass',1);
将global_variables,mysql_servers、mysql_users表的信息加载到RUNTIME,更进一步加载到DISK
LOAD MYSQL VARIABLES TO RUNTIME; SAVE MYSQL VARIABLES TO DISK; LOAD MYSQL SERVERS TO RUNTIME; SAVE MYSQL SERVERS TO DISK; LOAD MYSQL USERS TO RUNTIME; SAVE MYSQL USERS TO DISK;
7、配置scheduler
在Github地址https://github.com/ZzzCrazyPig/proxysql_groupreplication_checker下载gr_sw_mode_checker.sh
将脚本gr_sw_mode_cheker.sh放到目录/var/lib/proxysql/下
在proxysql的scheduler表里面加载如下记录,然后加载到RUNTIME使其生效,同时还可以持久化到磁盘
insert into scheduler(id, active, interval_ms, filename, arg1, arg2, arg3, arg4) values(1, 1, 3000, '/var/lib/proxysql/gr_sw_mode_checker.sh', 1, 2, 1, '/var/lib/proxysql/checker.log'); LOAD SCHEDULER TO RUNTIME; SAVE SCHEDULER TO DISK;
8、java连接proxysql配置
jdbc.url=jdbc:mysql://172.16.90.39:6033/ifaes_test?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true jdbc.username=proxyuser jdbc.password=proxypass
相关推荐
在搭建环境之前,参照《MySQL Replication 一主多从环境搭建》的指南,完成MySQL主从复制的配置,确保主库的数据能够实时同步到从库。这一步至关重要,因为读写分离的基础是数据的一致性。 接下来,我们开始安装...
为了增强容灾能力,可以考虑使用多主复制或多级复制架构,或者结合其他技术如Group Replication、InnoDB Cluster等。 五、性能优化 在实际生产环境中,为了进一步提升性能,可以对从库进行分区、分片,甚至使用...
此外,为了应对主服务器故障,可以使用如MMM(MySQL Master-Master Replication)、MHA(MySQL High Availability)或MGR(MySQL Group Replication)等工具实现主主复制或故障切换。 读写分离是主从架构的一种扩展...
MySQL 的高可用性可以通过多种方式实现,如主从复制、多主复制、Group Replication 等。在这个场景中,双主互备就是实现高可用的一种方式。 读写分离是数据库优化策略之一,主要是为了缓解主节点的压力。在大型应用...
标题中的"gr_routing"可能指的是ProxySQL的路由规则配置,这是一种在MySQL数据库环境中使用的高性能、高可用性中间件。ProxySQL能够智能地管理和分发SQL查询,确保数据的高效访问和负载均衡。在这个上下文中,"gr_...
1. **主从复制**:这是MySQL最基础的高可用方案,通过配置主库和从库,数据在主库上写入后,会自动同步到从库。这种架构可以实现读写分离,提高读取性能,并在主库故障时快速切换到从库,降低单点故障的风险。 2. *...
2. **MySQL Group Replication (InnoDB Cluster)**:适合新规划的实例,提供自动选主和灵活的一致性策略,但部署配置复杂,需要考虑网络隔离和故障处理。 爱可生提出的金融级MySQL高可用方案,采用异步/增强半同步/...
3. Group Replication:介绍MySQL的Group Replication特性,提供更高级别的数据一致性保障。 三、数据分片 1. 垂直分片:理解如何根据数据属性进行垂直切分,减少数据访问的复杂度。 2. 水平分片:介绍水平分片的...
阿里MySQL采用了分布式集群架构,如MySQL Group Replication或Percona XtraDB Cluster,通过多节点之间的数据复制和仲裁机制,增强了系统的容错能力。当某个节点出现故障时,集群能够自动切换到其他健康的节点,保证...
- **组复制**:MySQL Group Replication提供更高级别的数据一致性和高可用性,允许多个节点同时写入并自动解决冲突。 - **半同步复制**:确保至少有一个从库接收到并写入了主库的数据,增加数据安全性。 - **故障...
Kafka是一个高吞吐量的消息中间件,单机部署简单,集群部署则需要配置多个Broker节点,设置 zookeeper 集群,以及配置producer和consumer的group.id等参数,确保消息的可靠传递。 7. **Zookeeper单机与集群搭建**...
2. **MySQL中的复制(Replication)是怎样工作的?有什么配置选项?** - **复制** 是指在一个或多个从属服务器上复制主服务器上的数据。 - **配置选项** 包括复制类型(异步/半同步)、日志保留策略等。 3. **...
对于MySQL 5.7的新特性,姜承尧特别强调了“七种武器”,它们是无损复制、全文索引、多线程Slave、并行复制、读写分离、Group Replication和原生JSON格式支持等。这些特性可以提高数据的安全性、减少主从复制延迟,...
- Group Replication:MySQL 5.7引入的多主复制,提供更强的一致性和高可用性。 - MySQL Cluster:分布式内存集群,数据在多个节点间冗余,支持自动故障恢复。 8. **备份与恢复**: - 全量备份与增量备份:定期...
- Group Replication:MySQL的集群解决方案,提供更高级别的数据一致性和高可用性。 6. **分区与分表** - 分区:根据特定列将大表分割为小块,提高查询效率和管理能力。 - 分表:垂直切分(按列)和水平切分(按...
- **组复制**:了解MySQL Group Replication,提高高可用性和容错性。 7. **分区与分表** - **分区策略**:ROW, RANGE, LIST, HASH分区的区别和应用场景。 - **垂直切分与水平切分**:理解这两种分表方式,以及...
- 使用MySQL 5.7.17及以上版本提供的组复制功能(Group Replication),该功能基于Paxos协议实现了Shared Nothing架构,能够保证数据的一致性和高可用性。 - 考虑实施更先进的数据保护措施,如数据加密、备份与恢复...