mysql 高可用架构 proxysql 之四 write read separation详解数据库

os:centos 7.4
mysql: 5.7
proxysql: 1.4.10

ip 规划如下:

192.168.56.101 node1 (proxysql)

192.168.56.102 node2 (mysql master)
192.168.56.103 node3 (mysql slave)
192.168.56.104 node4 (mysql slave)

配置读写分离策略需要使用 mysql_query_rules 表。表中的 match_pattern 字段就是代表设置的规则,destination_hostgroup 字段代表默认指定的分组,apply 代表真正执行应用规则。

把所有以 select 开头的语句全部分配到编号为 2 的读组中。
select for update 会产生一个写锁,对数据查询的实效性要求高,把它分配到编号为 1 的写组中,其他所有操作都会默认路由到写组中。

读写分离规则 main.mysql_query_rules

Admin> use main; 
Admin> select * from main.mysql_query_rules; 
Empty set (0.00 sec) 
 
Admin> insert into main.mysql_query_rules(active,match_pattern,destination_hostgroup, apply) VALUES(1,'^SELECT.*FOR UPDATE$',10,1); 
Admin> insert into main.mysql_query_rules(active,match_pattern,destination_hostgroup, apply) VALUES(1,'^SELECT',20,1); 
Admin> load mysql query rules to runtime; 
Admin> save mysql query rules to disk;

更详细的操作,研究透彻后随时补充。

下面是一些proxysql常用的命令

# /etc/init.d/proxysql  
Usage: ProxySQL {start|stop|status|reload|restart|initial} 

生产环境切不可 initial。

加载或保存 users(mysql_users)

[1]: load mysql users to runtime / load mysql users from memory –将修改后的配置(在memory层)用到实际生产
[2]: save mysql users to memory / save mysql users from runtime –将生产配置拉一份到memory中
[3]: load mysql users to memory / load mysql users from disk –将磁盘中持久化的配置拉一份到memory中来
[4]: save mysql users to disk / save mysql users from memory –将memoery中的配置保存到磁盘中去
[5]: load mysql users from config –将配置文件中的配置加载到memeory中

加载或保存servers(mysql_servers):

[1]: load mysql servers to runtime –让修改的配置生效
[2]: save mysql servers to memory
[3]: load mysql servers to memory
[4]: save mysql servers to disk –将修改的配置持久化
[5]: load mysql servers from config

加载或保存 query rules(mysql_query_rules):

[1]: load mysql query rules to runtime
[2]: save mysql query rules to memory
[3]: load mysql query rules to memory
[4]: save mysql query rules to disk
[5]: load mysql query rules from config

加载或保存 mysql variables(global_variables):
(select * from global_variables where variable_name like ‘mysql-%’)

[1]: load mysql variables to runtime
[2]: save mysql variables to memory
[3]: load mysql variables to memory
[4]: save mysql variables to disk
[5]: load mysql variables from config

加载或保存 admin variables
(select * from global_variables where variable_name like ‘admin-%’):

[1]: load admin variables to runtime
[2]: save admin variables to memory
[3]: load admin variables to memory
[4]: save admin variables to disk
[5]: load admin variables from config

多读官方文档!!!
多读官方文档!!!
多读官方文档!!!

参考:
IT虾米网
IT虾米网

IT虾米网

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/database/3883.html

(0)
上一篇 2021年7月16日 18:24
下一篇 2021年7月16日 18:24

相关推荐

发表回复

登录后才能评论