复古 护眼 海天 深邃 暗黑 默认

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 SETTINGS 针对当前连接,清除 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 jobId 查询任务状态,xx:任务 id SHOW SCALING STATUS 1234
START SCALING jobId 开始运行任务,xx:任务 id START SCALING 1234
STOP SCALING jobId 停止运行任务,xx:任务 id STOP SCALING 12345
DROP SCALING jobId 移除任务,xx:任务 id DROP SCALING 1234
RESET SCALING jobId 重置任务进度,xx:任务 id RESET SCALING 1234
CHECK SCALING jobId 数据一致性校验,使用 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 jobId 旧的 ShardingSphere 数据源停写,xx:任务 id STOP SCALING SOURCE WRITING 1234
RESTORE SCALING SOURCE WRITING jobId 旧的 ShardingSphere 数据源恢复写,xx:任务 id RESTORE SCALING SOURCE WRITING 1234
APPLY SCALING jobId 切换至新的 ShardingSphere 元数据,xx:任务 id APPLY SCALING 1234

熔断

语句 说明 示例
[ENABLE / DISABLE] READWRITE_SPLITTING (READ)? resourceName [FROM databaseName] 启用 / 禁用读库 ENABLE READWRITE_SPLITTING READ resource_0
[ENABLE / DISABLE] INSTANCE instanceId 启用 / 禁用 proxy 实例 DISABLE INSTANCE instance_1
SHOW INSTANCE LIST 查询 proxy 实例信息 SHOW INSTANCE LIST
SHOW READWRITE_SPLITTING (READ)? resourceName [FROM databaseName] 查询所有读库的状态 SHOW READWRITE_SPLITTING READ RESOURCES

全局规则

语句 说明 示例
SHOW AUTHORITY RULE 查询权限规则配置 SHOW AUTHORITY RULE
SHOW TRANSACTION RULE 查询事务规则配置 SHOW TRANSACTION RULE
SHOW SQL_PARSER RULE 查询解析引擎规则配置 SHOW SQL_PARSER RULE
ALTER TRANSACTION RULE(DEFAULT=xx,TYPE(NAME=xxx, PROPERTIES(“key1"="value1”,“key2"="value2”…))) 更新事务规则配置,DEFAULT:默认事务类型,支持 LOCAL、XA、BASE;NAME:事务管理器名称,支持 Atomikos、Narayana 和 Bitronix ALTER TRANSACTION RULE(DEFAULT=XA,TYPE(NAME=Narayana, PROPERTIES(“databaseName"="jbossts”,“host"="127.0.0.1”)))
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)

其他

语句 说明 示例
SHOW INSTANCE MODE 查询当前 proxy 的 mode 配置 SHOW INSTANCE MODE
COUNT DATABASE RULES [FROM database] 查询 database 中的规则数量 COUNT DATABASE RULES
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 VARIABLES
SHOW VARIABLE variable_name 查询 proxy 属性,需使用下划线命名 SHOW VARIABLE sql_show
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
SHOW TABLE METADATA tableName [, tableName] … 查询表的元数据 SHOW TABLE METADATA t_order
EXPORT DATABASE CONFIG [FROM database_name] [, file="file_path”] 查询 / 导出 database 中的资源和规则配置 EXPORT DATABASE CONFIG FROM readwrite_splitting_db
SHOW RULES USED RESOURCE resourceName [from database] 查询 database 中使用指定资源的规则 SHOW RULES USED RESOURCE ds_0 FROM databaseName

注意事项

ShardingSphere-Proxy 默认不支持 hint,如需支持,请在 conf/server.yaml 中,将 properties 的属性 proxy-hint-enabled 设置为 true。