proxysql系列 ~ 运维相关
一 常用命令
//实时加载
load mysql servers to runtime; mysql_server
load mysql users to runtime; mysql_users
load mysql variables to runtime; variables
load mysql query rules to runtime; query_rule
//刷新到磁盘
save mysql servers to disk;
save mysql users to disk;
save mysql variables to disk;
save mysql query rules to disk;
二 监控
stats 是proxysql运行抓取的统计信息,包括到后端各命令的执行次数、流量、processlist、查询种类汇总/执行时间,等等。
相关表
1 stats_mysql_connection_pool连接相关
2 stats_mysql_processlist 运行相关
3 stats_mysql_query_digest sql请求比例相关
4 系统监控
5 默认级别内存监控是被禁用的,这里要注意
三 数据备份与恢复
常见于节点的扩容和恢复
sqlite3 sqa.db ".dump [mytabl%]" > sqa.sql
sqlite3 sqb.db < sqa.sql
具体请参考sqlite3的备份恢复
四 相关问题
1 大量查询虽然导向从库,但是返回的数据量太大导致阻塞proxysql代理,导致性能问题甚至导致阻塞.可能场景常见于
1 大数据查询 2 特殊需求需要大批量获取数据等
2 数据库延迟问题导致所有从库打向主库,增大压力
1 DDL大表操作导致延迟
2 大事物导致延迟
解决方法1: DDL操作尽量采用pt-osc操作,然后控制从库延迟参数 2 加大proxysql本身延迟容忍参数(请以实际业务为准) 3 对大事物进行拆分 4 优化慢sql 减少从库IO压力
3 业务进行改造
业务针对主库进行的查询需要添加注释改造业务,后续要养成习惯
4 版本本身BUG导致
比如内存泄漏 无端cacsh等,建议时长对github留言区进行跟踪,最好上线采用全新版本,定期对版本进行升级等
5 是否真的该用proxysql用来代理
这取决于两个原因
1 你的业务是读的比例远远大于写的比例,并且写的压力对于主库已经很大
2 通过测试能保证proxysql读写分离后效率远远高于由于proxysql本身处理所带来的损耗
五 原理相关
1 后端从库延迟检测
通过show slave status 获取 Seconds_Behind_Master,以下情况会发生移除节点
1 和后端的连接断开。
2 slave落后于master过多。
3 和后端建立连接时,错误次数过多。
4 second_behind_master=null时,即slave的SQL线程未运行,或者slave未连接到master。(不过这种自动避开的情况是可控的,见全局变量mysql-monitor_slave_lag_when_null,这个变量值是置换值,设置最好大于能容忍的阈值)
2 连接池复用技术
情况:一个后端DB的连接,可以“同时”被多个客户端使用
改进对比
传统的连接池,会在客户端断开连接(会话)后,把连接放回到池里。
在ProxySQL中,由于连接复用,连接会在 sql语句 执行结束后,便将连接放回到池里(客户端会话可能并没有断开),这样便可大大提高后端连接的使用效率,而避免前段请求过大导致后端连接数疯长。
六 相关架构
1 proxysql本身有性能损耗,可以靠增加多台proxysql进行流量均衡,弥补带来的性能损耗,但是需要维护配置文件的统一
2 proxysql后端监控read_only,配合MHA切换后端mysql,实现高可用.由于proxysql的出现,MHA不必再使用VIP,有效的避免了脑裂的风险
七 参数优化
mysql-monitor_slave_lag_when_null 设置延时参数
mysql-max_allowed_packet 设置数据包大小
mysql-free_connections_pct 保持连接池连接数百分比 X最大连接数/100为保持连接数的连接值
max_connections 最大连接数,不要大于后端数据库的相对应值
表级别
mysql.server-> transaction_persisnt(1) 保证事务内查询路由到主库
proxysql系列 ~ 运维相关的更多相关文章
- Open edX 学习、开发、运维相关链接整理
原文地址:http://edustack.org/ 所需知识: Linux Git Python (Django Mako coffeescript sass) (MongoDB Mysql) Ans ...
- redis运维相关(基本数据库命令)【十四】
-----------------------------运维相关------------------------- redis持久化,两种方式1.rdb快照方式2.aof日志方式 --------- ...
- Linux系统运维相关的面试题 (问答题)
这里给大家整理了一些Linux系统运维相关的面试题,有些问题没有标准答案,希望要去参加Linux运维面试的朋友,可以先思考下这些问题. 一.Linux操作系统知识 1.常见的Linux发行版本都有 ...
- Linux运维相关目录
- 转载---linux运维相关
前段时间,我在准备面试的时搜到的一套Linux运维工程师面试题,感觉比较全面,一直保存在草稿,刚在整理后台时翻了出来,干脆就发出来好了,以备不时之需. 1.linux如何挂在windows下的共享目录 ...
- Linux网络运维相关
删除特殊的用户和用户组 userdel games group games 关闭不需要的服务 chkconfig chkconfig --level 345 bluetooth off 删减系 ...
- redis运维相关
一.redis都有哪些数据类型?分别在哪些场景下使用比较合适?二.redis双写不一致三.雪崩和穿透四.redis的过期策略,LRU五.redis是如何实现高性能高并发六.如何保证Redis的高并发和 ...
- mysql运维相关
1.为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?2.现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统 ...
- Centos7.5部署MySQL5.7基于GTID主从复制+并行复制+半同步复制+读写分离(ProxySQL) 环境- 运维笔记 (完整版)
之前已经详细介绍了Mysql基于GTID主从复制的概念,原理和配置,下面整体记录下MySQL5.7基于GTID主从复制+并行复制+增强半同步复制+读写分离环境的实现过程,以便加深对mysql新特性GT ...
随机推荐
- Codeforces #548 (Div2) - D.Steps to One(概率dp+数论)
Problem Codeforces #548 (Div2) - D.Steps to One Time Limit: 2000 mSec Problem Description Input Th ...
- 《JAVA程序设计》_第六周学习总结
一.本周学习内容 1.内部类--7.1知识 在一个类的内部定义的类成为内部类,包含内部类的类叫做外嵌类 内部类和外嵌类的关系 外嵌类的成员变量在内部类中仍然有效,内部类也可调用外嵌类中的方法 内部类的 ...
- 好程序员web前端分享HTML基础篇
好程序员web前端分享HTML基础篇,最近遇到很多新手,都会问,如果要学web前端开发,需要学什么?难不难学啊?多久能入门之类的问题?那么今天好程序员就先来给大家分享一下web前端学习路线:HTML基 ...
- JavaScript的数据结构和算法
所有JavaScript对象都有hasOwnProperty(value)的方法,用来返回一个表明对象是不是具有这个value Key值属性的布尔值. javaScript的方法 具有delete的方 ...
- .net使用SqlBulkCopy类操作DataTable批量插入数据库数据,然后分页查询坑
在使用SqlBulkCopy类操作DataTable批量插入数据,这种操作插入数据的效率很高,就会导致每一条数据在保存的时间基本一样,在我们分页查询添加的数据是,使用数据的添加时间来排序就会出现每页的 ...
- 利用layui前端框架实现对不同文件夹的多文件上传
利用layui前端框架实现对不同文件夹的多文件上传 问题场景: 普通的input标签实现多文件上传时,只能对同一个文件夹下的多个文件进行上传,如果要同时上传两个或多个文件夹下的文件,是无法实现的.这篇 ...
- springboot项目中配置swagger-ui
Git官方地址:https://github.com/SpringForAll/spring-boot-starter-swagger Demo:https://github.com/dyc87112 ...
- 关于pyx文件的修改
在项目中碰到了关于pyx文件的修改,记录一下,省的以后还得查 官网快速入门地址:https://cython.readthedocs.io/en/latest/src/tutorial/cython_ ...
- BZOJ 3157: 国王奇遇记 (数学)
题面:BZOJ3157 一句话题意: 求: \[ \sum_{i=1}^ni^m\ \times m^i\ (mod\ 1e9+7)\ \ (n \leq 1e9,m\leq200)\] 题解 令 \ ...
- 机器学习KNN算法
KNN(最邻近规则分类K-Nearest-Neighibor)KNN算法 1. 综述 1.1 Cover和Hart在1968年提出了最初的邻近算法 1.2 分类(classific ...