背景
在启动 Proxy 时相信大家都会注意到 server.yaml
这配置文件中的 props
配置。props
作为 Proxy 的属性配置,用于对 Proxy 部分功能的控制以及调优。相信关注 props
配置的小伙伴都会有这个烦恼,每次修改后需要重启 Proxy。
本期 『Thinking in DistSQL』为大家带来的便是如何通过 DistSQL 对属性配置动态修改和查看。
语法
RAL 语法 SHOW VAIRABLE
和 SET VARIABLE
完整语法如下:
语法作用
-
SHOW VAIRABLE
用于展示 Proxy 中的属性配置参数 -
SET VARIABLE
用于修改 Proxy 中的属性配置参数
特别说明
- DistSQL 语法中,参数名称使用下划线分隔,与文件中不同。如
server.yaml
中的sql-show
参数,在 DistSQL 中为sql_show
- 部分属性配置的参数使用 DistSQL 修改后需要重启 Proxy 生效,可参考属性配置进行查看
- 只允许集群模式下使用,非集群模式下修改任何参数都需要重启后才会生效
实战
准备工作
连接 Proxy :目前 DistSQL 仅支持在 Proxy 上执行因此在执行 DistSQL 之前需要先启动 Proxy 并进行连接
Proxy 启动和连接的过程可以参考 启动步骤。
查看所有属性配置参数
由于 Proxy 中的属性配置的参数较多,因此提供 SHOW ALL VARIABLES
的方式查询全部参数。执行语句 SHOW ALL VARIABLES
后展示的结果如下
+---------------------------------------+----------------+
| variable_name | variable_value |
+---------------------------------------+----------------+
| sql_show | false |
| sql_simple | false |
| kernel_executor_size | 0 |
| max_connections_size_per_query | 1 |
| check_table_metadata_enabled | false |
| proxy_frontend_database_protocol_type | |
| proxy_frontend_flush_threshold | 128 |
| proxy_opentracing_enabled | false |
| proxy_hint_enabled | false |
| show_process_list_enabled | false |
| lock_wait_timeout_milliseconds | 50000 |
| proxy_backend_query_fetch_size | -1 |
| check_duplicate_table_enabled | false |
| proxy_frontend_executor_size | 0 |
| proxy_backend_executor_suitable | OLAP |
| proxy_frontend_max_connections | 0 |
| sql_federation_enabled | false |
| proxy_backend_driver_type | JDBC |
| agent_plugins_enabled | false |
| cached_connections | 0 |
| transaction_type | LOCAL |
+---------------------------------------+----------------+
其中 agent_plugins_enabled
、cached_connections
和 transaction_type
并非属性配置参数,它们属于 Proxy 内部参数。
查看指定属性配置参数
除了通过 SHOW ALL VARIABLES
查看所有参数外,也可通过 SHOW VARIABLE variableName
查看指定参数的值。此处以 SHOW VARIABLE SQL_SHOW
为例,执行后结果如下
+---------------+----------------+
| variable_name | variable_value |
+---------------+----------------+
| sql_show | false |
+---------------+----------------+
1 row in set (0.21 sec)
修改属性配置参数
DistSQL 提供 SET VARIABLE variableName = variabeValue
的语法用于动态管理属性配置的参数。此处以修改 sql_show
为例,执行 SET VARIABLE sql_show = true
,在得到结果 Query OK
后,再次执行SHOW VARIABLE SQL_SHOW
可以发现 variable_value
已经由 false
修改为 true
。
mysql>SHOW VARIABLE SQL_SHOW;
+---------------+----------------+
| variable_name | variable_value |
+---------------+----------------+
| sql_show | true |
+---------------+----------------+
1 row in set (0.21 sec)
至于修改后是否 sql_show
会立即生效,使用的小伙伴可以通过执行业务 SQL 查看是否打印 Actual SQL
进行验证。
以上就是通过 DistSQL 对管理属性配置的过程。