zoukankan      html  css  js  c++  java
  • 青蛙学Linux—ProxySQL配置系统

    1、ProxySQL配置系统

    ProxySQL有一个完备的配置系统,配置ProxySQL是基于SQL命令的方式进行的。ProxySQL支持配置修改之后的在线保存、应用,不需要重启即可使配置生效。

    ProxySQL配置系统使用层级体系,分为以下三个层级:

    • RUNTIME
    • MEMORY
    • DISK/CONFIG FILE

    图片1

    ProxySQL将配置系统分为三个层级的目的:

    • 自动更新
    • 尽可能的不重启ProxySQL就可以修改配置
    • 方便回滚错误配置

    每个层级的功能与含义如下:

    • RUNTIME:ProxySQL当前生效的正在使用的配置,是整个ProxySQL的顶层;在main库中的以runtime_开头的表就是RUNTIME层;RUNTIME中的配置是无法修改的,必须从下一层load进来
    • MEMORY:ProxySQL配置系统的中间层,上面承接生产层RUNTIME,下面承接持久化层DISK和CONFIG FILE;用户可以通过MySQL客户端连接到此接口(admin接口),然后可以通过命令查询不同的数据库和表,并修改各种配置,MEMORY可以认为是SQLite数据库在内存中的镜像;MEMORY是用户修改ProxySQL的唯一入口,一般来说修改一个配置时首先修改MEMORY,确认无误后接入RUNTIME层,最后持久化到DISK
    • DISK/CONFIG FILE:持久存储的配置,DISK对应的是ProxySQL数据目录下的proxysql.db,在ProxySQL启动时会从proxysql.db中加载信息;而ProxySQL的配置文件/etc/proxysql.cnf文件只在ProxySQL初次启动进行初始化时使用;配置修改完后必须save到硬盘,否则重启后配置将会丢失

    注意:ProxySQL每一个配置项在三层中都存在,但是这三层是相互独立的,三份配置可能一样,也可能不一样。

    2、ProxySQL的启动过程

    当ProxySQL启动时,首先读取配置文件CONFIG FILE(/etc/proxysql.cnf),然后从该配置文件中获取datadir,datadir中配置的是SQLite的数据目录。如果该目录存在,且SQLite数据文件存在,那么正常启动,将SQLite中的配置项读进内存,并且加载进RUNTIME,用于初始化ProxySQL的运行。如果datadir目录下没有SQLite的数据文件,ProxySQL就会使用CONFIG FILE中的配置来初始化ProxySQL,并且将这些配置保存至数据库。SQLite数据文件可以不存在,/etc/proxysql.cnf文件也可以为空,但/etc/proxysql.cnf配置文件必须存在,否则,ProxySQL无法启动。

    3、ProxySQL配置修改和保存

    ProxySQL配置的新增和修改都是通过SQL语句在相关的表中添加或修改数据实现的,新增使用insert,修改使用update。

    新增或修改的配置需要使用以下命令load到RUNTIME层:

    load 配置表 to runtime;

    永久保存配置:

    save 配置表 to disk;

    将RUNTIME层运行的配置拉取到MEMORY层:

    load 配置表 to memory;

    加载配置文件/etc/proxysql.cnf到MEMORY:

    load 配置表 from config;

    ProxySQL更多的配置帮助查看:https://github.com/sysown/proxysql/wiki

  • 相关阅读:
    如何在Element 使用正则表达式校验
    Vs Code 微信小程序 神兵利器合集
    分享CSS公共类库(能在项目快捷使用CSS类)
    Element+Axios上传图片 OR 文件
    两种简洁的数组对象去重姿势
    VScode 格式化代码保存时使用ESlint修复代码
    如何在linux上部署vue项目
    Vue 2.x 3.x 配置项目开发环境跟线上环境
    在Vue文件中引入外部URL链接
    博客目录
  • 原文地址:https://www.cnblogs.com/yu2006070-01/p/10340289.html
Copyright © 2011-2022 走看看