美文网首页
MySQL系列-Proxysql最佳实践二

MySQL系列-Proxysql最佳实践二

作者: 开心的蛋黄派 | 来源:发表于2023-12-28 15:56 被阅读0次

一、从库服务

从库服务在备库不可用时提供读服务,而在正常情况下只有从库提供服务。

从库不可用:

从库进程挂掉

从库延时超过120秒(如果延时确实超过120秒,从库可能发生复制异常,默认阈值为120秒,参数变量为mysql-monitor_slave_lag_when_null)

二、从库维护

设置从库状态为OFFLINE_SOFT

检查从库是否还有活跃连接

执行以下SQL查询,查看是否有客户端连接:

复制代码

sql`SELECT hostgroup hg, srv_host, status, ConnUsed, ConnFree, ConnOK, ConnERR FROM stats_mysql_connection_pool WHERE ConnUsed+ConnFree > 0 ORDER BY hg, srv_host;`

关闭数据库进行维护,维护完毕后启动数据库。

启动数据库后,设置从库状态为ONLINE。

三、proxysql自身摘除维护

通过show processlist查看是否还有链接。

使用ngrep命令过滤存活流量,通过以下命令:

复制代码

bash`ngrep -W byline -w -i "delete|update|select|insert" port -t -d eth0 |grep -v '本机ip'|grep -v 'slamonitor'`

四、高可用性

后端:

使用proxysql+mha配置,proxysql配置vip,mha切换不影响proxysql。

使用proxysql+orc配置,proxysql配置实体ip,利用orc钩子脚本调整proxysql具体配置。

前端:

使用proxysql+etcd+coredns架构,etcd动态增减存活proxysql代理,coredns提供前端解析。

五、集群管理

核心表:proxysql_servers

同步表:mysql_replication_hostgroups、mysql_servers、mysql_users、mysql_query_rules、proxysql_servers。

非同步表:admin_variables、mysql_variables。

同步控制变量:通过更新global_variables表中的相关变量值来实现同步控制。具体更新如下:

复制代码

sql`update global_variables set variable_value='true' where variable_name='admin-checksum_mysql_query_rules'; 

update global_variables set variable_value='true' where variable_name='admin-checksum_mysql_servers'; 

update global_variables set variable_value='true' where variable_name='admin-checksum_mysql_users'; 

update global_variables set variable_value='true' where variable_name='admin-cluster_mysql_query_rules_save_to_disk'; 

update global_variables set variable_value='true' where variable_name='admin-cluster_mysql_servers_save_to_disk'; 

update global_variables set variable_value='true' where variable_name='admin-cluster_mysql_users_save_to_disk'; 

update global_variables set variable_value='true' where variable_name='admin-cluster_proxysql_servers_save_to_disk';`

相关文章

网友评论

      本文标题:MySQL系列-Proxysql最佳实践二

      本文链接:https://www.haomeiwen.com/subject/inkggdtx.html