一 常用命令
   //实时加载
   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系列 ~ 运维相关的更多相关文章

  1. Open edX 学习、开发、运维相关链接整理

    原文地址:http://edustack.org/ 所需知识: Linux Git Python (Django Mako coffeescript sass) (MongoDB Mysql) Ans ...

  2. redis运维相关(基本数据库命令)【十四】

    -----------------------------运维相关------------------------- redis持久化,两种方式1.rdb快照方式2.aof日志方式 --------- ...

  3. Linux系统运维相关的面试题 (问答题)

    这里给大家整理了一些Linux系统运维相关的面试题,有些问题没有标准答案,希望要去参加Linux运维面试的朋友,可以先思考下这些问题.   一.Linux操作系统知识 1.常见的Linux发行版本都有 ...

  4. Linux运维相关目录

  5. 转载---linux运维相关

    前段时间,我在准备面试的时搜到的一套Linux运维工程师面试题,感觉比较全面,一直保存在草稿,刚在整理后台时翻了出来,干脆就发出来好了,以备不时之需. 1.linux如何挂在windows下的共享目录 ...

  6. Linux网络运维相关

    删除特殊的用户和用户组 userdel games group games   关闭不需要的服务 chkconfig chkconfig --level 345 bluetooth off   删减系 ...

  7. redis运维相关

    一.redis都有哪些数据类型?分别在哪些场景下使用比较合适?二.redis双写不一致三.雪崩和穿透四.redis的过期策略,LRU五.redis是如何实现高性能高并发六.如何保证Redis的高并发和 ...

  8. mysql运维相关

    1.为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?2.现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统 ...

  9. Centos7.5部署MySQL5.7基于GTID主从复制+并行复制+半同步复制+读写分离(ProxySQL) 环境- 运维笔记 (完整版)

    之前已经详细介绍了Mysql基于GTID主从复制的概念,原理和配置,下面整体记录下MySQL5.7基于GTID主从复制+并行复制+增强半同步复制+读写分离环境的实现过程,以便加深对mysql新特性GT ...

随机推荐

  1. C# .NET 0命令行安装Windows服务程序

    设计原则:万物皆对象 背景:在我的项目中,即需要与硬件通过Socket连接通讯,又需要给App提供Wcf服务操作接口,虽然都完成了,但是却是一个控制台(虽然我很喜欢控制台,因为它简单易用),把它放到服 ...

  2. git@github.com: Permission denied (publickey).////remote: Permission to xxx/test.git denied to xxx.等权限问题

    Error msg git@github.com: Permission denied (publickey) 或者: remote: Permission to xxx/test.git denie ...

  3. zcu102 hdmi example(一)

    1,概述 有一个计划是打算做一个摄像头的驱动与显示. 但是实际上手上只有一个zcu102开发板,没有摄像头,也没有上位机,自己也不会写.所以就将方案阉割成将录制好的视频放在SD卡里面,然后从SD卡里面 ...

  4. JavaScript的数据结构和算法

    所有JavaScript对象都有hasOwnProperty(value)的方法,用来返回一个表明对象是不是具有这个value Key值属性的布尔值. javaScript的方法 具有delete的方 ...

  5. NodeJs之文件上传

    NodeJs之文件上传 一,介绍与需求 1.1,介绍 1,multer模块 multer用于处理文件上传的nodejs中间件,主要跟express框架搭配使用,只支持表单MIME编码为multipar ...

  6. 微信小程序音乐播放

    最近在写一个艾美食艾音乐的微信小程序,其中有用到音乐播放的功能,基本播放切换功能已经实现,但是在反复切换歌曲.重新进入歌曲以及单曲循环.列表循环的测试过程中还是发生了bug,特此写一篇文章,捋一下思路 ...

  7. ADT打开layout目录的xml报错java.lang.NullPointerException

    原因为使用了Android Studio的绿色JRE,必须要安装安装版JDK或者JRE,绿色版JRE放在ADT目录虽然能启动ADT但是不能启动layout目录的xml

  8. AWS Step Function Serverless Applications

    Installing VS Components To follow along with this article, you must have an AWS account and install ...

  9. koa-static node服务器设置静态目录

    最近毕设需要用到上传照片,但当node服务器成功获取前端传来的图片时,又不知道如何在页面获取服务器image目录下的图片,一直报以下错误: 问题主要是无法找到图片url,虽然可以一个个在app.js文 ...

  10. Mergeable Stack ZOJ - 4016(list)

    ZOJ - 4016 vector又T又M list是以链表的方式存储的 是一个双向链表 元素转移操作中,不能一个个遍历加入到s中,list独有的splic函数可以在常数时间内实现合并(并删除源lis ...