RAL (Resource & Rule Administration Language) 为 Apache ShardingSphere 的管理语言, 负责强制路由、事务类型切换、弹性伸缩、分片执行计划查询等增量功能的操作。
强制路由
语句 | 说明 | 示例 |
---|
set readwrite_splitting hint source = [auto / write] | 针对当前连接,设置读写分离的路由策略(自动路由或强制到写库) | set readwrite_splitting hint source = write |
set sharding hint database_value = yy | 针对当前连接,设置 hint 仅对数据库分片有效,并添加分片值,yy:数据库分片值 | set sharding hint database_value = 100 |
add sharding hint database_value xx = yy | 针对当前连接,为表 xx 添加分片值 yy,xx:逻辑表名称,yy:数据库分片值 | add sharding hint database_value t_order= 100 |
add sharding hint table_value xx = yy | 针对当前连接,为表 xx 添加分片值 yy,xx:逻辑表名称,yy:表分片值 | add sharding hint table_value t_order = 100 |
clear hint | 针对当前连接,清除 hint 所有设置 | clear hint |
clear [sharding hint / readwrite_splitting hint] | 针对当前连接,清除 sharding 或 readwrite_splitting 的 hint 设置 | clear readwrite_splitting hint |
show [sharding / readwrite_splitting] hint status | 针对当前连接,查询 sharding 或 readwrite_splitting 的 hint 设置 | show readwrite_splitting hint status |
弹性伸缩
语句 | 说明 | 示例 |
---|
show scaling list | 查询运行列表 | show scaling list |
show scaling status xx | 查询任务状态,xx:任务id | show scaling status 1234 |
start scaling xx | 开始运行任务,xx:任务id | start scaling 1234 |
stop scaling xx | 停止运行任务,xx:任务id | stop scaling 12345 |
drop scaling xx | 移除任务,xx:任务id | drop scaling 1234 |
reset scaling xx | 重置任务进度,xx:任务id | reset scaling 1234 |
check scaling xx | 数据一致性校验,使用server.yaml 里的校验算法,xx:任务id | check scaling 1234 |
show scaling check algorithms | 展示可用的一致性校验算法 | show scaling check algorithms |
check scaling {jobId} by type(name={algorithmType}) | 数据一致性校验,使用指定的校验算法 | check scaling 1234 by type(name=DEFAULT) |
stop scaling source writing xx | 旧的 ShardingSphere 数据源停写,xx:任务id | stop scaling source writing 1234 |
checkout scaling xx | 切换至新的 ShardingSphere 数据源,xx:任务id | checkout scaling 1234 |
熔断
语句 | 说明 | 示例 |
---|
[enable / disable] readwrite_splitting read xxx [from schema] | 启用 / 禁用读库 | enable readwrite_splitting read resource_0 |
[enable / disable] instance [IP=xxx, PORT=xxx / instanceId] | 启用 / 禁用 proxy 实例 | disable instance 127.0.0.1@3307 |
show instance list | 查询 proxy 实例信息 | show instance list |
show readwrite_splitting read resources [from schema] | 查询所有读库的状态 | show readwrite_splitting read resources |
解析引擎配置
语句 | 说明 | 示例 |
---|
SHOW SQL_PARSER RULE | 查询当前解析引擎相关配置 | SHOW SQL_PARSER RULE |
ALTER SQL_PARSER RULE SQL_COMMENT_PARSE_ENABLE=xx,PARSE_TREE_CACHE(INITIAL_CAPACITY=xx, MAXIMUM_SIZE=xx,CONCURRENCY_LEVEL=xx), SQL_STATEMENT_CACHE(INITIAL_CAPACITY=xxx, MAXIMUM_SIZE=xxx,CONCURRENCY_LEVEL=xxx) | 更新当前解析引擎配置,SQL_COMMENT_PARSE_ENABLE:是否解析 SQL 注释,PARSE_TREE_CACHE:语法树本地缓存配置,SQL_STATEMENT_CACHE:sql语句本地缓存配置项 | ALTER SQL_PARSER RULE SQL_COMMENT_PARSE_ENABLE=false,PARSE_TREE_CACHE(INITIAL_CAPACITY=10, MAXIMUM_SIZE=11,CONCURRENCY_LEVEL=1), SQL_STATEMENT_CACHE(INITIAL_CAPACITY=11, MAXIMUM_SIZE=11,CONCURRENCY_LEVEL=100) |
其他
语句 | 说明 | 示例 |
---|
set variable proxy_property_name = xx | proxy_property_name 为 proxy 的属性配置 ,需使用下划线命名 | set variable sql_show = true |
set variable transaction_type = xx | 修改当前连接的事务类型, 支持 LOCAL,XA,BASE | set variable transaction_type = XA |
set variable agent_plugins_enabled = [true / false] | 设置 agent 插件的启用状态,默认值 false | set variable agent_plugins_enabled = true |
show all variables | 查询 proxy 所有的属性配置 | show all variable |
show variable proxy_property_name | 查询 proxy 属性配置,需使用下划线命名 | show variable sql_show |
show variable transaction_type | 查询当前连接的事务类型 | show variable transaction_type |
show variable cached_connections | 查询当前连接中缓存的物理数据库连接个数 | show variable cached_connections |
show variable agent_plugins_enabled | 查询 agent 插件的启用状态 | show variable agent_plugins_enabled |
preview SQL | 预览实际 SQL | preview select from t_order |
parse SQL | 解析 SQL 并输出抽象语法树 parse select from t_order | |
refresh table metadata | 刷新所有表的元数据 | refresh table metadata |
refresh table metadata [tableName / tableName from resource resourceName] | 刷新指定表的元数据 | refresh table metadata t_order from resource ds_1 |
注意事项
ShardingSphere-Proxy 默认不支持 hint,如需支持,请在 conf/server.yaml
中,将 properties
的属性 proxy-hint-enabled
设置为 true。