视频:《MySQL ProxySQL 管理实战》
库介绍
- main :ProxySQL最主要的库,修改配置时使用的库,它是一个内存数据库系统。所以,修改main库中的配置后,必须将其持久化到disk上才能永久保存。
- disk :磁盘数据库,该数据库结构和内存数据库完全一致。当持久化内存数据库中的配置时,其实就是写入到disk库中。磁盘数据库的默认路径为$DATADIR/proxysql.db。
- stats :统计信息库。这个库包含了ProxySQL收集的关于其内部功能的指标。通过这个数据库,可以知道触发某个计数器的频率,通过ProxySQL的SQL执行次数等等。
- monitor :监控后端MySQL节点相关的库,该库中只有几个log类的表,监控模块收集到的监控信息全都存放到对应的log表中。
- stats_history:用于存放历史统计数据。
配置文件
[root@proxySQL ~]# rpm -ql proxysql
/etc/proxysql.cnf
多层配置系统
多层配置的目的为了方便在线配置、在线生效、确保在零停机的状态下做配置变更。主要分三层:
- Runtime: 内容无法直接修改
- Memory:mysql_servers ;mysql_users ;mysql_query_rules;global_variables ;mysql_collations
- Disk&Configuration File:
配置变更如何生效
ProxySQL接收到LOAD <item> FROM CONFIG命令时,其预期行为如下:
- 如果配置文件和内存表中都存在已加载的条目,则LOAD <item> FROM CONFIG将会覆盖内存表中已配置的条目
- 如果配置文件中存在但内存表中不存在已加载的条目,则LOAD <item> FROM CONFIG将会将该条目添加到内存表中
- 如果内存表中存在但配置文件中不存在的条目,则LOAD <item> FROM CONFIG不会从内存表中删除该条目。
Activate / Persist MySQL Users:
# Active current in-memory MySQL User configuration
LOAD MYSQL USERS TO RUNTIME;
# Save the current in-memory MySQL User configuration to disk
SAVE MYSQL USERS TO DISK;
Activate / Persist MySQL Servers and MySQL Replication Hostgroup:
# Active current in-memory MySQL Server and Replication Hostgroup configuration
LOAD MYSQL SERVERS TO RUNTIME;
# Save the current in-memory MySQL Server and Replication Hostgroup configuration to disk
SAVE MYSQL SERVERS TO DISK;
Activate / Persist MySQL Query Rules:
# Active current in-memory MySQL Query Rule configuration
LOAD MYSQL QUERY RULES TO RUNTIME;
# Save the current in-memory MySQL Query Rule configuration to disk
SAVE MYSQL QUERY RULES TO DISK;
Activate / Persist MySQL Variables:
# Active current in-memory MySQL Variable configuration
LOAD MYSQL VARIABLES TO RUNTIME;
# Save the current in-memory MySQL Variable configuration to disk
SAVE MYSQL VARIABLES TO DISK;
Activate / Persist ProxySQL Admin Variables:
# Active current in-memory ProxySQL Admin Variable configuration
LOAD ADMIN VARIABLES TO RUNTIME;
# Save the current in-memory ProxySQL Admin Variable configuration to disk
SAVE ADMIN VARIABLES TO DISK;