本节主要介绍租户管理变量的查询及设置方法。
租户的变量分为 Global 级别和 Session 级别。Session 级别的变量默认继承自 Global 级别的变量。同时,Session 建立后可以设定 Session 级别的变量。
查询变量
通过 SHOW 语句查询某个变量
您可以通过 SHOW 语句或视图来查询变量值。
通过 SHOW 语句查询 Session/Global 级别变量的语法如下:
查询 Session 级别变量
SHOW [SESSION] VARIABLES [LIKE 'pattern' | WHERE expr]查询 Global 级别变量
SHOW GLOBAL VARIABLES [LIKE 'pattern' | WHERE expr]
其中,pattern 表示变量关键字。
示例:
obclient> SHOW VARIABLES LIKE 'ob_query_timeout';
obclient> SHOW SESSION VARIABLES LIKE 'ob_query_timeout';
obclient> SHOW GLOBAL VARIABLES WHERE variable_name LIKE 'ob_query_timeout';
通过视图查询变量
sys 租户可以通过 oceanbase.CDB_OB_SYS_VARIABLES 查询所有租户的系统变量信息。
示例如下:
obclient> SELECT * FROM oceanbase.CDB_OB_SYS_VARIABLES WHERE VARIABLE_NAME = 'ob_query_timeout';
MySQL 租户还可以通过查询以下视图来获取 Session/Global 级别的变量值:
示例如下:
obclient> SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME = 'ob_query_timeout';
obclient> SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME = 'ob_query_timeout';
设置变量
设置 Session 级别的变量仅对当前 Session 有效,对其他 Session无效。设置 Global 级别的变量对当前 Session 无效,需要重新登录建立新的 Session 才会生效。
设置 Session/Global 级别变量语句的语法如下:
设置 Session 级别变量
SET [SESSION] VARIABLE_NAME = 'VALUE';说明
Oracle 模式还可以通过
ALTER SYSTEM SESSION SET VARIABLE_NAME = 'VALUE';语句设置 Session 级别的变量。设置 Global 级别变量
SET GLOBAL VARIABLE_NAME = 'VALUE';其中,MySQL 模式下设置 Global 级别变量,要求当前用户拥有
SUPER权限或ALTER SYSTEM权限。说明
Oracle 模式还可以通过
ALTER SYSTEM SET VARIABLE_NAME = 'VALUE';语句设置 Global 级别的变量。
说明
示例:
obclient> SET ob_query_timeout = 20000000;
obclient> SET SESSION ob_query_timeout = 20000000;
obclient> SET GLOBAL ob_query_timeout = 20000000;
对于变量中类型为 INT, 并且在 SHOW VARIABLES 命令中显示 ON/OFF 或者 True/False的变量,可以通过如下任意方法设置变量值。
obclient> SET @@foreign_key_checks = ON;
obclient> SET @@foreign_key_checks = 1;
以上两种方式的 Session 级别变量的设置是等效的。




