首页 > 数据库 >14.ProxySQL中间件01

14.ProxySQL中间件01

时间:2023-04-08 22:57:56浏览次数:46  
标签:load 01 runtime -- 中间件 ProxySQL mysql proxysql disk

     Proxysql是基于mysql的一款开源的中间件的产品,是一个灵活的Mysql代理层,可以实现读写分离,支持Query路由功能,支持动态指定某个sql进行缓存,支持动态加载配置信息(无须重启proxysql服务),支持故障切换和sql的过滤功能。

相关的网站:    https://www.proxysql.com/         https://github.com/sysown/proxysql/wiki

安装:可以直接去github上面下载rpm包安装

启动|关闭 proxysql程序: systemctl start|status|stop proxysql

1.ProxySql的admin管理接口

当proxysq启动后,将监听两个端口:

  1)admin管理接口,默认端口是6032.该端口用于查看、查看proxysql

  2) 接受sql语句的接口,默认端口未6033,这个接口类似于mysql的3306端口

默认的工作结构如下:

2.proxysql登录

  proxysql管理接口默认使用admin管用用户的,只允许本地登录(如下),proxysql的配置几乎都保存在自带的的库中。

[root@mysql03 src]# mysql -u admin -padmin -h 127.0.0.1 -P6032 --prompt='Aadmin>'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.30 (ProxySQL Admin Module)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Aadmin>show databases;
+-----+---------------+-------------------------------------+
| seq | name          | file                                |
+-----+---------------+-------------------------------------+
| 0   | main          |                                     |
| 2   | disk          | /var/lib/proxysql/proxysql.db       |
| 3   | stats         |                                     |
| 4   | monitor       |                                     |
| 5   | stats_history | /var/lib/proxysql/proxysql_stats.db |
+-----+---------------+-------------------------------------+
5 rows in set (0.00 sec)

Aadmin>

3.Proxysql中管理结构自带的系统库

  在proxysql,6032端口主要管理以下五个库:main、disk、stats、monitor、stats_history

      1)main: main库中重要的表有如下:

       mysql_servers:后端可以连接mysql服务器的列表

       mysql_users:配置后端数据库的账号和监控账号

     mysql_query_rules:指定query路由到后端不同服务器的规则列表

           注意:表名以runtime_开头的表示Proxysql当前运行的配置内存,不能直接改,不带runtime是可以进行修改的

  2) disk:这个库里面都持久化磁盘的配置

  3) stats:统计信息的汇总

  4) stats_history: Proxysql收集的有关其内部功能的历史指标

4.Proxysql管理接口的多层配置关系

   

       整套系统主要分为三层:

        顶层: runtime    中间层: memory (主要修改的配置表)  持久层: disk和cfg file

    runtime: 代表Proxysql 当前正在使用的配置,无法直接修改此配置,必须要从下一层(mem层)"load"进来,

        memory:memory层上面连接runtime层,下面连接持久层,这层可以在线操作proxysql配置,随便修改,不会影响生产环境,确认正常之后再加载到runtime和持久磁盘上。

    disk和config file:  持久化配置信息。重启时,可以重磁盘快速加载回来。

5.在不同层次间移动配置

   为了将配置持久化到磁盘或者应用到runtime,在管理接口下有一系列管理命令来实现它们。

   1)user 相关

   1.1 MEM加载到runtime  --> load mysql users to runtime;

   1.2 runtime保存至MEM --> save mysql users to memory;

       1.3 disk加载到mem   --> load mysql users from disk;

       1.4 mem到disk  --> save mysql users to disk;

       1.5 cfg 到mem  --> load mysql users form cfg

  2)  server 相关配置

   2.1 MEM加载到runtime  --> load mysql servers to runtime;

   2.2 runtime保存至MEM --> save mysql servers to memory;

       2.3 disk加载到mem   --> load mysql servers from disk;

       2.4 mem到disk  --> save mysql servers to disk;

       2.5 cfg 到mem  --> load mysql servers form cfg

  3) mysql query rules 配置 

   3.1 MEM加载到runtime  --> load mysql query rules to runtime;

   3.2 runtime保存至MEM --> save mysql query rules to memory;

       3.3 disk加载到mem   --> load mysql query rules from disk;

       3.4 mem到disk  --> save mysql query rules to disk;

       3.5 cfg 到mem  --> load mysql query rules form cfg

4) mysql variables配置

   4.1 MEM加载到runtime  --> load mysql variables  to runtime;

   4.2 runtime保存至MEM --> save mysql variables  to memory;

       4.3 disk加载到mem   --> load mysql variables  from disk;

       4.4 mem到disk  --> save mysql variables to disk;

       4.5 cfg 到mem  --> load mysql  variables form cfg

  

总结: 日常配置其实大部分在MEM配置中,然后load到runtime,然后save到disk,cfg很少使用。

例如:load xxx to runtime;  save xxx to disk;

注意: 只有load到runtime状态时才会验证配置,在保存mem到disk时,都不会发生任何警告或错误。当load到runtime时,如果出现错误,将恢复为之前报错的状态,这时可以去检查错误日志。

 

标签:load,01,runtime,--,中间件,ProxySQL,mysql,proxysql,disk
From: https://www.cnblogs.com/zmc60/p/17299465.html

相关文章

  • 构建之法 阅读笔记01
    第一章概论1.软件=程序+软件工程:正是因为对软件开发活动(构建管理、源代码管理、软件设计、软件测试、项目管理)相关的内容的完成,才能完成把整个程序转化成为一个可用的软件的过程。扩展的推论:软件企业=软件+商业模式2.软件开发的不同阶段:玩具阶段→业余爱好阶段→探索阶段→成......
  • STM32F401串口2的异步发送
    本文使用Nucleo-F401RE这块板,目的是学习STM32平台上串口的使用方法。只描述如何操作寄存器以发送给定数据且不使用中断。接收数据的方法自行类比。准备工作:一、打开芯片的Datasheet。找到引脚功能映射表,选择要使用的串口对应的功能引脚。这里使用PA2和PA3的07号功能,即USART2-TX......
  • 『0017』 - Solidity Types - Solidity 枚举(Enums)
    作者:黎跃春,案例下面的代码是我对官方案例作了简单的修改而成。ActionChoices就是一个自定义的整型,当枚举数不够多时,它默认的类型为uint8,当枚举数足够多时,它会自动变成uint16,下面的GoLeft==0,GoRight==1,GoStraight==2,SitStill==3。在setGoStraight方法中,我们传入的参数......
  • 『0016』 - Solidity Types - 玩转 Solidity 数组 (Arrays)
    作者:黎跃春,学习目标掌握Arrays的可变不可变的创建深度理解可变数组和不可变数组之间的区别二维数组memoryarrays的创建bytes0~bytes32、bytes与byte[]对比固定长度的数组(Arrays)固定长度类型数组的声明pragmasolidity^0.4.4;contractC{//数组的长度为5,数组里面的存储......
  • 『0012』 - Solidity Types - 字符串(String Literals)
    作者:黎跃春,案例字符串可以通过""或者''来表示字符串的值,Solidity中的string字符串不像C语言一样以\0结束,比如我的微信号liyc1215这个字符串的长度就为我们所看见的字母的个数,它的长度为8。pragmasolidity^0.4.4;contractStringLiterals{string_name;//状态变量......
  • 『0013』 - Solidity Types - 固定大小字节数组(Fixed-size byte arrays)
    作者:黎跃春,固定大小字节数组(Fixed-sizebytearrays)固定大小字节数组可以通过bytes1,bytes2,bytes3,…,bytes32来进行声明。PS:byte的别名就是byte1。bytes1只能存储一个字节,也就是二进制8位的内容。bytes2只能存储两个字节,也就是二进制16位的内容。bytes3只能存储三个字......
  • 『0015』 - Solidity Types - (Dynamically-sized byte array)、(Fixed-size byte arrays
    作者:黎跃春,大纲固定大小字节数组(Fixed-sizebytearrays)之间的转换固定大小字节数组(Fixed-sizebytearrays)转动态大小字节数组(Dynamically-sizedbytearray)固定大小字节数组(Fixed-sizebytearrays)不能直接转换为string动态大小字节数组(Dynamically-sizedbytearray)转stri......
  • 『0014』 - Solidity Types - 动态大小字节数组(Dynamically-sized byte array)
    作者:黎跃春,一、Dynamically-sizedbytearraystring是一个动态尺寸的UTF-8编码字符串,它其实是一个特殊的可变字节数组,string是引用类型,而非值类型。bytes动态字节数组,引用类型。根据经验,在我们不确定字节数据大小的情况下,我们可以使用string或者bytes,而如果我们清楚的知道或者......
  • 『0018』 - Solidity Types - Solidity 结构体(Structs)
    作者:黎跃春,自定义结构体pragmasolidity^0.4.4;contractStudents{structPerson{uintage;uintstuID;stringname;}}Person就是我们自定义的一个新的结构体类型,结构体里面可以存放任意类型的值。初始化一个结构体初始化一个storage......
  • DBGridEH11学习EhLib11的下载和安装(01)
    链接:https://pan.baidu.com/s/1HBw6AEzOXQgS2MIhh-ovhw提取码:iuuw安装  目录里Demos和Hlp文件夹, ......